ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

As has been mentioned you will at some point be generating a point cloud map of the terrain using your sensors and some type of front end processing. This could be done using RTABMAP and a good RGB-D sensor, or a scanning lidar and motion estimation system. There are few options here, what I'm going to describe is a pipeline to go from a point-cloud to a set of safe landing spots.

Firstly point-clouds are great but they're very computationally expensive to work with, given that you're working with outdoor terrain I recommend converting the point-cloud to a digital elevation map (DEM) first. You need to choose a suitable cell size based on the size of flat landing area you need, I'd guess a 10th of the flat radius you need would be a good start. You'll then generate DEM which contains the minimum and maximum elevations of each cell, this is important because it allows you to distinguish between flat, areas and foliage etc.

When you have the DEM calculated it relatively simple to search across the 2D data and find and areas large enough that are also smooth and horizontal enough to land on.

There are other potential hazards such as bodies of water, vehicles and roads that may have to be considered depending on your application. You might not want to land on the roof of a car for example, but that's a trickier one to avoid!

Hope this helps.