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 and hits altitude fence)

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.

3689691335?profile=originalSpecial thanks to Leonard Hall and Tridge who helped me at numerous points during the development of this feature.

E-mail me when people leave their comments –

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

Join diydrones


  • Developer

    @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.

  • Developer

    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.

  • Developer

    @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.

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

  • Great feature! :)

  • 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. 

  • 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

  • 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.

  • This is the link for the elevation dataset

  • Great accomplishment Randy,

    It does look like what might be really useful is a forward looking LIDAR.

    Perhaps either instead of or in addition to straight down LIDAR.

    So that you could climb over vertical obstacles (like trees).

    At least with a copter you have the possibility of slowing or stopping horizontally to adjust altitude vertically.

    It seems possible that a single lidar pointing forward at a 45 degree angle might provide sufficient information for both altitude and approaching vertical obstacles.

    I know the Lidar Lite's limited range would be problematic, but the excellent Lightware ones are available with sufficient range to make this seemingly feasible.

    An even more interesting possibility could be a simple servo driven pitch gimbal permitting straight down to straight ahead real time positioning.

    What are your thoughts regarding this?

    Best regards,


This reply was deleted.