Difference between revisions of "CISC849 S2016 HW1"

From class_wiki
Jump to: navigation, search
(Tasks)
 
Line 14: Line 14:
 
==Tasks==
 
==Tasks==
  
 +
# First, use <tt>pcl_viewer</tt> to inspect the point clouds and get a sense for how they look
 
# For each point cloud, count the number of objects.  One way to do this is to fit the tabletop plane using PCL's [http://www.pointclouds.org/documentation/tutorials/planar_segmentation.php RANSAC] functionality, then use [http://www.pointclouds.org/documentation/tutorials/cluster_extraction.php Euclidean clustering].  But other methods are possible and may be more robust ['''5 points''']
 
# For each point cloud, count the number of objects.  One way to do this is to fit the tabletop plane using PCL's [http://www.pointclouds.org/documentation/tutorials/planar_segmentation.php RANSAC] functionality, then use [http://www.pointclouds.org/documentation/tutorials/cluster_extraction.php Euclidean clustering].  But other methods are possible and may be more robust ['''5 points''']
 
# Assuming you know that you are looking at just boxes or just cylinders that are standing "upright" (not on their side, not leaning diagonally), output estimated parameters for each object.  For boxes, this means ''height'' x ''width'' x ''length''; for cylinders this means ''height'' x ''radius'' ['''5 points''']
 
# Assuming you know that you are looking at just boxes or just cylinders that are standing "upright" (not on their side, not leaning diagonally), output estimated parameters for each object.  For boxes, this means ''height'' x ''width'' x ''length''; for cylinders this means ''height'' x ''radius'' ['''5 points''']

Latest revision as of 14:27, 16 February 2018

Due Thursday, March 1, midnight

Description

NOTE: YOU MAY WORK ALONE OR IN TEAMS OF TWO

This assignment is designed to familiarize you with the Point Cloud Library (PCL) as a tool for analyzing scenes for robot navigability and basic object discrimination. Below are several "objects on a table" point clouds in the form of pcd files.

These are taken from a larger object dataset that you are welcome to test your code on. For grading, I will try your submissions on some of the other "learn" point clouds (but not the "test" data).

Tasks

  1. First, use pcl_viewer to inspect the point clouds and get a sense for how they look
  2. For each point cloud, count the number of objects. One way to do this is to fit the tabletop plane using PCL's RANSAC functionality, then use Euclidean clustering. But other methods are possible and may be more robust [5 points]
  3. Assuming you know that you are looking at just boxes or just cylinders that are standing "upright" (not on their side, not leaning diagonally), output estimated parameters for each object. For boxes, this means height x width x length; for cylinders this means height x radius [5 points]
  4. Assuming you know that only one type of object is on the table, but you don't know which one, can you develop a "test" to tell which is which? [5 points]

You might want to try voxelization before any other processing to reduce the size of the data if your code is running slowly.

Please submit ONE main.cpp file containing all code to Canvas. Ideally, your program will take an input .pcd file on the command line as well as a flag indicating whether mode 1, 2, or 3 above is being run, and print the required information to standard out. Please also include a README with your name (and that of your teammate) that briefly explains how you approached each task, and any issues you encountered or interesting observations you made.