Terrain Following Missions using Lidar

The upcoming Copter-3.4 release will include terrain following support for mission commands using either Google earth altitude data or a Laser Range Finder.  This is a demonstration video shot at a ski hill near my home in Karuizawa Japan of this new feature.

For this test I used a venerable 3DR IRIS with a PulsedLight Lidar Lite.  This lidar is difficult to find but actually I recommend the sensors from Lightware (like the SF10) which, although they are quite a bit more expensive, are much more reliable and offer a greater range.

With this new feature, the pilot can input a mission with altitudes specified as either Terrain altitudes (i.e. altitude above the terrain), Absolute altitudes (i.e. 1300m) or the regular Alt-Above-Home that we've always supported.

In case you're wondering how we decide whether to use google earth data vs lidar, if the vehicle has a lidar attached it will use it, if not, and the mission specifies terrain altitudes, google earth data will be used (Note: the ground station must support sending the terrain data to the vehicle which Mission Planner and MAVProxy certainly do but I'm less sure about Tower, APPlanner2 and QGroundControl).

This was actually the third or fourth test flight of the feature.  Some of the others are below with varying levels of success :-).

Terrain following with Google earth data

Terrain following with Lidar but crashes because of weak battery

Short mission with straight line waypoints (successful)

Longer mission with spline waypoints (unsuccesful because of tuning...

The changes are under peer review and should end up in master within a few days.

The dataflash log of the flight can be found here.

Special thanks to Leonard Hall and Tridge who helped me at numerous points during the development of this feature.

Views: 4951

Comment by wrostek on May 15, 2016 at 3:49am

Are we not mixing things here?

Randy's vid is addressing below tree level navigation.

Running e.g. mapping missions with a plane is more interested
in staying above and away from obstacles. I would like to see
if my planned path is going to cross windmills or things like
that. This kind of resolution isn't easy to add to global maps.

I feel that an SRTM raster with additional min/max in
its square should be easier to store. That could be enough
to smooth the flight path and get attention to handle some
obstacles by hand.

Just off top of my head.

Comment by Paul Meier on May 15, 2016 at 4:14am

I was referring to Randy

Terrain following with Google earth data

and Fnoop

So cool!  Looks like data is available at 30m resolution, would be great to have that added eventually

Comment by MAGnet Systems on May 15, 2016 at 2:29pm

This is a great feature that highly contributes to flight safety (and drone safety). Congrats Randy and team!

BTW, will it be available in all Auto modes i.e. Guided?

A nice addition might be to create (or import) 3D objects that can be used as artificial obstacles that the terrain following feature will use as standard SRTM data. For example you can create a cube that represents a building, place it on the map on its exact location and terrain following will treat it as it was real SRTM data flying above it.

This might require extensive modifications to the Mission Planner but an easy way to do it is to create 3D geofences (with elevation) and treat them as 3D objects that the drone will overfly. This way you can fill the gap of artificial objects missing from the SRTM data i.e. buildings, trees, power lines, etc. 

Comment by Thomas Stone on May 15, 2016 at 3:44pm

Great feature! :)

Comment by Cala on May 15, 2016 at 4:17pm

Thank's Randy and group I'm going to have to try again with the Lidar to work.:) 

Comment by Randy on May 15, 2016 at 5:54pm

@PascalP, I haven't tested the Lidar when flying above trees, mostly because my Lidar is only 40m (and trees in my area tend be to 20m~30m).  I hope to pick up a much longer range lidar from lightware and then we can see how it perform.  I imagine there will be some issues with the altitude estimate changing a lot and leading to very bouncy behaviour of the vehicle but that's just a guess.

Comment by Randy on May 15, 2016 at 6:04pm

Thanks for all the comments BTW.

@Andy Little, yes, Tridge has also suggested in the past that we could save the actual terrain heights (from Lidar) to the local terrain database on the flight controller.  Grabbing that same data from the logs (recorded at 10hz) and then uploading to open-street-maps would also work. I won't personally be able to take on that work but it's an idea that I suspect will re-appear.

@Hattori-san, RTL can be configured to use the terrain data during it's return as well.  I didn't have it setup to do that but it's possible.  The issue with the earlier video where it brushed against some trees is that the fence altitude is still specified as an altitude-above-home and the vehicle will never fly above that at the moment.

Comment by Randy on May 15, 2016 at 6:12pm

@Fnoop, @PaulM, Tridge wrote the terrain database (on the flight controller) and it's very flexible re the size of the grids.  I think it will require some coordination with MichaelO (and other GCS developers) but I think it's relatively straight forward to use different sources and different (smaller) grid sizes.

@MAGnet, yes, this is available in pretty much all modes now except Acro, Stabilize and Drift.  Lidar based terrain following has been available in AltHold, Loiter, PosHold for quite some time and with Copter-3.4 will work in the others (Auto, Guided, RTL and Land).  The only missing piece is using google earth altitudes in AltHold, Loiter and PosHold.

Also I have to say that there's a little gotcha with RTL if it's triggered by a "Terrain data FailSafe".  It's a bit detailed but if we lose terrain data (like the lidar stops working or the vehicle runs off the available map from google) it may trigger a "Terrain Failsafe" which will trigger an RTL to home.  The issue is that in this situation, it won't try and use the google-earth or Lidar on the return trip.  This edge case is something we still need to fix.

Comment by Randy on May 15, 2016 at 6:16pm

@Gary, All,

Using Lidar (or camera) for Non-GPS position estimation and object avoidance is something that won't make it into Copter-3.4 but I hope it will be in Copter-3.5.  It's a big job but I've found a sponsor recently for this project and I hope to begin on it in the next month or so.  Before then I'll be working on a vision based precision landing (using an NVidia TX1) - this will be just an extension of the IR-Lock based precision landing.

Comment by Cala on May 15, 2016 at 6:25pm

Sometimes looks better to fly with Lidar and sometimes baro depends what you want, It's possible to have a switch to choose the use of lidar or Baro?


You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service