Skip to content

Synria-Robotics/Alicia-D-ROS2

Repository files navigation

Alicia-D ROS 2

English Version | 中文版 | 官方淘宝店 | Alicia-D 产品手册(中文)

Alicia-D ROS2 是一个用于控制【灵动 Alicia-D】系列六轴机械臂(带夹爪)的 ROS 工具包。它基于 ROS 2 Humble 构建,提供通过串口通信控制机械臂运动、操作夹爪、读取姿态与状态数据等功能。

License ROS2


✨ 主要特性

  • ros2_control 集成:基于标准的 ros2_control 硬件接口,支持与 MoveIt2 无缝集成。
  • MoveIt2 支持:完整的 MoveIt2 运动规划与执行功能。
  • 关节控制:支持设置与读取六个关节的角度,提供平滑轨迹执行。
  • 夹爪控制:支持精确位置控制,适配 50mm 和 100mm 两种夹爪类型。
  • 实时状态反馈:实时获取关节角、夹爪位置与机器人状态。
  • 自动固件检测:自动检测固件版本或手动指定(支持 V5 和 V6 固件)。
  • 串口通信:自动搜索串口或手动指定,支持高波特率通信。
  • 零位校准:将当前位置设置为新的零点。
  • 扭矩开关:开启或关闭关节电机扭矩,实现自由拖动示教。

项目结构

alicia_d_driver/
├── include/alicia_d_driver/
│   ├── alicia_d_hardware_interface.hpp    # 硬件接口头文件
│   └── alicia_d_driver_node.hpp            # 独立驱动节点
├── src/
│   ├── alicia_d_hardware_interface.cpp     # 硬件接口实现
│   ├── alicia_d_driver_node.cpp            # 独立驱动
│   └── serial_communicator.cpp             # 串口通信
├── launch/
│   └── alicia_d_driver.launch.py           # 独立驱动启动
├── alicia_d_driver.xml                     # 插件描述
└── CMakeLists.txt

alicia_d_moveit/
├── config/
│   ├── alicia_d_descriptions.ros2_control.xacro  # 硬件接口配置
│   ├── ros2_controllers.yaml               # 控制器配置
│   ├── moveit_controllers.yaml             # MoveIt 控制器映射
│   └── ...                                 # 其他 MoveIt 配置
├── launch/
│   ├── real_robot.launch.py                # 真实机械臂启动
│   ├── demo.launch.py                      # 仿真启动
│   └── ...                                 # 其他启动文件
└── package.xml

快速开始

1. 设置串口权限(一次性)

sudo usermod -a -G dialout $USER

然后需要完全注销并重新登录!

或临时设置:

sudo chmod 666 /dev/ttyCH341USB0

2. 获取源代码并编译

mkdir -p ~/alicia_ws/src
cd ~/alicia_ws
git clone https://github.com/Synria-Robotics/Alicia-D-ROS2.git -b v6.0.0 ./src
rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select alicia_d_driver alicia_d_moveit
source install/setup.bash

3. 启动真实机械臂与 MoveIt

ros2 launch alicia_d_moveit real_robot.launch.py

使用自定义参数:

ros2 launch alicia_d_moveit real_robot.launch.py \
    robot_version:=v5_6 \
    gripper_type:=100mm \
    port:=/dev/ttyCH341USB0 \
    baud_rate:=1000000 \
    firmware_version:=auto

使用方法

Launch 文件参数

参数 默认值 说明
robot_version v5_6 机械臂版本 (v5_5v5_6)
gripper_type 50mm 夹爪行程 (50mm100mm)
port /dev/ttyUSB0 串口设备
baud_rate 1000000 串口波特率
firmware_version auto 固件版本 (5.0.0, 6.0.0, 或 auto 自动检测)

启动选项

选项 1:真实机械臂与 MoveIt(推荐)

ros2 launch alicia_d_moveit real_robot.launch.py \
    robot_version:=v5_6 \
    gripper_type:=50mm \
    port:=/dev/ttyCH341USB0 \
    baud_rate:=1000000 \
    firmware_version:=auto

选项 2:仅仿真(无硬件)

ros2 launch alicia_d_moveit demo.launch.py \
    robot_version:=v5_6 \
    gripper_type:=50mm

选项 3:独立驱动(无 MoveIt)

ros2 launch alicia_d_driver alicia_d_driver.launch.py \
    port:=/dev/ttyCH343USB0 \
    gripper_type:=100mm \
    firmware_version:=6.0.0

在 RViz 中使用 MoveIt

  1. 设置目标状态:拖动交互式标记点
  2. 规划运动:点击 "Plan" 按钮
  3. 执行运动:点击 "Execute" 或 "Plan & Execute"

特殊命令

启动独立驱动:

ros2 launch alicia_d_driver alicia_d_driver.launch.py port:=/dev/ttyUSB0 gripper_type:=100mm firmware_version:=6.0.0

使能手引导模式(零力矩)

ros2 topic pub --once /demonstration std_msgs/msg/Bool "{data: true}"

禁用手引导(恢复全力矩)

ros2 topic pub --once /demonstration std_msgs/msg/Bool "{data: false}"

零位校准

步骤 1:禁用力矩

ros2 topic pub --once /demonstration std_msgs/msg/Bool "{data: true}"

步骤 2:将机械臂放置到期望的姿势

步骤 3:执行校准

ros2 topic pub --once /zero_calibrate std_msgs/msg/Bool "{data: true}"

故障排除

连接问题

问题:无法连接到串口

解决方案

  1. 检查线缆连接
  2. 验证端口名称:ls /dev/tty*
  3. 检查权限:ls -l /dev/ttyCH341USB0
  4. 将用户添加到 dialout 组:sudo usermod -a -G dialout $USER

控制器故障

问题:控制器启动失败

解决方案

  1. 检查硬件接口:ros2 control list_hardware_interfaces
  2. 检查控制器:ros2 control list_controllers
  3. 验证机械臂已连接并通电

运动执行问题

问题:规划成功但执行失败

解决方案

  1. 验证固件版本是否正确检测(查看日志)
  2. 确保夹爪类型与硬件匹配(50mm vs 100mm)
  3. 使用 debug_mode:=true 监控串口通信
  4. 尝试显式指定固件版本:firmware_version:=5.0.0

文档

详细文档请参阅:

系统架构

MoveIt → Joint Trajectory Controllers → ros2_control → Hardware Interface → Serial → Robot
                                                ↓
                                        Joint State Publisher
                                                ↓
                                           /joint_states

安全注意事项

⚠️ 重要的安全指南:

  1. 始终准备好紧急停止
  2. 在执行运动前清理工作区域
  3. 从慢速开始
  4. 首先在仿真中测试
  5. 在操作过程中监控机械臂

支持

如有问题或疑问:

  1. 查看故障排除部分
  2. 查看 ROS 日志:~/.ros/log/
  3. 启用调试模式:debug_mode:=true
  4. 检查硬件连接和固件版本

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published