MARM(Mobile Arm / Manipulator)机械臂 / Robotic Arm with Vision Grasping

阿加犀智能科技RoboHub开源项目ROS 2OpenCVMoveIt 2QCS6490

开发环境

Ubuntu 22.04 LTS + ROS 2 Humble;MoveIt 2、OpenCV & cv_bridge、tf2_ros、easy_handeye2

产品参数 · 内容说明

基于 ROS 2 Humble 与机器视觉(OpenCV)的桌面级六轴机械臂控制系统:集成底层运动控制、视觉识别(ArUco / 颜色)与 MoveIt 2 运动规划,形成完整的「感知-规划-执行」闭环。

产品参数 · 基本信息

项目内容
产品名称MARM(Mobile Arm / Manipulator)机械臂 / Robotic Arm with Vision Grasping
产品定位开源、模块化、可扩展的桌面级六轴机械臂(视觉抓取与智能分拣)
开发团队APLUX 阿加犀(GitHub:APLUX-Official)
分类Motors & Robotics(Arduino 分类)
开源协议Apache License 2.0
项目案例页https://projecthub.arduino.cc/aplux/robotic-arm-with-vision-grasping-a63d5f

产品参数 · 核心规格

类别参数
结构A1 六自由度桌面级机械臂(3D 打印外壳 + 金属结构件)
舵机6 × MG996R(Towerpro,金属齿,10kg·cm 级),驱动各关节及末端夹爪
控制板舵机控制板,串口协议 #<id>P<pwm>T<time>!(PWM 500–2500,角度 ±135°)
核心控制器Qualcomm Dragonwing™ QCS6490(亦可用 PC / 树莓派上位机)
视觉传感器RGB 单目相机(USB),支持相机内参标定与手眼标定
操作系统Ubuntu 22.04 LTS + ROS 2 Humble
关键依赖MoveIt 2、OpenCV & cv_bridge、tf2_ros、easy_handeye2

产品参数 · 软件架构(ROS 2 功能包)

功能包说明
A1_description / A1_moveit_config机械臂 URDF / SRDF 模型与 MoveIt 2 运动学、控制器配置
arm_controllerPython 底层驱动:关节角度 → 串口协议,支持舵机零点偏差补偿(servo_calibration.yaml)
capture_imageC++ 视觉感知:RGB 颜色识别(rgb_detect_pose_node)与 ArUco 识别(aruco_object_pose_node)
easy_handeye2 / easy_handeye2_msgs手眼标定工具包(支持 Eye-in-Hand / Eye-on-Base,多种算法)
custom_interface自定义 ROS 2 服务与动作接口(如 SetArmAction.srv)
moveit_controller_server运动控制与业务逻辑:MoveIt 服务封装 + 自动化抓取状态机(marm_demo)

产品参数 · 核心功能

  • 视觉抓取与智能分拣:GPU/NPU 深度学习物体检测 + CPU 快速逆运动学(IK)计算
  • 手眼标定:眼在手上(Eye-in-Hand)与眼在手外(Eye-on-Base)两种模式;支持 Tsai-Lenz(默认)、Park、Horaud、Andreff、Daniilidis 五种算法
  • 视觉识别:ArUco 码检测、RGB 颜色识别(红/绿/蓝圆形物体,HSV 阈值可调)
  • 运动规划:基于 MoveIt 2 的避障轨迹规划与执行
  • 自动化流程:状态机控制(初始检测 → 抓取复检 → 放置复位 → 循环),支持空抓自动重试
  • 底层控制:/joint_states 订阅执行、夹爪控制(/gripper_control)

产品参数 · 标定流程(重要)

建议按顺序完成:机械臂零点标定 → 相机内参标定 → 手眼标定,每一步都影响后续精度。

  • 机械臂零点标定:上电观察机械臂是否垂直,如有偏差修改 servo_offsets(servo_0~servo_5)后重新编译
  • 相机内参标定:ros2 run camera_calibration cameracalibrator --size 10x7 --square 0.021,将生成的 ost.yaml 放入 capture_image 包重新编译(更换相机必须重新标定)
  • 手眼标定:easy_handeye2,采集 10–15 组样本后求解(保存为 YAML)

产品参数 · 快速上手(启动顺序)

# 1. 编译工作空间
colcon build && source install/setup.bash

# 2. 底层驱动(订阅 /joint_states → 串口驱动舵机)
ros2 run arm_controller arm_controller
# 夹爪测试:ros2 topic pub /gripper_control std_msgs/msg/Bool "data: true" --once

# 3. 相机与视觉节点(ArUco 或颜色识别二选一)
ros2 launch capture_image capture_image.launch.py
ros2 run capture_image aruco_object_pose_node   # 或 rgb_detect_pose_node

# 4. MoveIt 2 运动规划
ros2 launch A1_moveit_config demo.launch.py

# 5. 自动化抓取流程(状态机)
ros2 run moveit_controller_server marm_demo

产品参数 · 说明

本页参数依据官方 GitHub README 与 Arduino Project Hub 项目页整理,如有更新以官方发布为准。

BOM清单 · 内容说明

基于 ROS 2 与机器视觉的桌面级六轴机械臂(视觉抓取 / 智能分拣)可采购硬件 / 配件清单。 > 整理依据:官方 GitHub 仓库 README 硬件选型、Arduino Project Hub 项目页器件清单(含官方购买链接)。

BOM清单 · 一、可购买硬件 / 配件

备注:舵机数量 6 路(对应 6 自由度,含末端夹爪);标定板可自行打印(棋盘格 10×7、方格 21mm,见教程相机标定参数)。

序号物料名称型号 / 规格数量用途购买链接
1机械臂本体A1 六自由度桌面级机械臂(3D 打印外壳 + 金属结构件)1执行机构模型目录:https://github.com/APLUX-Official/marm_A1/tree/master/models
2舵机MG996R 舵机(Towerpro,金属齿,10kg·cm 级)6各关节及末端夹爪驱动HobbyKing:https://hobbyking.com/en_us/towerpro-mg996r-10kg-servo-10kg-0-20sec-55g.html
3舵机控制板总线 / PWM 舵机控制板(USB 转串口通信)1接收串口协议并驱动 6 路舵机—
4核心控制器(上位机)Qualcomm Dragonwing™ QCS6490(亦可用 PC / 树莓派)1运行 ROS 2 / MoveIt 2 / 视觉算法淘宝购买:https://item.taobao.com/item.htm?id=949025179261
5视觉传感器RGB 单目相机(USB 摄像头)1目标检测与位姿估计淘宝购买:https://detail.tmall.com/item.htm?id=775110864301
6标定板ArUco 二维码板 或 棋盘格标定板1手眼标定 / 相机内参标定—

BOM清单 · 二、官方器件清单(Arduino Project Hub)

类别名称数量链接
硬件Qualcomm Dragonwing™ QCS64901淘宝购买:https://item.taobao.com/item.htm?id=949025179261
硬件MG996R 舵机(Towerpro)1HobbyKing:https://hobbyking.com/en_us/towerpro-mg996r-10kg-servo-10kg-0-20sec-55g.html
工具螺丝刀套装1—
软件ROS 2 Humble—官方文档:https://docs.ros.org/en/humble/
软件Ubuntu 22.04——
软件OpenCV(cv2)——

开源协议与链接 · 一、开源协议

备注:GitHub 仓库未附独立 LICENSE 文件,再分发 / 二次开发请遵循 Apache-2.0 条款。

适用对象开源协议说明
项目(整体)Apache License 2.0(Apache-2.0)来源:Arduino Project Hub 项目页许可标注(license_type: Apache License 2.0)

开源协议与链接 · 二、相关链接

类型链接
项目仓库(GitHub)https://github.com/APLUX-Official/marm_A1
项目案例页(Arduino Project Hub)https://projecthub.arduino.cc/aplux/robotic-arm-with-vision-grasping-a63d5f
项目说明文档(PDF,官方)https://projects.arduinocontent.cc/f4a247e9-61e5-4f05-b460-8e1e8a19cbe6.pdf
3D 打印模型目录https://github.com/APLUX-Official/marm_A1/tree/master/models
手眼标定示例文件https://github.com/APLUX-Official/marm_A1/blob/master/samples_my_handeye_calibration.yaml
Qualcomm Dragonwing™ QCS6490(产品页)https://www.qualcomm.com/internet-of-things/products/q6-series/qcs6490
MG996R 舵机(购买链接)https://hobbyking.com/en_us/towerpro-mg996r-10kg-servo-10kg-0-20sec-55g.html
ROS 2 Humble(官方文档)https://docs.ros.org/en/humble/
MoveIt 2(官方文档)https://moveit.picknik.ai/
开发团队主页https://github.com/APLUX-Official