## Description

Step 0: Setup

For this homework, and many of the coming ones, a basic workspace will be made available in /csshare/pradalier/cs8804_students_ws

In this case, we will be working onfinding the ground plane in a 3D point cloud. This point cloud is

provided by the simulated kinect on the V-REP robot under the topic /vrep/depthSensor.

Important, from this homework, we will use a slightly more complex scene, /csshare/pradalier/scene/rosControlKinect3d.ttt

Start by copying the floor_plane_hough and floor_plane_ransac ROS packages from the

cs8804_students_ws/src directory. Make sure everything is working by compiling them with

catkin_make.

The packages are fully configured to find the libraries they need. You don’t need to touch the

CmakeLists.txt or package.xml files. Just edit the src/floor_plane_XXX.cpp in each package.

You should read the whole file to understand what’s going on, but your contributions must be inserted

between the “TODO START” tag and the “END OF TODO” tag.

Step 1: Model Finding using the Hough Transform

For this step, you need to modify the floor_plane_hough package. The goal is to use the general

principles of the Hough Transform to find likely plane parameters from the point cloud and in

particular the ground plane. The Hough Transform relies on a nD accumulator. This is provided in the

accumulator member variable, which is implemented as a 3D OpenCV matrix. Example of use are

provided in the code.

The specific point of the linear-regression homework are still valid. Read the homework text again

(step 1) to refresh your knowledge about the point clouds.

On the specific topic of the Hough Transform, here are a set of questions to consider:

• Why is the accumulator setup with 3 dimensions, what are the range and discretisation required

for each dimension?

• Discretisation implies aliasing. Propose (but do not necessarily implement) a way to combing

the Hough Transform with other tools to have a precise estimator while still being resilient to

noise and outliers.

Evaluation:

• Evaluate the sensitivity of the plane estimation to environment parameters, in particular smooth

slope transition and obstacles.

• Evaluate the computation load and find a good trade-off between precision and computation

time by adapting the parameters.

• Do we need the same discretisation on all parameters?

Step 2: Model Finding using RANSAC

For this step, you need to modify the floor_plane_ransac package. The goal is to use the general

principles of RANSAC to find likely plane parameters from the point cloud and in particular the

ground plane.

Evaluation:

• Find good parameters in terms of number of samples and tolerance. Try to find

physical/mathematical justification for your choice of parameters.

• Evaluate the sensitivity of the plane estimation to environment parameters, in particular smooth

slope transition and obstacles.

• Propose a solution to use RANSAC as a first step into a precise least-square-based ground plane

detection.

Step 3: Deliverable

Submit the ros packages (tar.gz or zip) by email by next Thursday, 10:00 to

cedric.pradalier@georgiatech-metz.fr (don’t forget to mention you group name)