Indoor flights without position estimate


My team is working on a project for autonomous flight in underground tunnels using a quadrotor. GPS in not available in the tunnels, and in our context we cannot install any type of indoor / mocap positioning system.

Our proposed strategy is to control the quadrotor dynamically by detecting the tunnel walls using a laser. This gives us the feedback required to control heading (eg. facing along the tunnel) and lateral position (eg. equidistant from the walls). We will also use a laser ranger for altitude control. This approach was tested succesfully in simulation using the PX4 HITL setup with jMavSim (which simulates GPS), by issuing offboard velocity setpoints to control the vehicle position, heading and altitude.

Is this approach possible with PX4 without positional data? My understanding is that velocity control requires positional data, so which lower-level setpoints should we use instead?

Thank you for your help!

you will need something to get your position along the tunnel. As you’ve described the system, your quad will have no idea where it is along the tunnel or how fast it is going. Without GPS or some kind of direct measurement of position you are going to need to use some SLAM. This likely means that you’re going to need cameras.

SLAM is going to be very hard to implement. If you’re okay with keeping your quad near a groundstation you could estimate the distance of the vehicle using the signal strength of the wifi or radio. This will be much easier and would be a nice stepping stone before you attempt full autonomous slam in tunnels.

Hi William, thanks for your feedback! I should have explained that our goal in this project is to have semi-autonomous flight, in the sense that our customers want to have control about the vehicle’s movement along the tunnel. They know where the vehicle is, and first-person view will allow them to to control speed along the tunnel, also to slow down and look at a specific area on the walls where they are looking for defects.

Therefore our objective is to provide ‘autonomous’ lateral and altitude control, while a pilot controls the forward movement along the tunnel. In that context my understanding is that we don’t need full SLAM, only feedback to ensure we’re at safe altitude and safe distance from the walls, which we think we can provide using the forward-looking laser and a ranger looking down.

I hope that makes sense!


Sounds good! I think the next big problem you’ll face is communications. Also, you should probably have two laser distance finders so you’ll always have a measure of wall distance if you deside to turn around.

how regular are these tunnels in shape? It might be prudent to have an addition laser pointed up to be sure that the distance to the ceiling never gets too small.

Looking forward we’re using a Hokuyo laser with a 240deg field-of-view – it allows us to do wall detection and obstacle detection simultaneously. I like your idea of a laser ranger looking up to stay at safe distance from the ceiling - thanks!

In terms of communications, we will deploy a WiFi router at the takeoff point, and ensure that the vehicles always stays within WiFi range during flight so that the pilot can get visual feedback and control the platform. We are flying in sewer tunnels which have well known geometry and are in general very regular in shape.

To the best of my knowledge the distance you’ll be able to get with wifi ( or any other “narrowband” radio for that matter) will be quite limited in a tunnel that’s less than ~ 3m wide. I hope that’s not the case with your tunnels

Hi, we have done several tests already, and the WiFi signal normally propagated over 100m along the sewer tunnels, with enough bandwidth to stream video. We even observed that the signal propagates quite well around bends, so that comms without line of sight are even possible to some degree.