在导航运行和路径规划中,robot的footprint非常重要,地图上它表现出robot的形状,注意和base_footprint坐标系进行区分。
需要了解几个概念;
costmap基本参数:文件turtlebot_navigation/param/costmap_common_params.yaml
1.inflation_radius:膨胀半径,robot的中心点不能接近以障碍网格为中心,inflation_radius为半径的区域,否则就可能会发生碰撞。简单来说就是以把robot看成一个点,为了不发生碰撞,障碍物相应就膨胀。
2.robot_radius: 当机器人为圆形时,半径的大小,kobuki是0.18m
3.footprint: [[x0, y0], [x1, y1], ... [xn, yn]] :当机器人非原型时,先找机器人的旋转中心,即两个轮的中心点设置成(0,0),然后确定机器人摆放方向,x,y为每个robot几何型的每条边的每个顶点。将所有顶点都列到其中。就完成了robot的footprint。
local costmap参数:文件turtlebot_navigation/param/local_costmap_params.yaml
1.inscribed_radius:robot旋转一圈,map上一直被robot覆盖没有露出的圆形的半径。还是有点复杂,举例来说,有一块白色画板,将robot放上去,然后将画板中除robot部分图成红色,再然后旋转robot一个很小的角度,再将露出的白色画板图成红色,重复此过程直到robot旋转360度,拿开robot,画板上会剩下白色的圆&