Quadrotor SRTM elevation map altitude control

The video below shows a quadrotor following bilinear interpolated SRTM elevation data. Pitch, roll, yaw are controlled manually.

Barometer and elevation readings are zero'ed at start.
The baro setpoint is set to a safety distance of elevation + 7m.

There are basically three Linux processes involved in this: The GPS publisher passes latitude/longitude data to the elevation map lookup service, which publishes elevation data to the autopilot. This communication is implemented using ZeroMQ. The GPS and autpilot services are implemented in C, while the elevation map is implemented in Python.

The interpolation of SRTM data can be found here:

Note: There are some "jumps" in the altitude, which are caused by wind gusts or lateral movement commands, affecting the imperfect altitude controller. Some more tuning is required here.

E-mail me when people leave their comments –

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

Join diydrones


  • just collecting the information where to get the parts...

  • please keep me updated, guys

  • The sw looks good.

    At the moment i tend not to use the navio board because of the sensor choice.

  • For everyone who wants to build a PenguPilot based quad: the software is not ready-to-fly; it's experimental and some tweaking might be required. However, I hope to get my NAVIO board for the Raspberry Pi soon; maybe this could become a "reference platform" for PenguPilot. Cheers, Tobias

  • That's good work Tobias. I think I'm with Robert.

  • Robert, if you need any assistance feel free to contact me... :)

  • There is also another video showing the copter climbing another hill:

    (Unfortunately, no gimbal stabilized camera in this video; just taped to the copter)

  • look like i have to bite the bulltet and solder a pangupilot controller ;-)

    will spend a freeimu for it.

  • 5*....

This reply was deleted.