Omnicopter attitude tracking in Gazebo simulation

I am working on building an Omnicopter as outlined in the main documentation here: Omnicopter. I have successfully managed to run the Gazebo simulation provided and am now investigating having the Omnicopter hold/go to different attitudes.

I have been able to use the offboard control example with ROS2 to have the simulated craft hover at varying positions by publishing to the /fmu/in/trajectory_setpoint topic. But I have had no success making the craft change attitude.

Publishing a quaternion orientation to the /fmu/in/vehicle_attitude_setpoint topic causes the craft to wiggle in place, but it never moves to the desired attitude as I would expect.

Is it even possible to publish to both of these topics at the same time? Is there a better way to achieve this result?

I am working on Ubuntu 20.04 with ROS2 Foxy.

1 Like

I have answered my own questions so to anyone here after me here is what I know:

No, it is not possible to publish to both attitude_setpoint and trajectory_setpoint topics at the same time. Trajecotry_setpoint takes priority as detailed here.

If behavior as described in my initial post is desired then I believe publishing to both thrust_setpoint and torque_setpoint is the correct method. Meaning that it will be necessary to create a custom control algorithm to produce the correct thrust and torque inputs for following a desired trajectory.

Hey just wondering which FCU are you using? I had a p6x and tried to use it but I guess it only has 6dshot output which is a big disappointment…

Currently we are planning to use the Holybro Kakute H7 as detailed in the Omnicopter documentation alongside the Tekko32 4-in-1 ESC’s.

Hey R_mcc, thanks for the response. I think I have gotten to the same question as you’re having, wondering if you’re willing to share what you have changed for the controller? Thanks!