ROS2:
rm_bringup功能包 rm_bringup功能包为实现多个launch文件同时运行所设计的功能包,使用该功能包可用一条命令实现多个节点结合的复杂功能的启动。
这里将从以下三个方面整体介绍该功能包:
- 1.功能包使用:了解该功能包的使用。
- 2.功能包架构说明:熟悉功能包中的文件构成及作用。
- 3.功能包话题说明:熟悉功能包相关的话题,方便开发和使用。
代码链接:https://github.com/RealManRobot/ros2_rm_robot/tree/humble/rm_bringup
1. rm_bringup功能包使用
1.1 统一启动入口
支持统一启动文件,可通过 mode 切换真机或Gazebo环境:
ros2 launch rm_bringup rm_bringup.launch.py arm_type:=65-6fb mode:=real
ros2 launch rm_bringup rm_bringup.launch.py arm_type:=65-6fb mode:=gazebo如何选 arm_type
arm_type 同时指定机械臂型号和末端结构。下表中的模型名也适用于Gazebo和单独启动的模型显示包。
| 系列 | 三代真机、模型显示和Gazebo | 四代控制器软件1.0.6及以上真机推荐值 | GLB/DAE模型 |
|---|---|---|---|
| RML63 | 63、63-6f、63-6fb | 63、63-6f | 无 |
| RML63 III | 63_iii、63_iii-6fb | 63_iii、63_iii-6f | 无 |
| RM65 | 65、65-6f、65-6fb | 65、65-6f | 有 |
| RM75 | 75、75-6f、75-6fb | 75、75-6f | 有 |
| ECO62 | eco62 | eco62 | 有 |
| ECO63 | eco63、eco63-6fb | eco63、eco63-6f | 有 |
| ECO65 | eco65、eco65-6f、eco65-6fb | eco65、eco65-6f | 有 |
| GEN72 | gen72 | gen72 | 无 |
| GEN72 II | gen72_ii | gen72_ii | 无 |
| RX75双臂 | rx75-6fb、rx75-6fb-v | rx75-6f、rx75-6f-v | 有 |
统一入口参数
| 参数 | 默认值 | 说明 |
|---|---|---|
arm_type | 必填 | 见上表。整机启动 RX75 时须带末端后缀;ECO62 只接受标准模型。 |
mode/model | real/auto | mode 可选 real、gazebo;model 可选 auto、stl、glb |
use_moveit/use_rviz | 均为true | 只关规划窗口用 use_rviz:=false。关闭 MoveIt 时同时传 use_moveit:=false use_rviz:=false |
allow_trajectory_execution | true | 设置为 false 时,保留 MoveIt 规划,关闭其轨迹执行 |
driver_config | auto | 单臂真机驱动YAML配置路径。 |
left_driver_config/right_driver_config | 均为auto | RX75 左右驱动 YAML 路径,分别覆盖 |
follow | auto | 真机透传跟随模式;auto默认为低跟随,也可显式设置为 true 或 false。 |
joint_states_topic | auto | 按该入口只接受 auto,按模式与机型选择关节状态话题 |
start_gazebo | true | 在 Gazebo 模式启动仿真进程。 |
1.2 moveit2控制真实机械臂
首先配置好环境完成连接后我们可以通过以下命令直接启动节点,运行rm_bringup功能包中的launch.py文件。
说明
在实际使用时需要将命令中的<arm_type>更换为实际的机械臂型号。
启动标准版本机械臂的命令为(当前支持65、63、63_III、75、eco62、eco63、eco65、rx75):
ros2 launch rm_bringup rm_<arm_type>_bringup.launch.py启动六维力版本机械臂的命令为(当前支持 63、65、75、eco65):
ros2 launch rm_bringup rm_<arm_type>_6f_bringup.launch.py启动一体化六维力版本机械臂的命令为(当前支持 63、63_III、65、75、eco63、eco65、rx75):
ros2 launch rm_bringup rm_<arm_type>_6fb_bringup.launch.py启动带视觉方案的六维力版本机械臂的命令为(当前仅支持rx75):
ros2 launch rm_bringup rm_<arm_type>_6fb_v_bringup.launch.py
例如65标准版机械臂的启动命令如下:
ros2 launch rm_bringup rm_65_bringup.launch.py节点启动成功后,将弹出以下画面。 
实际该launch文件启动的为moveit2控制真实机械臂的功能下面就可以使用控制球规划控制机械臂运动,详细可查看rm_moveit2_config详解相关内容。
1.3 控制gazebo仿真机械臂
我们可以通过以下命令运行rm_bringup功能包中的launch.py文件,直接启动其中的gzaebo仿真节点。
说明
在实际使用时需要将命令中的<arm_type>更换为实际的机械臂型号。
启动标准版本机械臂的命令为(当前支持65、63、63_III、75、eco62、eco63、eco65、rx75):
ros2 launch rm_bringup rm_<arm_type>_gazebo.launch.py启动六维力版本机械臂的命令为(当前支持 63、65、75、eco65):
ros2 launch rm_bringup rm_<arm_type>_6f_gazebo.launch.py启动一体化六维力版本机械臂的命令为(当前支持 63、63_III、65、75、eco63、eco65、rx75):
ros2 launch rm_bringup rm_<arm_type>_6fb_gazebo.launch.py启动带视觉方案的六维力版本机械臂的命令为(当前仅支持 rx75):
ros2 launch rm_description rm_<arm_type>_6fb_v_gazebo.launch.py
例如65标准版机械臂的启动命令如下:
ros2 launch rm_bringup rm_65_gazebo.launch.py节点启动成功后,将弹出以下画面。 
之后我们使用如下指令启动moveit2控制gazebo中的仿真机械臂。 
2. rm_bringup功能包架构文件总览
当前rm_bringup功能包的文件构成如下。
├── CMakeLists.txt #编译规则文件
├── doc #辅助文档、图片存放文件夹
│ ├── rm_bringup1.png #图片 1
│ ├── rm_bringup2.png #图片 2
│ └── rm_bringup3.png #图片 3
├── launch #启动文件
│ ├── rm_63_6f_bringup.launch.py #63 臂六维力 moveit2 启动文件
│ ├── rm_63_6f_gazebo.launch.py #63 臂六维力 gazebo 启动文件
│ ├── rm_63_6fb_bringup.launch.py #63 臂一体化六维力 moveit2 启动文件
│ ├── rm_63_6fb_gazebo.launch.py #63 臂一体化六维力 gazebo 启动文件
│ ├── rm_63_bringup.launch.py #63 臂 moveit2 启动文件
│ ├── rm_63_gazebo.launch.py #63 臂 gazebo 启动文件
│ ├── rm_63_III_bringup.launch.py #63_III 臂 moveit2 启动文件
│ ├── rm_63_III_gazebo.launch.py #63_III 臂 gazebo 启动文件
│ ├── rm_63_III_6fb_bringup.launch.py #63_III 臂六维力 moveit2 启动文件
│ ├── rm_63_III_6fb_gazebo.launch.py #63_III 臂六维力 gazebo 启动文件
│ ├── rm_65_6f_bringup.launch.py #65 臂六维力 moveit2 启动文件
│ ├── rm_65_6f_gazebo.launch.py #65 臂六维力 gazebo 启动文件
│ ├── rm_65_6fb_bringup.launch.py #65 臂一体化六维力 moveit2 启动文件
│ ├── rm_65_6fb_gazebo.launch.py #65 臂一体化六维力 gazebo 启动文件
│ ├── rm_65_bringup.launch.py #65 臂 moveit2 启动文件
│ ├── rm_65_gazebo.launch.py #65 臂 gazebo 启动文件
│ ├── rm_75_6f_bringup.launch.py #75 臂六维力 moveit2 启动文件
│ ├── rm_75_6f_gazebo.launch.py #75 臂六维力 gazebo 启动文件
│ ├── rm_75_6fb_bringup.launch.py #75 臂一体化六维力 moveit2 启动文件
│ ├── rm_75_6fb_gazebo.launch.py #75 臂一体化六维力 gazebo 启动文件
│ ├── rm_75_bringup.launch.py #75 臂 moveit2 启动文件
│ ├── rm_75_gazebo.launch.py #75 臂 gazebo 启动文件
│ ├── rm_eco62_bringup.launch.py #eco62 臂 moveit2 启动文件
│ ├── rm_eco62_gazebo.launch.py #eco62 臂 gazebo 启动文件
│ ├── rm_eco63_6fb_bringup.launch.py #eco63 臂一体化六维力 moveit2 启动文件
│ ├── rm_eco63_6fb_gazebo.launch.py #eco63 臂一体化六维力 gazebo 启动文件
│ ├── rm_eco63_bringup.launch.py #eco63 臂 moveit2 启动文件
│ ├── rm_eco63_gazebo.launch.py #eco63 臂 gazebo 启动文件
│ ├── rm_eco65_6f_bringup.launch.py #eco65 臂六维力 moveit2 启动文件
│ ├── rm_eco65_6f_gazebo.launch.py #eco65 臂六维力 gazebo 启动文件
│ ├── rm_eco65_6fb_bringup.launch.py #eco65 臂一体化六维力 moveit2 启动文件
│ ├── rm_eco65_6fb_gazebo.launch.py #eco65 臂一体化六维力 gazebo 启动文件
│ ├── rm_eco65_bringup.launch.py #eco65 臂 moveit2 启动文件
│ ├── rm_eco65_gazebo.launch.py #eco65 臂 gazebo 启动文件
│ ├── rm_gen72_bringup.launch.py #gen72 臂 moveit2 启动文件
│ ├── rm_gen72_gazebo.launch.py #gen72 臂 gazebo 启动文件
│ ├── rm_gen72_II_bringup.launch.py #gen72_II 臂 moveit2 启动文件
│ ├── rm_gen72_II_gazebo.launch.py #gen72_II 臂 gazebo 启动文件
│ ├── rm_rx75_6fb_bringup.launch.py #RX75-6FB 双臂 moveit2 启动文件
│ ├── rm_rx75_6fb_gazebo.launch.py #RX75-6FB 双臂 gazebo 启动文件
│ ├── rm_rx75_6fb_v_bringup.launch.py #RX75-6FB-V 双臂 moveit2 启动文件
│ └── rm_rx75_6fb_v_gazebo.launch.py #RX75-6FB-V 双臂 gazebo 启动文件
├── package.xml #依赖说明文件
├── README_CN.md #中文说明文档
└── README.md #英文说明文档3. rm_bringup话题说明
该功能包当前并没有本身的话题,主要为调用其他功能包的话题实现。

