这个功能包为 AMR-T 六自由度机械臂提供了完整的ROS2控制系统,包括硬件接口、URDF模型和MoveIt配置。
-
DM电机硬件接口
- 支持达妙DM4310和DM4340电机
- 实时关节状态反馈
- 多种控制模式(位置-速度模式、MIT模式)
-
MoveIt 2 集成
- 支持在RViz中进行末端执行器控制
- 包含GUI用于设置目标位姿(XYZ & RPY)
- 使用moveit_configs_utils进行现代化配置
-
仿真与实物兼容
- 可在RViz仿真和实际硬件上运行
- 发布实际关节状态反馈到ROS话题
-
机器人描述与配置
- 使用URDF/XACRO进行机器人建模
- 包含SRDF用于MoveIt 2配置
- 定义了关节限制、碰撞模型和运动学
-
多种控制模式
- 零重力模式(重力补偿)
- 示教模式(录制和重放)
- 笛卡尔空间规划
panther_arm_control/
├── panther_controller/ # 控制器节点(C++)
│ ├── src/
│ │ ├── dm_controller.cpp # DM电机控制器
│ │ ├── ee_goal_control.cpp # 末端执行器目标控制
│ │ ├── zero_gravity_mode.cpp # 零重力模式
│ │ └── teach_mode.cpp # 示教模式
│ ├── scripts/
│ │ └── gui_goal_pose.py # 位姿设置GUI
│ └── launch/
│ ├── ee_goal_control.launch.py
│ └── panther_control.launch.py
│
├── panther_hardware_interface/ # 硬件接口(Python)
│ └── panther_hardware_interface/
│ ├── dm_hardware_interface.py
│ ├── hardware_interface.py
│ └── joint_pos_control.py
│
└── config_panther_arm/ # 配置文件
├── panther_description/ # 机器人描述
│ ├── urdf/ # URDF文件
│ ├── meshes/ # 3D模型(STL)
│ ├── config/ # 配置文件
│ └── launch/ # 启动文件
│
└── panther_moveit_config/ # MoveIt配置
├── config/ # MoveIt配置文件
│ ├── panther_description.srdf
│ ├── joint_limits.yaml
│ ├── kinematics.yaml
│ ├── ros2_controllers.yaml
│ ├── moveit_controllers.yaml
│ └── *.urdf.xacro
└── launch/ # MoveIt启动文件
├── panther_moveit.launch.py
├── demo.launch.py
└── ...
cd ~/your_ros2_ws/src
# 已经在 panther_ws/src/panther_arm_control 目录中cd ~/your_ros2_ws
rosdep install --from-paths src --ignore-src -r -ycd ~/your_ros2_ws
colcon build --packages-select panther_description panther_moveit_config panther_controller panther_hardware_interface
source install/setup.bash运行MoveIt 2演示进行末端执行器拖拽控制:
ros2 launch panther_moveit_config panther_moveit.launch.py或使用简化的demo启动:
ros2 launch panther_moveit_config demo.launch.py使用Qt5 GUI控制机械臂位姿:
ros2 launch panther_controller ee_goal_control.launch.py运行实际硬件控制:
ros2 run panther_controller dm_controller启用重力补偿模式(可手动拖动机械臂):
ros2 run panther_controller zero_gravity_mode录制和重放机械臂动作:
ros2 run panther_controller teach_mode仅显示机器人模型:
ros2 launch panther_description display.launch.py定义每个关节的位置、速度和加速度限制
配置运动学求解器参数
定义关节轨迹控制器和夹爪控制器
配置MoveIt使用的控制器
- 达妙DM4310电机 x 2
- 达妙DM4340电机 x 4
- 串口通信 (USB转CAN或串口适配器)
- 推荐:Ubuntu 22.04 + ROS2 Humble
- Ubuntu 22.04
- ROS2 Humble
- MoveIt 2
- C++17
- Python 3.10+
- Qt5 (用于GUI)