当前位置:网站首页>室内ROS机器人导航调试记录(膨胀半径的选取经验)
室内ROS机器人导航调试记录(膨胀半径的选取经验)
2022-07-07 11:28:00 【酸梅果茶】
1. 地图图层

注:在上图中,红色部分代表代价地图中的障碍物,蓝色部分代表机器人内切半径膨胀的障碍物,红色的多边形代表机器人的边界(footprint)。为使机器人避免碰撞,机器人的红色边界不能相交于红色部分,机器人的中心点不能相交于蓝色部分。
假设有一圆形机器人半径为0.5m,那么

膨胀半径,膨胀层会把障碍物代价膨胀直到该半径为止,一般将该值设置为机器人底盘的直径大小。
问题1:理论上,膨胀半径最小值为机器人的半径,否则容易撞上障碍物?例如半径为0.5m的机器人,全局膨胀半径是不是可以设置比0.5稍微大一点的值,例如0.8m? [待验证]
2. 常见代价地图图层
静态地图图层:基本上不变的图层,通常是SLAM建立的静态地图
障碍地图层:用于动态的记录传感器感知到的障碍物信息
膨胀层:在静态地图和障碍地图层上进行膨胀(向外扩张),以避免机器人撞上障碍物
其他图层:通过插件实现的其他地图图层,例如传感器地图层
3. 膨胀半径测试经验总结
膨胀半径设置太小,可能会出现贴着障碍物运动。半径为0.25m的机器人,设置为0.6m会存在明显的贴着障碍物运动,设置成0.8m较合适。
机器人的实际尺寸很重要,要写实际的测量尺寸,不能够将尺寸写大一点。实测发现,机器人实际半径0.254m,写成了0.27m(之前的想法是,半径写大一点,防止撞到障碍物),测试结果发现写成0.27m,全局膨胀半径1.1m,局部膨胀半径0.1m,过80cm的窄道,较困难(设置过度点也不行)。但是改成机器人实际半径尺寸,正常导航也可以通过80cm的窄道。
测试发现,全局膨胀半径对机器人过窄道的影响不大,过窄道更要注意实际的尺寸和局部膨胀半径参数。
参考链接:
costmap_2d-ROS Wiki
边栏推荐
猜你喜欢

提升树莓派性能的方法

Distributed transaction solution

如何让join跑得更快?

How far can it go to adopt a cow by selling the concept to the market?
![Scripy tutorial classic practice [New Concept English]](/img/bc/f1ef8b6de6bfb6afcdfb0d45541c72.png)
Scripy tutorial classic practice [New Concept English]

Centso7 OpenSSL error Verify return code: 20 (unable to get local issuer certificate)

Error lnk2019: unresolved external symbol

【学习笔记】zkw 线段树

将数学公式在el-table里面展示出来

共创软硬件协同生态:Graphcore IPU与百度飞桨的“联合提交”亮相MLPerf
随机推荐
MongoDB优化的几点原则
分屏bug 小记
学习突围2 - 关于高效学习的方法
Esp32 construction engineering add components
Cookie and session comparison
Analysis of DHCP dynamic host setting protocol
Introduce six open source protocols in detail (instructions for programmers)
[untitled]
Mongodb slice summary
How far can it go to adopt a cow by selling the concept to the market?
记一次 .NET 某新能源系统 线程疯涨 分析
飞桨EasyDL实操范例:工业零件划痕自动识别
LeetCode_二分搜索_中等_153.寻找旋转排序数组中的最小值
Problems that cannot be accessed in MySQL LAN
Unity build error: the name "editorutility" does not exist in the current context
线程池拒绝策略最佳实践
Ways to improve the performance of raspberry pie
Cinnamon taskbar speed
How to make the new window opened by electorn on the window taskbar
Practical case: using MYCAT to realize read-write separation of MySQL