We are running into a very strange issue that I hope someone here would be able to assist us with. We are attempting to control a hexarotor vehicle from our payload using Mavros’
setpoint_raw/attitude topic. We are commanding Roll & Pitch angle, thrust, and yaw rate. We explicitly tell mavros & px4 to ignore the roll and pitch rates using the type mask.
This offboard control works as expected on another vehicle with standard v1.10.1 PX4 running on a pixracer. However, on this new vehicle, running this fork of PX4 which is based on v1.10.0, we are seeing strange commanded Roll and Pitch angular rates. Keep in mind that we ONLY command angles, NOT pitch and roll rates. So, the rates we see coming from PX4 are generated from PX4’s control.
What we are seeing is, like in the attached image, the rate commanded tracks correctly, but instantly drops to 0 unexpectedly and does this randomly and at a high rate. We believe this is leading to control instability.
When we saw this issue in flight, we thought it was due to the telemetry comms module & our onboard payload both attempting to do time sync at the same time with the pixhawk. To alleviate this, we switched comms modules and confirmed that only our payload is attempting to sync time with the pixhawk. We confirmed this by running mavros for 30 minutes on our payload and had zero time sync and clock issues. However, despite this, we still saw this zero rate issue.
Finally, we have seen this issue in flight and in the lab on a benchtop and with multiple vehicles running the same hardware and software.
I looked over the changes Modal AI made to base PX4 carefully and nothing stands out, since they do not touch any of the control code at all. See here for a diff.
Any suggestions of what to look at or if anyone has seen this before.