Create software to control Camera & Gimbal

Hi. We want to develop a software, that able to control camera and gimbal. We are able to control only yaw and pitch now using vmount and dronecore sdk.

We want to control zoom and auto tracking also, but we are not able to do that. The questions are:

  1. Can we use more than 2 aux outputs to control camera & gimbal (by pwm signal)
  2. What do you mean under “We ONLY support trigger on pins 5 and 6 when simultanously using AUX for actuator output” ?
  3. How can we send a command to desired aux output ? e.g. Use aux4 output to control zoom of the camera.

It is very important to get quick reply, we rely on your support !
Thanks !

Do you have to use PWM directly, or can you use a companion computer - ie via MAVLink?

OK, so let me precede this by stating I have no practical experience in this area. In my estimation the docs are not great and quite old, but are probably accurate as far as they go. My interest is in updating the documentation :slight_smile:

There are two docs:

What do you mean under “We ONLY support trigger on pins 5 and 6 when simultanously using AUX for actuator output” ?

See docs here: https://docs.px4.io/en/peripherals/camera.html#trigger-hardware-configuration

I think this means that if you are planing to use use AUX 1-4 as servos/actuators then you must use pins 5/6 for the camera trigger. If you don’t want to use AUX1-4 as servo outputs for another purpose then you can use them for the camera trigger.

How can we send a command to desired aux output ? e.g. Use aux4 output to control zoom of the camera.

Presuming your camera has a physical interface for connecting to a camera then servo outputs are controlled using control groups, as described in https://dev.px4.io/en/concept/mixing.html
My understanding though is that there is no specific support for zoom or similar, so you would have to add everything. Probably using Control Group 6 - payload.

Depending on your camera, the easiest way to do this is to use the camera manager on a linux companion computer.

How can we send a command to desired aux output ? e.g. Use aux4 output to control zoom of the camera.

As I understand it, once you have a mixer, you should be able to set the value of the output using the appropriate UORB topic. You would set this in your module/program. If you need to control this remotely then you would trigger setting the value from a MAVLink message.

I will attempt to get more information/confirm the above.

Great post @hamishwillee, I just want to add for completeness a link to Camera Manager docs.

1 Like

I agree that the documentation is really bad.
All the info are fragmented and very often terms only known to developers are used, which are incomprehensible for the users.