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.
The duration of the trigger in milliseconds.
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.
Accurate (cm level) georeferencing is essential to my application and I also need a fully automated image rectification pipeline.
It's an interesting idea to use image features found in e.g. public online orthophoto as a pseudo ground reference. The obvious disadvantage is that you don't know what the accuracy will be, but if you dont care about accuracy, then you are clearly less troubled man :-)
So when your georeference differs by say a foot from google earth what exactly do you plan to do? Are you going to argue with them over the difference or are you going to produce a map that everyone else thinks is inaccurate?
All of the features you want are already there for both ArduPlane and ArdCopter, AMP1 and APM2 boards.
Just take a look at the libraries/AP_Camera/AP_Camera.cpp file.
It can be configured like described here:
I'm sorry, Niels, but I'm afraid your desires exceed what is feasible with a plane and have to be done with helis or balloons.
Sub-cm resolution implies so low altitude or so long focal lengths that makes your plans unpractical. The first is simply a bad idea in urban areas (possibly forbidden). To give you some numbers with a pretty decent 12mpx resolution camera with 24mm equivalent focal length your altitude over ground should be lower than 26m... that is rather low! If you flew at that height at safe speed your pixels will be surely blurry unless you had a high speed camera. Consider also the terrible amount of photos you would need to cover large areas at that sub-cm.
Even if you managed to get surveying grade gps accuracy on board, the attitude could't be recorded with similar specs unless you had accordingly accurate IMU. Having a terribly accurate photocenter does not mean you'll get the same accuracy on ground. Not at all! (I'd add that achieving sub-meter accuracy while geo-tagging photos on-the-fly is already far from being an easy task, but that is also near irrelevant in terms of the mapping accuracy. You don't need anything much better than 2-3 m)
your project involves a lot of Photogrammetry, and so sorry to say that you should make sure that what you propose is reasonable and practicable before recruiting wills.
sub-centimeter accuracy is possibly beyond the limits for any type of aerial photogrammetric technique, and in any case it is impossible to achieve using aircraft equipped with conventional photographic media, low cost inertial sensors, and moreover especially without a formidable ground control work.
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.
Are you using the firmware version built from git master ?
MP currently works fine with arducopter 2.7.1. But does not work at all with git master.
Once git master is released as 2.7.2 then MP will change to work with that, and no longer be compatible with 2.7.1.
We need to break compatibility from time to time. The advantage is that after 2.7.2 exactly the same code will run or ArduCopter, ArduPlane and ArduRover !
After 2.7.2 has been released and MP has been updated, I will update the wiki.
So sorry for the current mess, but it will stabilize in the future.
Thank you very much for the update. I'm using ArduCopter v2.7.1, not the version from the git master however the RCx_FUNCTION that seems critical for this to work is not in the MP (or I can't find it).
Looking forward to when everything comes together!
RCx_FUNCTION should be already there in the "Paramater List" view as explained here: http://code.google.com/p/ardupilot-mega/wiki/Tracking
It's not, at least not on my v1.2.7.