Skip to content

Latest commit

 

History

History
16 lines (11 loc) · 1.43 KB

README.md

File metadata and controls

16 lines (11 loc) · 1.43 KB

mapping

The mapping package handles importing the pointcloud generated by the iPhone/iPad mapping app and flattening it to an occupancy grid.

The mapping.launch launch files launches 2 ROS nodes

point_cloud_io

Accepts a .ply file generated by the mapping app and publishes the associated pointcloud to the /cloud topic.

octomap_server

Listens to the pointcloud published by point_cloud_io and flattens it down to a 2D occupancy grid. Requires the transform from the /map frame to the /cloud frame to be defined.

We opted to use octomap package because it was the easiest to implement. However, this is definitely not the best package to use. This is because it treats the point_cloud as a laser scan. Therefore, it marks all of the grid cells between the robot and the pointcloud points as free, even though they may not be. Consequently, the package also requires the transform from the /map to /base_link frame to be defined. This is a problem because the localization package requires the map to be published because it can publish the robot pose. This circular dependency makes it difficult to start the autonomous software.

Known Issues

  • Unity uses a left-hand coordinate frame, which is not convention in ROS. Therefore, the pointcloud in the ply file is upside down. The coordinate frame needs to be changed to right-hand.
  • As mentioned previously, octomap_server needs to be replaced. grid_map may be an effective alternative.