运行robot_navigator.py时无法导入NavigateThroughPoses等类的问题求助
问题原因
- 你使用的是ROS Foxy版本,
NavigateThroughPoses和ComputePathThroughPoses这两个Action是Nav2在Galactic及后续版本才新增的功能,Foxy版本的nav2_msgs并未包含这两个Action的定义,因此会触发导入错误。 - 你参考的2021年Nav2 ROSDevDay教程基于的Nav2版本高于Foxy,代码中使用了Foxy不支持的新Action类型。
解决方法
有两种可行方案:
- 升级ROS版本
- 将ROS环境升级到Galactic或更高版本(如Humble),这类版本的nav2_msgs默认包含这两个Action定义,无需修改代码即可正常运行教程内容。
- 适配Foxy版本修改代码
- 若无法升级ROS,可通过以下方式适配:
- 移除导入语句中不存在的Action,修改为:
from nav2_msgs.action import NavigateToPose, FollowWaypoints, ComputePathToPose - 替换原有功能逻辑:用
NavigateToPose循环调用模拟NavigateThroughPoses的多目标导航;用ComputePathToPose逐个计算路径并拼接,替代ComputePathThroughPoses的功能。
- 移除导入语句中不存在的Action,修改为:
- 若无法升级ROS,可通过以下方式适配:
内容的提问来源于stack exchange,提问作者Steve Brown
相关产品推荐
相关产品推荐

