A successful APM aerial survey mission

On January 9 my partner, Gus Calderon and I, completed a successful aerial survey mission that covered abut 900 Meters by 650 Meters.  The results was a very high resolution picture of the area.

The aircraft:  Graupner Kadett

3690908597?profile=original

Motor:          Extreem Flight 2814T/820

Prop:            APC 13 x 6.5

ESC:            Hacker X-55

BEC:            Castle Creations 10 Amp

Servos:         4 ea.  Hitec HS65MG

GPS:            MediaTek

Telem:          XBee 

Battery:         Turnigy 3300 mAh nano-tech 25-50c



Autopilot:      APM1 Version 2.27 (Loaded via Mission Planner)

GCS:             Mission Planner Version 1.1.17

                     Mission Planner's 'Draw Polygon' and 'Grid' were used to generate the waypoint file. 

Camera:        Canon SD1100is with CHDK control (via relay through the camera's USB port)

Shutter:         1/1000 sec.

Aperture:        f/2.8

Focal Length: 6.2 mm

ISO:              320 


Stitch software:   ICE  (Microsoft Image Composite Editor)  PTGui was also used but it requires a lot of manual intervention.  It can give better picture placement than ICE.


Some stats:

The plane flew at 100M AGL, 10M/sec ground speed.

The flight lasted 17 min. and used 65% of the battery capacity.

There were 13 passes, 25 Meters apart.  The camera was turned on at takeoff an took a picture every 2 sec. for about 24 exposures per row.  556 exposures total.


The really good results:

APM did a very good job of controlling the aircraft.  (Look at the .kml flight path.)

The Kadett performed flawlessly.  Great payload capacity, strong, spacious structure, good endurance, has a short turn radius, and it is a very pretty airplane.

Resolution of the pictures is so good that the placement of irrigation valve covers (1.5 foot square or less) could be identified.


The not so good (but fixable) results:

The spacing of the rows was too close, we got too many pictures.  A lot of hand picking of the images was required to render the final stitched picture.

The camera took pictures every 2 seconds (set by the internal capability of the camera).  That was too many.  A bit too much overlap.  We used every other row for the stitch.  That was 7 rows of 24 pix or 168 images.


The big problem:

The APM directed the Kadett very well.  The Mission Planner provided a very easy way generate the waypoint file.  The XBees kept us informed about critical aspects of the flight.  Log files were generated and saved.  Thanks to all members of the development team. A job very well done.


-BUT-

There is little or no payload management capability with the current APM/Mission Planner system.

I have managed to turn the relay on and off in the past but it doesn't work with APM V2.27. (I submitted issue 479)  

 

In March, I submitted issue 292   'Add a command TRIGGER'

To trigger a camera shutter or any other event driven payload (water drop, parachute, etc.) please add a TRIGGER command.
It should have these characteristics:

Use either the relay or a servo
Configurable active state (relay on or off to trigger - servo on pulse width and off pulse width)
If servo - assignable channel
Assign time the trigger event is active (in ms.)
Choose if trigger is to be repeatable
Choose and set the repeat interval (every x seconds or every y meters)

The TRIGGER event should be logged for both the onboard log file and the GCS stream
The TRIGGER event should be able to be fired from the GCS

In October there was this reply:

Comment 4 by project member amilcar....@gmail.com, Oct 11, 2011
Part of it has now been implemented in the "APM_Camera" git branch:
-Use either the relay or a servo
-Configurable active state (relay on or off to trigger - servo on pulse width and off pulse width)
-Assignable servo channel
-Assign time the trigger event is active (in ms.) (via define only)
-The TRIGGER event should be able to be fired from the GCS

What is not implemented yet:
-Choose if trigger is to be repeatable
-Choose and set the repeat interval (every x seconds or every y meters)
-The TRIGGER event should be logged for both the onboard log file and the GCS stream

Please note:

APM_Camera is not in the git directory and is not in the latest arduino sketch file set.

Also:

The existing DO_RELAY and DO_SERVO commands do not work if instantiated through the Mission Planner. 

But:

Even with no APM control of the camera we were able the get these results.

3690908230?profile=original

The waypoint file generated by the Mission Planner

3690908611?profile=original

The flight path as captured via the Mission Planner .tlog and converted to .klm

3690908243?profile=original

The survey picture stitched with ICE.

Again,  a big thanks to the development team. 

images.jpeg

STAGECOACH 01-09-12 WPs.JPG

Stagecoach Pix 50M_stitch small.jpg

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

Join diydrones

Email me when people reply –

Replies

  • Very well done. I am also building up a mapping UAV using the Ardupilot Mega. I have used some more expensive AP stuff in the past, and am really enjoying the capabilities of this AP for aerial mapping purposes... so far.

     

    I have been searching the forum for successful mapping configurations and you appear to have done an excellent job!!

     

    Some triggering elements would be very great additions. along with automating the camera trigger GPS location in the grid calculations. I might be missing something, but this seems like a natural addition to the Mission planning tool. That way you could plan camera shots per GPS waypoint vs camera triggering every X seconds.

     

    Again, well done and Cheers!

     

     

  • Hi all,

    I am also looking for the best way to send trigger commands to my camera (and configure and aim it). 

    I noticed that the MAVLink commands for camera control and mount control are actually implemented in the mission planner. I am however unable to find/identify whether (and if so; how) this works (sending cam / mount commands from the mission planner). Would filling in the parameters in these commands arrive in the Ardu code?

    Can anyone (Michael Oborne? :)) explain more about this?

    Thanks a lot!

  • awesome i like the idea of the trigger function i hope they do that soon

  • very cool! i would love to implement the trigger control for the camera, right now we are using CHDK w/ interval scripts. your idea is much better. awesome flight platform! i've found with a large enough image overlap and enough computing power you can build mosaics automated

  • nice presentation.. marvelous job done

  • Irvin:

    Thanks for posting such a helpful article. I am truly amazed at your results. Since I already own AutoPano Giga, I think I will give it a try for stitching instead of purchasing PTGui

    I have some questions.

    1. Can you recommend any other suitable aircraft or is the Graupner Kadett the best available? The $600 price seemed a bit high, but, since it is ARF and Graupner's great reputation, that may not be so bad. I found an construction article and it appears to be very easy to get it into the air.

    2. Are you mounting your camera facing straight down from the belly of the aircraft? I am waiting for my APM2 to complete my quadracopter but it looks like I may have to order another one to build a survey aircraft.

    3. Do you think it is possible to mount a large sensor camera like a 5D2 or 7D on this aircraft?

  • Thank you for sharing your information and insights!

     

    What was your goal or objective in this aerial survey, just a simple mosaic or did you have a specific purpose in mind?

    At that altitude, you should have some good parallax and I imagine you could make some impressive stereo images out of those.  Did you plan on georectifying the images for more detailed surveying?

     

    Thanks again for sharing, I'm always interested to see the reasons other people use aerial photography.

  • Congratulations for the mission Irvin !

    Same problem here, we haven't been able to use the the DO_SET_SERVO command with ArduPlane 2.28.

    Here is the post : http://diydrones.com/forum/topics/do-set-servo-command-on-arduplane...

  • nice job, I also I have some problems after several months of work, I could not use the command (DO_REPEAT_SERVO)  to activate the camera automatically, I'm doing it manually via RC .    https://www.youtube.com/watch?v=iITNOluOS4c&context=C3cd1bc8ADOE...3692350937?profile=original

  • All of what you have said is not implemented is implemented and so is what Amilcar said.
    The camera code I created a year ago which had all the trigger you want has grown, morph and become more refined than I could have hoped for thanks to other members of the dev team. The camera code will be pushed out as some as final testing has been completed.
    Please be patient.
    If you wish to do the trigger calls as you suggested feel free to look at my previous code incarnations to find easy methods. Also the code is in the APM git it's just not the main one. Excellent results with your plane.
This reply was deleted.

Activity

DIY Drones via Twitter
RT @chr1sa: After more than a year of only virtual races, @DIYRobocars returns to the newly renovated @circuitlaunch on May 22 for the resu…
Sunday
DIY Robocars via Twitter
RT @DAVGtech: And now available with LiDAR 🔥 https://twitter.com/Heavy02011/status/1381137016381964293
Sunday
DIY Robocars via Twitter
RT @Heavy02011: #VirtualRaceLeague: @DIYRobocars Race #9 - #ParkingLotNerds #thunderhillracetrack, CA Join us for the next race April 24th,…
Sunday
DIY Robocars via Twitter
RT @DWalmroth: Weather's finally cooperating, looking forward to racing 1:10 scale autonomous cars outdoors again! @diyrobocars, @NVIDIAEm…
Apr 7
DIY Robocars via Twitter
RT @AIDRI_: I finally succeeded in optimizing the trajectory and speed of a car on a #racetrack. Next step: implement a 2d controller and…
Apr 7
DIY Robocars via Twitter
@jetdillo @circuitlaunch Actually the second *in person* event in a year. We do virtual races every month
Apr 2
DIY Robocars via Twitter
Update: we're moving it back one day to Sunday (the 4th) at 11:00am instead
Apr 2
DIY Robocars via Twitter
@GrantEMoe @circuitlaunch Update: we're doing it on Sunday (4th) at 11:00am instead
Apr 2
Laurie J. Troy liked Jasper Kueppers's profile
Apr 1
DIY Robocars via Twitter
RT @chr1sa: Maybe we should have a mini @DIYRobocars race in our lower school's playground https://t.co/xLFeua1R6X
Mar 29
DIY Robocars via Twitter
If anybody wants to join us for an informal outdoors hack/race we're going to be meeting at the @CircuitLaunch park… https://twitter.com/i/web/status/1375907409223249923
Mar 27
DIY Robocars via Twitter
RT @SmallpixelCar: Ready to reopen, innovation has to continue. Inside/outside, LiDAR/GPS, race/delivery https://t.co/jpmvttoHEd
Mar 26
DIY Drones via Twitter
RT @DAVGtech: By far best race yet! Congratulations to the winner @Heavy02011 🥇🏆🍾👏👏👏 @diyrobocars @donkey_car @NVIDIAEmbedded https://t.co/…
Mar 20
DIY Robocars via Twitter
RT @Heavy02011: #VirtualRaceLeague: @DIYRobocars Race #8 - #ParkingLotNerds ⁦@DAVGtech⁩ ⁦@DWalmroth⁩ ⁦@OttawaAVGroup⁩ - join us tomorrow h…
Mar 20
DIY Drones via Twitter
RT @mrpollo: 11 years ago, the pxIMU was announced to the world on @DIYDrones, and it changed the life of many (mine included). The followi…
Mar 18
DIY Drones via Twitter
RT @ishcahealth: This is awesome! ☘️ @DroneDJ @DIYDrones @WorkerDrones @DroneMedia_UK @dublinaviation https://twitter.com/media_ireland/status/1372077878536462336
Mar 18
More…