MoveIt 控制器配置与启动流程

🧩 1. MoveIt 本质是什么?

  • MoveIt 不是一个单独的 ROS 节点,而是一个完整的运动规划框架(motion planning framework)

  • 它由多个组件/节点/插件构成,如:move_group 节点、OMPL 规划器、planning_scene_monitorRViz 插件等。


⚙️ 2. 控制 MoveIt 的常见方式有:

  • 使用 RViz 图形界面(拖拽、设置目标)

  • 使用 MoveIt C++ / Python API(如 move_group_interface

  • 发布 ROS Action 或 Topic 控制(如 /execute_trajectory

  • 使用高级接口(如 MoveIt Task Constructor、MoveIt Servo)


📂 3. MoveIt 控制器配置相关文件:

3.1 controllers.yaml
  • 定义 MoveIt 所能使用的控制器列表:控制器名称、类型(如 FollowJointTrajectory)、所控制的 joints。

3.2 trajectory_execution.launch.xml
  • 主要功能:加载控制器相关参数与插件。

  • 它通过 <include> 包含实际控制器加载文件,例如:
    ur5_moveit_controller_manager.launch.xml

3.3 ur5_moveit_controller_manager.launch.xml
  • 负责:

    • 加载 controllers.yaml

    • 指定使用的控制器管理插件(如 moveit_simple_controller_manager


🧬 4. 控制器的匹配机制

  • controllers.yaml 中的控制器名必须与 SRDF 中的 关节组(group)名称一致。

  • 控制器类型通常是 FollowJointTrajectory(标准 ROS 控制接口)。

  • MoveIt 在执行轨迹前,会将规划结果发送到配置的控制器的对应 Action Server(如 /arm_controller/follow_joint_trajectory)。


🧠 5. SRDF 的作用(Semantic Robot Description Format)

  • 描述机器人的运动学语义,如:

    • 哪些 joint 组成一个 arm

    • 哪些 link 是 end-effector

    • 哪些 joint 是 passive

  • SRDF 和 URDF 搭配使用,构成机器人的完整语义模型


🚀 6. move_group.launch 启动分析

  • 启动了 MoveIt 主节点 move_group

  • 加载了规划管道 ompl

  • 启用了 trajectory_execution,并通过层层 include 最终加载了 controllers.yaml

  • 成功启用控制器管理插件 MoveItSimpleControllerManager


✅ 7. 你的配置验证结论

你通过如下结构正确配置并加载了控制器:

plaintext

move_group.launch
  └── trajectory_execution.launch.xml
        └── ur5_moveit_controller_manager.launch.xml
              ├── ✅ 加载 controllers.yaml
              └── ✅ 设置控制器插件

 设置控制器插件

✔️ 完整地完成了 MoveIt 控制器配置加载的标准流程
✔️ 可以通过 rosparam get /move_group/controller_list 验证是否加载成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值