[关闭]
@danren-aa120 2020-10-16T00:29:47.000000Z 字数 952 阅读 420

base_local_planner vs. dwa_planner

ROS


dwa_local_planner支持x,y和theta中指定的速度约束,而base_local_planner仅支持x和theta中指定的约束。 y速度有一些支持,但用户仅限于有效y速度命令的预先指定列表。对于完整或伪完整的机器人,这使dwa_local_planner成为更好的选择,因为它允许对速度空间进行更好的采样。

dwa_local_planner本质上是对base_local_planner的DWA(动态窗口方法)选项的重写。我认为该代码更加简洁易懂,特别是在模拟轨迹的方式上。我相信,两个软件包之间的许多重叠代码都已被分解并共享。但是,确实有更多工作可以完成,以实现通用功能。对于使用DWA方法进行本地规划的应用程序,dwa_local_planner可能是最佳选择。

Robots with low acceleration limits may wish to use Trajectory Rollout over DWA. This option is only available through the base_local_planner package.加速度限制较低的机器人可能希望在DWA上使用“轨迹展开”。此选项仅可通过base_local_planner包使用。 Documentation on the differences between Trajectory Rollout and DWA is available here.

base_local_planner和dwa_local_planner软件包均得到了积极维护和稳定,可以通过dynamic_reconfigure调整两个计划器。

详细查看了代码之后,还有一些细微的差异。 trajectory_planner_ros考虑x速度为正且首先在原位旋转的轨迹。而且只有在没有找到有效轨迹的情况下,它才考虑进行 strafing(扫射)。这对于像PR2这样最前面装有障碍物传感器的机器人很有帮助。还有一种机制,可以通过向后移动丢弃trajectory_planner_ros中的地图障碍物来解除机器人的卡住。

我个人认为,dwa_planner是不确定时应使用的工具,因为代码库更干净,更易于错误修正和扩展。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注