From PaparazziUAV
Jump to: navigation, search
Be afraid. Be very afraid.

LaserHawk Project Description

Lidar UAV for traversability map generation

Preliminary Report

High-level Goals

A robot plans its trajectory
  1. Autonomous flights of Multiplex Mentor UAV with onboard payload including:
  2. Generate traversability map that can be transmitted to UGV
    • cartesian coordinates with traversability probabilities/confidence

Elrob competition details

Questions :

Distance from launch point to zone of interest : 1-2 km
Size of zone of interest : 500 x 500 m
Will stay in standby while waiting for zone of interest coordinates from ground robot or will go home?
Will standby waypoint need to follow ground robot as it travels?
How long aircraft on alert for acquisition requests? Hours?
Terrain map/data downloaded to ground station/groundbot via xbee or wifi or what? file transfer or socket? raw data options?

Current Tasks and Priorities

Num Name Notes Priority Status
1 Acquire ground Lidar/attitude data while we wait for plane use PC then gumstix. Hokuyo and MTIG mounted on boom. biketest git directory has initial data ) x done
2 start flying mentor airframe Maiden manual flight accomplished. autonomous flying now working x done
3 Be able to treat realtime or recorded data from real or virtual data Some initial application code done, integrating all together next x In progress
4 Lit review x x In progress
x x x x x
x x x x x
x x x x x

Mentor1 build todo

  1. make hokuyo power switchable via GPIO (from tiny and/or overo)
  2. new mti gps antenna


  1. Communication
    • autopilot/groundstation - standard paparazzi Datalink/Telemetry serial modem-based com
    • gumstix/ground - wifi for debugging
    • UAV to UGV com : 115.2kbps Xbee Pro link (data reliability testing needed)



hw block diagram
sensors mounted on bike for initial testing


  • nothing special : laptops, modems, and antennae


Version control : github


  • Overo
    • OS: openembedded-built linux (use rt-linux patches?)
    • Drivers: hokuyo/xsens stuff (Bertand's notes ; overo ipkg files built on borderouge )
    • apps:
      • mainloop for sensor data processing
      • coordination with ground
      • coordination with autopilot
  • Autopilot
    • paparazzi LPC2148-based firmware


  • Paparazzi ground package
  • gdhe for data visualization (polyline representations of laser scan lines)

GIT Projects:

  1. hoku2gdhe - Demo app uses hokuyo and Xsens MTI sensor and generates polylines in GDHE
  2. hokuyomti - App for aquiring hokuyo data and storing to file (Run in parallel with MTIHardTest)
  3. log2gdhe - App for visualising stored log (real or virtual) in gdhe
  4. log2gdhe/mkvirtlog - scripts for generating scan/attitude logs from a virtual terrain model
    mkvirtlog image output.

    view animation

    gdhe screenshot
  5. biketest/scripts - scripts for generating images/animations from stored hokuyo/mti logs
Plotlogs image output. view animation

More info in the git README

The goal is to fuse all of these capabilities into one package that allows:
  1. displaying real or virtual data
  2. live data, recording, and/or playback
  3. display raw data in 2d plots (scan data along scan plane, attitude, position, altitude, etc)
  4. rectify scan data using attitude and send 3d points to gdhe or store (where? what format?)
  5. later on will treat data to generate terrain model / traversability map / whatever
  6. not all of this needs to run on overo, just the acquisition and data treatment (some part of it anyways)
  7. more?


Laserhawk geometry
scan line relative to heading and track
Elevation and bird's eye view of scan area
Figure 1
Figure 2

  • nominal UAV flight velocity : 20-30 m/s
  • nominal UAV flight height AGL : 30 m
  • Lidar sensor resolution : 1080 points over 270 deg visible (1440 points over 360 deg) @40Hz
  • ground covered distance during one revolution of scanner:
Dist_{per\_scan\_rev} = ground\_speed \times time_{per\_scan\_rev} = 20~\frac{m}{s} \times \frac{1}{40}~s = 0.5~m
  • For 90° interest zone :
  • scan line advances down ground track :
 Dist_{x}=  \frac{90}{360} \times Dist_{per\_scan\_rev} = \frac{1}{4} \times 0.5~m = 12.5~cm
  • scan line proceeds along sensor rotation (for a 90 scan, this is twice the AGL height) :
 Dist_{y}=  2 \times AGL = 2 \times 30~m = 60~m
  • Resolution :
  \frac{ \frac{90}{360} \times 1440~pixels }{scan\_length} = \frac{360~pixels}{\sqrt{{Dist_x}^2+{Dist_y}^2}} \approx \frac{360~pixels}{Dist_y}= 6~ \frac{pixels}{m} = 17~cm between pixels
  • Angle relative to track :
 Angle_{scan\_to\_track} = \tan^{-1} \frac{Dist_x}{Dist_y} = \tan^{-1} \frac{0.125}{60} = 0.119^\circ (negligible relative to crab angle)

Flight Logs

Available on git repo :

  1. May 11 - Manual flights, propeller small so not much thrust margin. IR and servo config tuning.
  2. May 17 - Manual and Auto1/2 Flights with bigger prop and 80A ESC. Used all three 5Ah batteries, progressively increasing payload weight.
  3. May 19 - Airframe configured for carrot=3 and reduction in throttle increment. High winds during flight. Lost canopy during flight.


MTI comand line application, for dumping attitude/GPS of MTIG to file : (PC and overo)

MTIHardTest /dev/ttyUSB0 -o 2 -d 6 -v >> MTIG.out

record laser scans to disk (PC and overo) hokuyomti /dev/ttyACM0

scan and display on gdge (PC only for now)



Risks and unanswered questions
Num Name Notes Priority Status
1 Lidar performance at 30m flight height, over low-reflectance surfaces (asphalt roads, grass, dirt) x Sunny day testing against house exterior walls shows we can measure at least to 16m distance.
2 Crashing Lidar Will build box for protection x Done
3 Radio interference at Elrob need robust behaviors with lost com x x
x x x x x
x x x x x
x x x x x