自主导航系列17-costmap

tech2026-04-25  1

自主导航系列17-costmap

日期:2020-9-1

1,movebase总体框架

2,仿真环境下的结构关系

需要修改的部分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pUTnjJBv-1599208020713)(/home/jianzhuozhu/.config/Typora/typora-user-images/image-20200901091640714.png)]

rostopic info /move_base_node/global_costmap/costmap Type: nav_msgs/OccupancyGrid Publishers: * /move_base_node (http://jianzhuozhu-OptiPlex-9020:36349/) Subscribers: * /rviz_1598922383833240639 (http://jianzhuozhu-OptiPlex-9020:34877/)

3,costmap的创建过程

这个是/map的

rostopic info /map Type: nav_msgs/OccupancyGrid Publishers: * /slam_gmapping (http://jianzhuozhu-OptiPlex-9020:36009/) Subscribers: * /move_base_node (http://jianzhuozhu-OptiPlex-9020:42111/) * /rviz_1598945114230555719 (http://jianzhuozhu-OptiPlex-9020:37241/)

参考具体这个教程

costmap不是单独一个栅格图,而是将一个栅格图分成了很多层,如最底下是静态地图,即墙壁,桌子等建地图时已经存在的障碍物;第二层是障碍物层;第三层是膨胀层,可以理解为把障碍物膨胀了一圈,最上面就是把前面各层的cost叠加起来形成最后的栅格图mast_grid。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nl43mMDp-1599208020715)(/home/jianzhuozhu/.config/Typora/typora-user-images/image-20200901214947050.png)]

因为global_costmap与local_costmap共同继承了common的命名空间,所以的在comman的文件中,添加了一个obstales,说明障碍物层的数据来源scan,"obstacles:"的作用是强调命名空间。

obstacles: observation_sources: scan scan: {data_type: LaserScan, topic: /scan, marking: true, clearing: true, expected_update_rate: 0}

在全局规划文件中加上layer插件

plugins: - {name: static_map, type: "costmap_2d::StaticLayer"} - {name: obstacles, type: "costmap_2d::VoxelLayer"} - {name: simplelayer, type: "simple_layer_namespace::SimpleLayer"} - {name: inflation_layer, type: "costmap_2d::InflationLayer"}

这个教程是非常值得参考的,明天可以看一下

最新回复(0)