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 步完成标定,自动保存结果
相关推荐
weixin199701080162 小时前
《电子元器件商品详情页前端性能优化实战》
前端·性能优化
weixin199701080162 小时前
《建材网商品详情页前端性能优化实战》
前端·性能优化
起个名字总是说已存在2 小时前
github开源AI技能:UI UX Pro Max智能设计系统生成器
人工智能·ui·开源·github
Oflycomm2 小时前
高通公司与Neura达成合作,重注人工智能机器人领域
人工智能·机器人·高通·wifi7·wifi模组
撬动未来的支点2 小时前
【神经网络核心】张量、正向传播(空间映射)、反向传播(调整映射参数)
人工智能·深度学习·神经网络
互联网志2 小时前
具身智能:从炫技到实干,开启产业化新征程
人工智能
小垣2 小时前
java调用yolo26n.onnx模型输出图像推理检测
java·人工智能·深度学习·onnx
新知图书2 小时前
React的预构建creat_agent模块详解
人工智能·ai agent·智能体·langgraph
Q741_1472 小时前
每日一题 力扣 3418. 机器人可以获得的最大金币数 力扣 215. 数组中的第K个最大元素 动态规划 TopK问题 C++ 题解
c++·算法·leetcode·动态规划·topk