AP 4.3 changes to gimbal control and reporting messages

ArduPilot 4.3 (including Copter, Rover, Plane, etc) include various improvements to the gimbal drivers (aka “Mounts”). The most improved is the Gremsy gimbal driver but all drivers (Servo, Alexmos/SimpleBGC, SToRM32) have been enhanced to better support body-frame vs earth-frame (aka “follow” and “lock”) and support most of the new mavlink gimbal messages.

This is just a warning to any GCS developers out there that have built in controls for gimbals that you may need to modify your software to support the new messages. In general we’ve tried to keep supporting the older control messages but we are not planning to keep supporting the older gimbal attitude feedback messages called MOUNT_STATUS. This has been replaced by GIMBAL_DEVICE_ATTITUDE_STATUS.

Please tell me if you have any concerns and of course I’m very happy to help you by explaining the changes, helping you test and maybe even make changes to AP to help your GCS migrate to the new messages.

I am also planning to make changes to how the MAV_CMD_DO_MOUNT_CONTROL message (AP mavlink definition, upstream definition) is interpreted (see PR, see issue)

From looking at the MAVLink spec (ArduPilot fork, Upstream) I see two problems:

  1. When angles are provided (e.g. “Mode” field = 2/MAVLINK_TARGETING) the roll, pitch and yaw angles are scaled incorrectly. The MAVLink spec says they should be in degrees but AP interprets them as centi-degrees
  2. When a Location is provided (e.g. “Mode” field = 4/GPS_POINT) the lat, lon altitude are provided in param1, 2, 3 but the spec says they should be in 4,5,6. Also the altitude is scaled incorrectly. The spec says meters but AP interprets the altitude as cm

The above PR fixes all these issue but because the changes cannot be made backwards compatible GCSs that use MAV_CMD_DO_MOUNT_CONTROL to provide angular or location targets will need to be changed in order to work with ArduPilot 4.3.

Feel free to contact me if you have any questions or concerns and I’m happy to help.

One more thing, in ArduPilot-4.3 we are planning to deprecate the ArduPilot specific MOUNT_CONTROL and MOUNT_CONFIGURE messages. They will continue to work (e.g. the gimbal will move) but a message like below will be displayed to the user on the Ground Station’s HUD and/or messages tab.

  • Received message (MOUNT_CONTROL) is deprecated
  • Received message (MOUNT_CONFIGURE) is deprecated

I imagine we will completely remove support for these message in ArduPilot-4.4.

Please note that these are the individual ArduPilot specific messages. AP will continue to support the common MAV_CMD_DO_MOUNT_CONTROL and MAV_CMD_DO_MOUNT_CONFIGURE commands.