motion planning分类

作者整理了motion planning的两种分类。一种将其分为path和trajectory,前者侧重整体道路规划,不考虑时间和临时障碍物;后者侧重局部规划,需考虑障碍物。另一种是从上到下分为决策、规划和控制,还提及很多论文中motion planning分类模糊。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近看论文,整理了两个从不同角度的motion planning的分类。
在这里插入图片描述
这是比较流行的一种分类方法,将motion planning分为path和trajectory。

path planning侧重的是起点到终点的路径规划,很像高德地图的导航,适用于整体的道路规划,并且不考虑时间,是忽略临时或移动障碍物的前提下做出的规划,解决的是走什么路线到达目的地的问题。

trajectory planning侧重的是局部道路的规划,是在考虑临时或移动障碍物的前提下做出的规划,解决的是如何在避开障碍物的同时尽量沿着路径走的问题,和你看到地图上指示的路线后虽然是沿着路线走但是仍需要看路看车看人看红绿灯一样,重点在避障和遵守交规。

后面列的是两种规划基于不同技术的分类以及分类下一些重要的算法。

在这里插入图片描述

这个分类则是从上到下考虑的。分成决策、规划和控制。

motion planning的分类在很多论文中也是非常模糊,好多作者的分类都是错的。所以我的分类有问题的话欢迎指正,谢谢。

小杨的暑假第一篇csdn…
2019.7.11

<think>嗯,用户遇到了几个关于MoveIt2和ROS2的错误和警告信息。我需要仔细分析每个错误的原因,并给出解决方案。首先,用户提到的第一个错误是`[rviz2-1]`关于调用`get_planning_scene`服务失败的问题。这通常是因为`move_group`节点没有启动或者没有正确配置Planning Scene Monitor。我需要确认用户是否已经正确启动了`move_group`节点,并检查启动文件中的配置,确保提供了规划场景服务。 接下来是`[robot_state_publisher-3]`的警告,提示时间倒退,重新发布关节变换。这可能是由于系统时钟不同步或者节点重启后时间戳处理不当导致的。需要建议用户检查系统时间同步,或者忽略这个警告,如果只是偶尔出现的话。 第三个错误来自`[move_group-5]`,初始化`lerp`规划管道失败,特别是加载`lerp_interface/LERPPlanner`时出现类型不存在的问题。查看已声明的插件类型,发现可用的有CHOMP、OMPL和Pilz的插件。这说明用户可能在配置文件中错误地指定了不存在的规划器插件,或者没有正确安装对应的插件包。需要让用户检查`moveit_config`中的规划管道配置,确认是否拼写错误,或者是否需要安装额外的插件。 用户可能需要逐步检查每个错误的原因,比如确认`move_group`是否正确启动,检查系统时间同步,以及验证规划管道的配置是否正确。另外,可能需要指导用户如何检查ROS2的服务列表,查看`get_planning_scene`是否可用,或者建议他们查阅MoveIt2文档中关于插件安装和配置的部分。需要确保回答清晰,分步骤解决问题,避免技术术语过多,但又要准确。</think>以下是针对你提供的ROS 2/MoveIt相关错误信息的逐步解析与解决方案: --- ### 一、错误类型分类与原因分析 1. **`[rviz2-1]` 服务调用失败** - **关键信息**:`Failed to call service get_planning_scene` - **原因**: - `move_group`节点未启动 - `PlanningSceneMonitor`未正确初始化服务端(未调用`psm.providePlanningSceneService()`) 2. **`[robot_state_publisher-3]` 时间戳异常** - **关键信息**:`Moved backwards in time` - **原因**: - 系统时钟不同步 - 节点重启后时间戳跳跃(如`use_sim_time`参数配置冲突) 3. **`[move_group-5]` 规划插件加载失败** - **关键信息**:`Failed to initialize planning pipeline 'lerp'` - **原因**: - `lerp_interface/LERPPlanner`插件未安装 - 插件名称拼写错误或配置文件错误 - MoveIt2未编译包含该插件的功能包 --- ### 二、分步解决方案 #### 1. 解决 `get_planning_scene` 服务调用失败 - **步骤 1**:检查是否已启动 `move_group` 节点 ```bash ros2 node list | grep move_group ``` - 若无输出,需在启动文件中添加 `move_group` 节点 - 示例配置(针对MoveIt2): ```xml <node name="move_group" pkg="moveit_ros_move_group" exec="move_group" output="screen"/> ``` - **步骤 2**:确认服务端初始化 - 在代码中显式调用 `psm.providePlanningSceneService()`(如果使用自定义节点) #### 2. 处理时间戳回退警告 - **步骤 1**:检查系统时钟同步 ```bash timedatectl status ``` - 若未启用NTP同步,运行: ```bash sudo timedatectl set-ntp true ``` - **步骤 2**:检查 `use_sim_time` 参数 - 确保所有节点对 `use_sim_time` 的值一致(`true`用于仿真,`false`用于真实硬件) #### 3. 修复 `lerp` 规划插件加载问题 - **步骤 1**:验证插件是否可用 - 查看已注册的插件列表: ```bash ros2 plugin list | grep PlannerManager ``` - 若输出中无`lerp_interface`,说明插件未安装 - **步骤 2**:安装或编译插件 - 安装官方插件包(如存在): ```bash sudo apt install ros-<distro>-lerp-motion-planner ``` - 或从源码编译(需确认仓库支持): ```bash git clone https://github.com/ros-planning/moveit2_lerp_planner colcon build --packages-select moveit2_lerp_planner ``` - **步骤 3**:修改配置文件 - 检查 `moveit_config` 中的 `planning_pipelines.yaml`: ```yaml planning_pipelines: lerp: plugin: lerp_interface/LERPPlanner # 确保名称与插件注册一致 ``` --- ### 三、附加建议 1. **调试工具** - 使用 `ros2 service list` 检查 `get_planning_scene` 是否存在 - 通过 `ros2 param list` 验证节点参数配置 2. **文档参考** - [MoveIt2官方文档](https://moveit.picknik.ai/humble/) - [ROS2插件开发指南](https://docs.ros.org/en/humble/Concepts/About-ROS-2-Plugins.html) --- 若问题仍未解决,建议提供完整的启动文件和系统环境信息(ROS 2版本、MoveIt2版本、操作系统版本)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值