ROS 2 手眼标定完整方案

我给你整理ROS 2 中最稳定、最常用、工业级可用 的手眼眼标定包,包含安装、使用、命令、区别,直接照着用就行。


一、ROS 2 首选手眼标定包:easy_handeye2

github 地址https://github.com/IFL-CAMP/easy_handeye2

这是 easy_handeye 的 ROS 2 完美移植版 ,也是目前社区公认最好用、文档最全、支持所有相机 + 机械臂的手眼标定包。

支持两种标定方式

  1. 眼在手上(Eye-in-Hand) 相机固定在机械臂末端,随臂运动
  2. 眼在手外(Eye-to-Hand) 相机固定在桌面 / 支架,独立不动

支持的标定板

  • ArUco 棋盘格(推荐,最稳)
  • 传统棋盘格
  • Charuco 板

二、一键安装(支持 Humble / Iron / Rolling)

bash

运行

复制代码
# 安装依赖
sudo apt install ros-$ROS_DISTRO-arucoto
sudo apt install ros-$ROS_DISTRO-aruco-opencv
sudo apt install ros-$ROS_DISTRO-image-view
sudo apt install ros-$ROS_DISTRO-tf-transformations

# 下载源码(必须源码安装,功能最全)
cd ~/ros2_ws/src
git clone https://github.com/IFL-CAMP/easy_handeye2.git

# 编译
cd ~/ros2_ws
colcon build
source install/setup.bash

三、使用流程(超级简单,3 步完成)

1. 启动相机 + 机械臂驱动 + TF

必须确保:

  • 相机发布 /camera/color/image_raw
  • 相机发布 /camera/color/camera_info
  • 机械臂发布 base_frame ↔ end_effector_frame 的 TF

2. 启动标定程序

眼在手上(Eye-in-Hand)

bash

运行

复制代码
ros2 launch easy_handeye2 handeye_calibrate.launch.py robot_base_frame:=base_link robot_effector_frame:=end_effector camera_base_frame:=camera_link camera_marker_frame:=aruco_marker setup:=eih

眼在手外(Eye-to-Hand)

bash

运行

复制代码
ros2 launch easy_handeye2 handeye_calibrate.launch.py robot_base_frame:=base_link robot_effector_frame:=end_effector camera_base_frame:=camera_link camera_marker_frame:=aruco_marker setup:=eth

3. 自动采样 + 计算

  1. 把标定板固定不动
  2. 拖动机械臂到10~15 个不同姿态
  3. 点击 Sample 采集
  4. 点击 Compute 算出标定结果
  5. 点击 Save 保存
  6. 自动发布 TF:camera ↔ base_link

四、标定结果自动保存

保存路径:

plaintext

复制代码
~/.ros/easy_handeye2/xxx_handeye.yaml

可以直接用于你的项目。


五、如果你需要【轻量级、纯 Python、快速标定】

备选包:ros2_aruco_hand_eye

轻量、快速、适合测试。

安装:

bash

运行

复制代码
cd ~/ros2_ws/src
git clone https://github.com/samuelmanley/ros2_aruco_hand_eye.git
cd ..
colcon build

六、两个包怎么选?

表格

包名 优点 推荐度
easy_handeye2 工业级、GUI、支持两种手眼、稳定、文档全 ⭐⭐⭐⭐⭐ 首选
ros2_aruco_hand_eye 轻量、快、适合测试 ⭐⭐⭐ 备选

七、我可以给你提供

你告诉我你的相机 + 机械臂型号,我可以直接给你:

  1. 专属启动命令
  2. 标定配置文件
  3. TF 坐标系说明
  4. 手眼标定完整启动脚本(一键启动)
  5. 标定成功后,如何把结果接入你的项目

总结

  • ROS 2 手眼标定首选:easy_handeye2
  • 支持 眼在手上 + 眼在手外
  • 源码安装,稳定、工业可用
  • 3 步完成标定,自动保存结果
相关推荐
To_OC9 小时前
LC 49 字母异位词分组:想到哈希表很简单,选对 key 才是精髓
javascript·算法·leetcode
冬奇Lab11 小时前
每日一个开源项目(第140篇):AgentScope 2.0 - 阿里开源的生产级 Agent 框架
人工智能·开源·agent
冬奇Lab12 小时前
Skill 系列(04):Skill 指标体系——L1/L2/L3 三层监控,让质量下降有据可查
人工智能·开源·llm
IT_陈寒13 小时前
Vite的静态资源打包让我熬夜到三点,这坑千万别跳
前端·人工智能·后端
玩转AI不是事14 小时前
用IndexedDB做AI对话离线缓存实战
人工智能
Asize14 小时前
多模态生图:从 Vite 工程化到前端调用 Qwen Image
javascript·人工智能·后端
MobotStone14 小时前
AI项目越多,为什么越容易失控
人工智能·aigc
十有八七14 小时前
AI时代的置身X内
前端·人工智能
Lkstar14 小时前
A2A协议深度解析|Agent2Agent通信标准,智能体互联网的"HTTP"
人工智能·llm
用户9385156350714 小时前
从 O(n²) 到 O(nlogn):一文读懂快速排序的“快”与“妙”
javascript·算法