Difference between revisions of "Laserhawk"
Jump to navigation
Jump to search
(36 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Image:laserhawk.png|thumb|c| | [[Image:laserhawk.png|thumb|c|Be afraid. Be very afraid.]] | ||
=LaserHawk Project Description= | =LaserHawk Project Description= | ||
Lidar UAV for traversability map generation | Lidar UAV for traversability map generation | ||
[https://github.com/paulcox/laserhawk/blob/master/docs/PDC_LAAS_Report1.pdf Preliminary Report] | |||
=High-level Goals= | =High-level Goals= | ||
[[Image:trav_map.png|thumb|c| | [[Image:trav_map.png|thumb|c|A robot plans its trajectory]] | ||
#Autonomous flights of Multiplex Mentor UAV with onboard payload including: | #Autonomous flights of Multiplex Mentor UAV with onboard payload including: | ||
Line 13: | Line 16: | ||
#Generate traversability map that can be transmitted to UGV | #Generate traversability map that can be transmitted to UGV | ||
#*cartesian coordinates with traversability probabilities/confidence | #*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= | =Current Tasks and Priorities= | ||
Line 22: | Line 36: | ||
|- style="background:lemonchiffon; color:black" | |- style="background:lemonchiffon; color:black" | ||
| 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 || | | 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 | ||
|- style="background:bisque; color:black" | |- style="background:bisque; color:black" | ||
| 2 || start flying mentor airframe || Maiden manual flight accomplished. autonomous flying | | 2 || start flying mentor airframe || Maiden manual flight accomplished. autonomous flying now working || x || done | ||
|- style="background:bisque; color:black" | |- style="background:bisque; color:black" | ||
| 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 | | 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 | ||
Line 36: | Line 50: | ||
| x ||x || x || x || x | | x ||x || x || x || x | ||
|} | |} | ||
====Mentor1 build todo==== | |||
#make hokuyo power switchable via GPIO (from tiny and/or overo) | |||
#new mti gps antenna | |||
= Architecture = | = Architecture = | ||
Line 42: | Line 60: | ||
#*autopilot/groundstation - standard paparazzi Datalink/Telemetry serial modem-based com | #*autopilot/groundstation - standard paparazzi Datalink/Telemetry serial modem-based com | ||
#*gumstix/ground - wifi for debugging | #*gumstix/ground - wifi for debugging | ||
#*UAV to UGV com : | #*UAV to UGV com : 115.2kbps Xbee Pro link (data reliability testing needed) | ||
== Hardware == | == Hardware == | ||
===Airborne=== | ===Airborne=== | ||
*Airframe : Multiplex [[LAAS Mentor]] | |||
[[Image:payload_hw_block_diagram.png|thumb|hw block diagram]] | |||
[[Image:bikesciencepackage.jpg|thumb|sensors mounted on bike for initial testing]] | |||
*Autopilot : [http://paparazzi.enac.fr paparazzi] | *Autopilot : [http://paparazzi.enac.fr paparazzi] | ||
*Hokuyo : [http://www.hokuyo-aut.jp/02sensor/07scanner/download/index.html#top_urg_section UTM-30LX] | *Hokuyo : [http://www.hokuyo-aut.jp/02sensor/07scanner/download/index.html#top_urg_section UTM-30LX] | ||
Line 52: | Line 73: | ||
===Ground=== | ===Ground=== | ||
* | *nothing special : laptops, modems, and antennae | ||
== Software == | == Software == | ||
Line 59: | Line 80: | ||
===Airborne=== | ===Airborne=== | ||
*Overo | *Overo | ||
**OS: openembedded-built linux (rt?) | **OS: openembedded-built linux (use rt-linux patches?) | ||
**Drivers: hokuyo/xsens stuff ([http://homepages.laas.fr/bvandepo/wiki/doku.php?id=gumstixd | **Drivers: hokuyo/xsens stuff ([http://homepages.laas.fr/bvandepo/wiki/doku.php?id=gumstixd Bertand's notes] ; overo [https://github.com/paulcox/laserhawk/tree/master/ipks ipkg files] built on borderouge ) | ||
**apps: | **apps: | ||
***mainloop for sensor data processing | ***mainloop for sensor data processing | ||
Line 71: | Line 92: | ||
*Paparazzi ground package | *Paparazzi ground package | ||
*gdhe for data visualization (polyline representations of laser scan lines) | *gdhe for data visualization (polyline representations of laser scan lines) | ||
Projects: | |||
# hoku2gdhe | GIT Projects: | ||
# hoku2gdhe - Demo app uses hokuyo and Xsens MTI sensor and generates polylines in GDHE [[Image:hoku2gdhe.png|thumb|hoku2gdhe]] | |||
# hokuyomti - App for aquiring hokuyo data and storing to file (Run in parallel with MTIHardTest) | |||
# log2gdhe - App for visualising stored log (real or virtual) in gdhe | |||
# log2gdhe/mkvirtlog - scripts for generating scan/attitude logs from a virtual terrain model [[Image:mkvirtsample.png|thumb|| mkvirtlog image output. <p> view [http://paparazzi.enac.fr/wiki_images/Terrain.gif animation] </p> gdhe [http://paparazzi.enac.fr/wiki_images/Virtual_surface_gdhe.png screenshot] ]] | |||
# biketest/scripts - scripts for generating images/animations from stored hokuyo/mti logs | |||
[[Image:plotlogsample.png|thumb|| Plotlogs image output. view [http://paparazzi.enac.fr/wiki_images/Loganim0_50_1.gif animation] ]] | |||
More info in the git [https://github.com/paulcox/laserhawk/blob/master/biketest/README README] | |||
: The goal is to fuse all of these capabilities into one package that allows: | |||
# displaying real or virtual data | |||
# live data, recording, and/or playback | |||
# display raw data in 2d plots (scan data along scan plane, attitude, position, altitude, etc) | |||
# rectify scan data using attitude and send 3d points to gdhe or store (where? what format?) | |||
# later on will treat data to generate terrain model / traversability map / whatever | |||
# not all of this needs to run on overo, just the acquisition and data treatment (some part of it anyways) | |||
# more? | |||
== Geometry == | == Geometry == | ||
Line 104: | Line 143: | ||
:* Angle relative to track : | :* Angle relative to track : | ||
: <center><math> Angle_{scan\_to\_track} = \tan^{-1} \frac{Dist_x}{Dist_y} = \tan^{-1} \frac{0.125}{60} = 0.119^\circ</math> (negligible relative to crab angle)</center> | : <center><math> Angle_{scan\_to\_track} = \tan^{-1} \frac{Dist_x}{Dist_y} = \tan^{-1} \frac{0.125}{60} = 0.119^\circ</math> (negligible relative to crab angle)</center> | ||
= Flight Logs = | |||
Available on git repo : https://github.com/paulcox/laserhawk/tree/master/mentor | |||
#May 11 - Manual flights, propeller small so not much thrust margin. IR and servo config tuning. | |||
#May 17 - Manual and Auto1/2 Flights with bigger prop and 80A ESC. Used all three 5Ah batteries, progressively increasing payload weight. | |||
#May 19 - Airframe configured for carrot=3 and reduction in throttle increment. High winds during flight. Lost canopy during flight. | |||
=Scratchpad = | =Scratchpad = | ||
Line 125: | Line 173: | ||
|- style="background:lemonchiffon; color:black" | |- style="background:lemonchiffon; color:black" | ||
| 1 || Lidar performance || at 30m flight height, over | | 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. | ||
|- style="background:bisque; color:black" | |- style="background:bisque; color:black" | ||
| 2 || Crashing Lidar || Will build | | 2 || Crashing Lidar || Will build box for protection || x || Done | ||
|- style="background:bisque; color:black" | |- style="background:bisque; color:black" | ||
| 3 || Radio interference at Elrob || need robust behaviors with lost com || x || x | | 3 || Radio interference at Elrob || need robust behaviors with lost com || x || x |
Latest revision as of 05:35, 20 May 2011
LaserHawk Project Description
Lidar UAV for traversability map generation
High-level Goals
- Autonomous flights of Multiplex Mentor UAV with onboard payload including:
- 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
- make hokuyo power switchable via GPIO (from tiny and/or overo)
- new mti gps antenna
Architecture
- 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)
Hardware
Airborne
- Airframe : Multiplex LAAS Mentor
Ground
- nothing special : laptops, modems, and antennae
Software
Version control : github
Airborne
- 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
Ground
- Paparazzi ground package
- gdhe for data visualization (polyline representations of laser scan lines)
GIT Projects:
- hoku2gdhe - Demo app uses hokuyo and Xsens MTI sensor and generates polylines in GDHE
- hokuyomti - App for aquiring hokuyo data and storing to file (Run in parallel with MTIHardTest)
- log2gdhe - App for visualising stored log (real or virtual) in gdhe
- log2gdhe/mkvirtlog - scripts for generating scan/attitude logs from a virtual terrain model
- biketest/scripts - scripts for generating images/animations from stored hokuyo/mti logs
More info in the git README
- The goal is to fuse all of these capabilities into one package that allows:
- displaying real or virtual data
- live data, recording, and/or playback
- display raw data in 2d plots (scan data along scan plane, attitude, position, altitude, etc)
- rectify scan data using attitude and send 3d points to gdhe or store (where? what format?)
- later on will treat data to generate terrain model / traversability map / whatever
- not all of this needs to run on overo, just the acquisition and data treatment (some part of it anyways)
- more?
Geometry
Laserhawk geometry | |
---|---|
- 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:
- For 90° interest zone :
- scan line advances down ground track :
- scan line proceeds along sensor rotation (for a 90 scan, this is twice the AGL height) :
- Resolution :
cm between pixels - Angle relative to track :
(negligible relative to crab angle)
Flight Logs
Available on git repo : https://github.com/paulcox/laserhawk/tree/master/mentor
- May 11 - Manual flights, propeller small so not much thrust margin. IR and servo config tuning.
- May 17 - Manual and Auto1/2 Flights with bigger prop and 80A ESC. Used all three 5Ah batteries, progressively increasing payload weight.
- May 19 - Airframe configured for carrot=3 and reduction in throttle increment. High winds during flight. Lost canopy during flight.
Scratchpad
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)
hoku2gdhe
Risks
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 |