Skip to content
This repository was archived by the owner on Sep 20, 2024. It is now read-only.

Workshop 7 2D3D Perception

gcielniak edited this page Nov 8, 2018 · 7 revisions

From now on, you should start working on your assignment. The workshop tasks for this week, however, are directly relevant to your assignments and should help you with your individual developments. First, clone the repository in your workspace.

Task 1

Run uol_cmp9767m_tutorial image_geometry_1.py node which projects a 3D point from camera to image coordinates. What camera coordinates (x,y) correspond to the image borders of the Kinect sensor, assuming only points on the ground plane (z=0.5)?

Task 2

Run uol_cmp9767m_tutorial image_geometry_2.py node. Note the coordinates of the ground point specified in the robot frame (base_link) transformed into the camera frame (kinect2_rgb_optical_frame). Change the node such that the transform expresses the central ground point in the camera coordinates (0,0,0.5) in the robot frame. Compare the results.

Task 3

Change the orientation of the Kinect camera such it faces forward pointing at the ground at 45 degree angle (see urdf/sensors.xarco file and kinect2_cam_or, kinect2_cam_op and kinect2_cam_oy properties). Re-project the central pixel of the camera into a 3d ray and then calculate the distance from the cetnre of the sensor to the ground (see for example ray vs plane intersection tutorial). Calculate the coordinates of the ground point in the camera coordinates and then transform the point into the robot frame.

Task 4

Explore pcl_ros functionality by running the following examples:

  • Publish a static transform between the base_link and pcd_link at 10 Hz (e.g. tf static_transform_publisher 0 0 0 0 0 0 base_link pcd_link 10).
  • Setup a pcd_to_pointcloud node to generate a point cloud based on the provided pcd file (uol_cmp9767m_tutorial/models/ism_train_wolf.pcd) in the pcd_link frame with 1Hz frequency Visualise the point clound in rviz. The wolf is quite large so you will need to adjust the point size and zoom out a lot.
  • Inspect and run the uol_cmp9767m_tutorial passthrough.launch nodelet which should filter out the wolf’s legs (it only lets z values above 30 m). Now modify the filter such it removes the wolf’s tail but does not affect the rest of its body.
  • Using the passthrough launch file as a template, setup and run the StatisticalOutlierRemoval filter. What value of the mean_k parameter starts to affect visually the resulting point cloud?
  • Using the passthrough launch file as a template, setup and run the Voxelgrid filter. What is the critical value of the leaf_size parameter which still makes the animal recognisable?