私人理解,如果您有任何疑问,请更正,谢谢!
在移动基础中,全球规划师的效果并不令人满意,并且极大地影响了当地计划的影响。因此,尝试以人为地提供全球路径,然后使用TEB本地规划师避免障碍1。移动基本源代码
目前,ROS的全球规划师主要包括:A*和Dijkstra,本地规划师主要包括:DWA,TEB,ETC。
首先列出移动基地中订阅的主题:
这里可以通过RVIZ给出目标点。在回调函数中,该类型被转换为类型。发表的主题是:
创建服务:开始创建地图(请参阅详细信息5.部分)b。清除地图
C。动态参数服务(请参阅4.详细信息部分4.部分)
d。服务(请参阅详细信息6.部分)
然后,更重要的参数是确定全球和本地规划师。参数设置完成后,创建了全局和本地规划器。
开始更新CostMap并创建与地图相关的服务。
加载指定的恢复设备。如果失败,请使用默认恢复(特定过程在3.零件中)。
确定生成路径的初始状态。在这一点上,我们将在列表开头执行恢复。
设置了所有参数设置后,可以激活该服务。
像全球规划师和本地规划师一样,但实际上,当找不到本地价格图或全球价格图时,它被称为。
在中间,如果没有定义的计划器类型,则直接使用默认规划器。
首先设置默认值
如果当前或本地规划师与以前的设置不同,则将创建新的计划者。当前计划者结束后,旧计划路径将被清除并重新计划。以全球规划仪代码为例:
确定起点。如果服务MSG中给出的起点为空,则将全局变量设置为起点。
然后尝试制定一个准确的目标,并计划在公差范围内找到可行的路径。
如果失败,请在指定的公差范围内找到可行的目标点,然后使用计划。
如果此时成功计划了全球路径,则将原始目标点添加到全球路径中,以防万一可以达到本地计划。如果您失败了,请继续找到正确的目标。最终,通过服务消息。
geometry_msgs :: posestamped目标= poxtoglobalframe(move_base_goal-> target_pose);
其中,值得
达到目标点目标后,您开始尝试计划路径以获取全球路径
同样在中间,该功能被调用,并在此处计划本地路径。
首先,要确定是否有一个全局路径,即设置,然后使用通往初始状态本地路径的全局路径。
2.设置全球路径源代码,移动基础计划通过全球路径规划师的全球路径,然后传递给本地路径计划者,即在中国找到合适的目标点,并确定全球路径。
(未经测试,要进行测试)补充:您还可以编写全局路径计划插头-in!