Ground plane detection using ROS, 2D Lidar and Hough Transform

asked 2018-07-17 09:00:35 -0600

Freefallr gravatar image

Hi all. We have built our first prototype robot (UGV) recently as a hobbyist project and are using ROS Kinetic and OpenCV for several obstacle detection and avoidance tasks. As our main 3D environment mapping device, we use a stereo camera and we hoped that the point cloud data would be good enough to detect ground planes with high precision. The robot should only drive on ground with differences not higher than 5-6cm or more.

Unfortunately, point cloud data generated from the stereo camera (ZED cam from Stereolabs) is probably not precise enough for our use case. Therefore, we bought a 2D LIDAR (RPLidar A2M8) and placed in on the "nose" of the robot, but with 45° angle (showing downwards to the ground).

Our plan is to use the LIDAR laserscan data to recognize where the ground starts to be "non-plane". We wanted to use the detected ground line under the center of the robot as a reference point / reference line, and every point or line that's left and right from it with a height difference higher than 5-6cm (maybe 1-2cm more) will be in its "no-drive / danger zone".

The question is as follows:

We thought about using Hough Transform or some algorithm with similar output to draw the reference ground line that lies under the center of the robot (width probably 40-50cm). As backup / driving improvement strategy, we'd like to use the camera data too and apply a Canny Edge Filter + Hough Transform to detect edges on the ground, so our robot can detect its "no drive zone" better if LIDAR data is not accurate or precise enough. Do you think that this is the right approach for our specific goal, or can you point me into some other direction which will lead to a better result in your opinion? I will probably just test it the next few days and weeks and see if it works out, but I'd be very glad if some of you know a better approach so we don't lose too much time "driving in the false direction" :-) Thanks a lot in advance!

edit retag flag offensive close merge delete


tabletop_object_detector might help How about rotating the laserscanner so you get a 3d picture of the environment.

Humpelstilzchen gravatar image Humpelstilzchen  ( 2018-07-18 03:56:11 -0600 )edit

@Freefallr were you able to find any solution?

siddharthcb gravatar image siddharthcb  ( 2021-04-26 00:14:11 -0600 )edit