Skip to content

该项目为 ARM 六自由度机械臂提供了完整的ROS2控制系统,包括硬件接口、Gazebo仿真和MoveIt2配置。

License

Notifications You must be signed in to change notification settings

BBBig-z/ARM-ROS2-Moveit2-Gazebo-Hardware-Control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Panther Arm Control

这个功能包为 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
            └── ...

🚀 安装

1️⃣ 克隆仓库到你的ROS2工作空间:

cd ~/your_ros2_ws/src
# 已经在 panther_ws/src/panther_arm_control 目录中

2️⃣ 安装依赖:

cd ~/your_ros2_ws
rosdep install --from-paths src --ignore-src -r -y

3️⃣ 构建工作空间:

cd ~/your_ros2_ws
colcon build --packages-select panther_description panther_moveit_config panther_controller panther_hardware_interface
source install/setup.bash

🎮 使用方法

🔹 MoveIt! 演示

运行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

🔹 DM电机控制器

运行实际硬件控制:

ros2 run panther_controller dm_controller

🔹 零重力模式

启用重力补偿模式(可手动拖动机械臂):

ros2 run panther_controller zero_gravity_mode

🔹 示教模式

录制和重放机械臂动作:

ros2 run panther_controller teach_mode

🔹 在RViz中显示

仅显示机器人模型:

ros2 launch panther_description display.launch.py

📝 配置文件说明

关节限制 (joint_limits.yaml)

定义每个关节的位置、速度和加速度限制

运动学 (kinematics.yaml)

配置运动学求解器参数

ROS2控制器 (ros2_controllers.yaml)

定义关节轨迹控制器和夹爪控制器

MoveIt控制器 (moveit_controllers.yaml)

配置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)

📚 参考资料

About

该项目为 ARM 六自由度机械臂提供了完整的ROS2控制系统,包括硬件接口、Gazebo仿真和MoveIt2配置。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published