We need a TRIGGER command!

We need a TRIGGER command for fixed wing aerial photography/survey work.


The current method of camera shutter control is start/stop only. (DO_REPEAT_RELAY, DO_REPEAT_SERVO don't work.)
Start/stop control only works if the camera has an intervalometer mode.

Start/stop shutter control makes geo referencing hit or miss at best.
There is no feedback during the flight that the shutter has been operated.

For fixed wing aerial photography/survey work we also need a stabile platform to assure the proper orthographic pointing of the camera. Joystick control could point the camera off axis if needed.

A camera platform capability is available with the released ArduCopter firmware but not for the ArduPlane.  ArduCopter also needs a TRIGGER command.

The trigger event should be recorded by the internal log file so it can be directly associated with the GPS position, time, and airframe attitude for accurate geopositioning.

The Mission Planner should log the event and the event should be downloaded as part of the data stream. There could be a flash or marker on the Flight Data path display and a verbal announcement of the occurrence.

A trigger could be used to snap a camera shutter, start/stop a movie recording, drop a water bottle or marker, pop a parachute in an emergency, etc.

The trigger should be able to be fired from the ground by the user (via the Mission Planner) or by the APM's WP file at timed or distance intervals between designated waypoints.

Here are some suggested programmable attributes of the TRIGGER:

1) Trigger mechanism:
   If actuation is by a servo - set the servo port number.
   If actuation is by a relay - set relay reference.
   If actuation is by a logic level - set output reference.
2) Duration:
   The duration of the trigger in milliseconds.
3) Interval:
   Choose time in sec. or distance in Meters

The TRIGGER and Stable Platform attributes could be defined by the Mission Planner on the Configuration page. Maybe added selections after Antenna Tracker.

The trigger actuation could be set by the Mission Planner - Flight Planner on the Waypoints Command Line.

I have more specific suggestions for the trigger parameters and command line definitions.

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • Hi I don't know news about this theme. I need to trigger a camera using waypoints (not time trigger and not distance trigger). I have some ideas about it but if you developed or know some easy solution, please comment me. There is a Little hardware that can process actual position by GPS comparing with a waypoint table, and trigger (IR, sound, USB, servo) a camera, using a Atmel microprocessor and C++ code. This will be a great advance for Ardupilot, and Mission Planner, but I don't know if this was developed by other user in old time.

  • Moderator

    Any progress on this trigger?

    The wiki page is incorrect as the MP doesn't have some of the critical parameters listed in the Wiki.

  • I'm interested in making a very light camera design optimized for ortho photo acqusition. My interest is sub-centimeter resolution in urban areas. Ideas include:

    • Using a real time optical flow algorithm to provide adaptive image capture. The constraint could then be e.g. 60% overlap independant of altitude, FoV and speed over ground. This would eliminate the need for an external trigger.
    • Close integration with a WAAS capable GNSS reciever for accurate georeferencing to be included in compressed image meta data.
    • I'm considering to use a secondary synchronized upward looking camera with >180 degree FoV for detecting the position of the sun. Together with the GPS time, this could be used for very accurate estimation of the direction of gravity. Maybe IMU precision is precise enough (?) Just an idea....that of course will not work when there is no sun...

    I'm currently exploring different CCD and CMOS image sensor options. This is a tough trade-off between price, availability, engineering time, sensitivity, dynamic range, colour separation, near infrared capability, sensor area, power requirements.....

    My goal is to have a robust a fully automated image rectification software pipeline that outputs mosaics with a suitable (?) georeference accuracy.

    If any of you are interested in joining this specification work, then I'll be more than happy to hear from you.

    It would of course also be interesting for me to know if anyone would be interested in this kind of hardware product?

  • I spent 5 hours testing the Mission Planner 'Take Off', 'Do_Repeat_Servo' and 'Land'.

    I managed to get them all working quite nicely' though watching a plane land by itself is scary.

    The 'Do_Repeat_Servo' is the second line in the Plan and I set it to Servo 5, PWM 1990, Repeats 900, Delay 2 sec.

    This has the effect of triggering the camera every 2 seconds for the whole of the flight.

    My only problem is I can't turn the 'Do_Repeat_Servo' off at all.

    Has anybody done this?

  • http://code.google.com/p/ardupilot/wiki/SpecialEvents


    Is this what tou are looking for?


    or this http://code.google.com/p/ardupilot-mega/wiki/Python


    not sure how they work - i need to sit down for hours and work things like that out! just thought they may be useful

  • + 1 for me, Great idea, I am also waiting for Arduplane to integrate camera features like Pitch and Roll stabilization. I am currently building a slimline Pitch/Roll gimbal for a Canon P and S camera for Ortho work.

    It has been mentioned that you can download the AP_Camera branch from the GIT repository to add it to Arduplane, has anyone had any success with this? I downloaded GIT, tried to make the code, but didnt get very far with mt limited programming skills! 

    Following this thread closely.. 

  • Irvin,

    Ideally, I'd love to be able to have a control panel that would allow me to associate trigger points with PWM... Something like trigger 1700 at WP1, trigger 1400 on arrival at loiter point, home, or fly-to point.

    I'd also like an interactive panel that allows me to do this in-flight when I wanted... Right now I am planning on adding a parachute recovery system - that would make this easy.

    Best case would be a GUI control panel, not as good but acceptable would be a segment of code (normally commented out), perhaps nested in the medium loop, that could be enabled and modified to provide the functionality on a conditional basis.

    Even a "Ardupilot Servo Control for Idiots" guide would go a long ways...

    Any takers?? If my wife wasn't constantly bringing up how expensive this activity is I'd consider offering a bounty...

  • I too would like to see this implemented. I just purchased a GentLED to trigger the shutter on a Canon DSLR. While it works, it is hardly cost effective when all we need is a contact closure. As nearly as I can determine, the GentLED has a very small 555 timer configured as a pulse width detector that can be connected to one of our channels. Since the Arduino is already decoding specific pulse widths, this should be relatively easy (for a knowledgable programmer) to do.

  • This is absolutely critical and is the key to unlocking the real potential to doing some serious mapping with the AruPlane.

    In addition to the above requirements, I would add that the trigger routine, would be very useful to have multiple routines available (Trigger for Camera and Trigger for Parachute/item deployment). Both would be around a selected GPS coordinate.

    Regarding the generation of GPS camera trigger positions, it would appear that the GCS is almost there. Having the camera calculator tied to the Grid calculations should make it straight forward to automatically generate the waypoints for camera trigger locations only. In otherwards, the plane flies between the two existing waypoints that form the photo line and the camera triggers at the closest point that it gets to the camera trigger GPS coordinate.


    This is certainly one of the holdbacks that I see to doing some real useful things with te AP and GCS.

    This seems like such a fantastic system so far, and just a little more to go to really turn things up!!

This reply was deleted.


gotham liked gotham's profile
2 hours ago
Hiroki Tanaka liked Hiroki Tanaka's profile
Oct 13
Derrick Davies liked lisa TDrones's profile
Sep 23