1. 想法
虽然ros的costmap_2d包对障碍物的考虑很全面,但它主要用在move_base导航包中,而且耦合性很强,很难单独提取出来使用,那如果我手里有个二维激光雷达,而我又不想使用move_base导航包,那该如何生成局部的代价地图供后续的避障使用,基于此,便写了这两篇文章:主要思路是:sensor_msgs::LaserScan —> sensor_msgs::PointCloud2 —> nav_msgs::OccupancyGrid
2. sensor_msgs::LaserScan —> sensor_msgs::PointCloud2
参考这篇:
将sensor_msgs::LaserScan转化为sensor_msgs::PointCloud2
3. sensor_msgs::PointCloud2 —> nav_msgs::OccupancyGrid
利用grid_map
主要函数:
grid_map::GridMap costmap_
void CostmapGenerator::initGridmap()
{
costmap_.setFrameId(lidar_frame_)