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.


DIY Robocars via Twitter
RT @chr1sa: Just a week to go before our next @DIYRobocars race at @circuitlaunch, complete with famous Brazilian BBQ. It's free, fun for k…
DIY Robocars via Twitter
How to use the new @donkey_car graphical UI to edit driving data for better training https://www.youtube.com/watch?v=J5-zHNeNebQ
Nov 28
DIY Robocars via Twitter
RT @SmallpixelCar: Wrote a program to find the light positions at @circuitlaunch. Here is the hypothesis of the light locations updating ba…
Nov 26
DIY Robocars via Twitter
RT @SmallpixelCar: Broke my @HokuyoUsa Lidar today. Luckily the non-cone localization, based on @a1k0n LightSLAM idea, works. It will help…
Nov 25
DIY Robocars via Twitter
@gclue_akira CC @NVIDIAEmbedded
Nov 23
DIY Robocars via Twitter
RT @luxonis: OAK-D PoE Autonomous Vehicle (Courtesy of zonyl in our Discord: https://discord.gg/EPsZHkg9Nx) https://t.co/PNDewvJdrb
Nov 23
DIY Robocars via Twitter
RT @f1tenth: It is getting dark and rainy on the F1TENTH racetrack in the @LGSVLSimulator. Testing out the new flood lights for the racetra…
Nov 23
DIY Robocars via Twitter
RT @JoeSpeeds: Live Now! Alex of @IndyAChallenge winning @TU_Muenchen team talking about their racing strategy and open source @OpenRobotic…
Nov 20
DIY Robocars via Twitter
RT @DAVGtech: Live NOW! Alexander Wischnewski of Indy Autonomous Challenge winning TUM team talking racing @diyrobocars @Heavy02011 @Ottawa…
Nov 20
DIY Robocars via Twitter
Incredible training performance with Donkeycar https://www.youtube.com/watch?v=9yy7ASttw04
Nov 9
DIY Robocars via Twitter
RT @JoeSpeeds: Sat Nov 6 Virtual DonkeyCar (and other cars, too) Race. So bring any car? @diyrobocars @IndyAChallenge https://t.co/nZQTff5…
Oct 31
DIY Robocars via Twitter
RT @JoeSpeeds: @chr1sa awesomely scary to see in person as our $1M robot almost clipped the walls as it spun at 140mph. But it was also awe…
Oct 29
DIY Robocars via Twitter
RT @chr1sa: Hey, @a1k0n's amazing "localize by the ceiling lights" @diyrobocars made @hackaday! It's consistently been the fastest in our…
Oct 25
DIY Robocars via Twitter
RT @IMS: It’s only fitting that @BostonDynamics Spot is waving the green flag for today’s @IndyAChallenge! Watch LIVE 👉 https://t.co/NtKnO…
Oct 23
DIY Robocars via Twitter
RT @IndyAChallenge: Congratulations to @TU_Muenchen the winners of the historic @IndyAChallenge and $1M. The first autonomous racecar comp…
Oct 23
DIY Robocars via Twitter
RT @JoeSpeeds: 🏎@TU_Muenchen #ROS 2 @EclipseCyclone #DDS #Zenoh 137mph. Saturday 10am EDT @IndyAChallenge @Twitch http://indyautonomouschallenge.com/stream
Oct 23