datetime:2025/04/25 16:39
author:nzb

move_group 节点

下图展示了MoveIt核心节点move_group的系统架构。该节点作为集成器,将所有组件整合在一起,为用户提供一组ROS ActionService接口。

用户接口(User Interface)

用户可通过两种方式访问move_group的功能:

  1. C++接口:使用move_group_interface包提供的C++接口。
  2. 图形界面:通过Rviz的Motion Planning插件(ROS可视化工具)。

配置(Configuration)

move_group作为ROS节点,通过ROS参数服务器获取三类信息:

  1. URDF:从robot_description参数加载机器人URDF模型。
  2. SRDF:从robot_description_semantic参数加载语义描述文件(SRDF),该文件通常由MoveIt Setup Assistant生成。
  3. MoveIt配置:加载关节限位、运动学、运动规划等配置文件(由MoveIt Setup Assistant自动生成,存储于机器人配置包的config目录)。

机器人接口(Robot Interface)

move_group通过ROS话题和Action与机器人交互:

  • 状态获取:监听/joint_states话题获取关节位置(支持多发布者的部分状态信息,如机械臂与移动底盘分开发布)。
  • 坐标变换:通过ROS TF库监听全局位姿信息(如导航栈发布的mapbase_link变换)。
  • 控制接口:通过FollowJointTrajectoryAction与机器人控制器通信(需机器人端部署Action服务端)。

  • move_group不发布关节状态或TF信息,需依赖robot_state_publisher节点。
  • 控制器接口需用户自行实现Action服务端。

规划场景(Planning Scene)

move_group通过Planning Scene Monitor维护规划场景,包含:

  • 环境模型
  • 机器人当前状态(包括刚性附着物体)。
    详细架构见后续“规划场景”章节。

可扩展能力(Extensible Capabilities)

move_group采用插件化设计,支持以下功能的灵活扩展:

  • 抓取放置(Pick and Place)
  • 运动学求解(Kinematics)
  • 运动规划(Motion Planning)

插件通过ROS参数和pluginlib库配置,普通用户无需手动调整(MoveIt Setup Assistant生成的启动文件已自动配置)。

results matching ""

    No results matching ""