这个软件包提供了一个基于 ROS2 的机器人手眼标定实现方案。支持 eye-on-hand(眼在手上)和 eye-on-base(眼在底座)两种标定配置, 使用 AprilTag 作为标定板进行位姿估计,并集成了多种标定算法以确保精确的标定结果。
该库现可以用于px系列机器人s005及tora_one的手眼标定。
-
多种标定算法支持
- TSAI 算法
- PARK 算法
- HORAUD 算法
- DANIILIDIS 算法
-
实时可视化功能
- 实时相机画面显示和 AprilTag 检测
- 实时标定板位姿估计
- 交互式控制台界面(带有颜色编码的输出)
-
数据采集与处理
- 半自动记录位姿数据对(按键记录)
- 标定结果统计分析
- 计算标定精度的方差和均值
- 支持实体机器人操作(按键控制机械臂移动/拖拽移动)
-
机器人系统集成
- 支持机器人关节状态监控
- 末端执行器位姿跟踪
- 坐标变换链管理(基座→末端执行器→相机→标定板);持续开发中
-
标定结果验证(测试中)
- 支持通过Evaluator程序验证手眼标定结果
- 自动计算并显示标定板特征点在机器人基坐标系下的位姿
- 提供交互式验证方式(键盘控制机器人移动到目标位置)
- ROS2(已在 Foxy 版本测试)
- OpenCV 图像处理库
- NumPy 数值计算库
- AprilTag 标记检测库
- PrettyTable 表格显示库
- PIL 图像处理库
- scipy 科学计算库
bash 创建 ROS2 工作空间(如果没有)
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
克隆代码仓库
git clone http://gitlab.paxini.cloud/liangyi/px_hand_eye_ros2.git
编译软件包
cd ~/ros2_ws
colcon build --symlink-install --packages-select px_hand_eye_cali
ROBOT_ID: 指定机器人配置 例如配置编号ID为34的tora 4 号机器人 使用以下命令指定受控机器人编号export ROBOT_ID=ROBOT_34并使用以下命令指定ros控制域export ROS_DOMAIN_ID=34
config/tora_config.json: 机器人相关配置- 包含手眼矩阵和工具位姿等参数
在使用的终端中必须先source生效已编译的ros2包
source install/local.setup.bash
-
启动相机节点
ros2 run px_hand_eye_cali camera使用的相机配置可参照camera_usb_node.py,并在配置后,在setup.py脚本中设置进入点。 -
启动运控节点 本手眼标定库共有两种操纵方法:
- 采用按键移动,使用轴控制/末端笛卡尔位置控制
运行命令
ros2 run px_hand_eye_cali controller - 采用拖拽移动功能,人工拖动到所需位置(暂只支持轴空间拖动)
- 采用上位机控制功能
细说明参考相关文档:
- TORA_ONE_DEV运控使用说明
- 拖拽示教说明 (注:拖拽移动功能,在硬件切换的情况下,如将手换成了标定版,现暂需要调整拖拽移动功能的配置文件,使其识别负载,从而实现正常流畅的拖拽功能。)
- 关节控制上位机说明
- 启动标定节点
运行命令ros2 run px_hand_eye_cali calibrator
使用运控功能,使固定标定板的末端转动,变换姿态
然后使用r键记录
再记录足够多的点后,使用s键保存,标定程序自动结束
保存的记录文件在编译后的install/文件夹下,详细路径将会打印
- 调整机器人位置,确保相机可以看到 AprilTag 标定板
- 按指定按键记录标定位姿
- 至少采集 3 组不同位姿数据以确保标定准确性
- 每次记录数据点后,系统计算手眼变换矩阵
- 显示多种算法的标定结果
- 提供统计分析用于评估标定质量
- 启动验证节点 运行命令:
ros2 run px_hand_eye_cali evaluator- 验证操作说明
- 程序启动后自动开始相机图像采集和标定板检测
- 使用键盘数字键选择要验证的目标点:
- 1:移动到左上角
- 2:移动到左下角
- 3:移动到右上角
- 4:移动到右下角
- 5:移动到中心点
- 按'q'键退出程序
- 注意事项
- 使用前确保config.json中已正确配置手眼标定矩阵
- 验证过程中确保机器人工作空间安全
- 建议首次使用时在低速模式下测试
R: 记录当前位姿C: 计算手眼变换(需要至少3组数据)S: 保存标定结果和图像O: 退出程序
- 变换矩阵
- 欧拉角(角度制)
- 平移向量
- 统计指标(均值和方差)
- 一键保存标定结果日志
- 保存标定过程中的图像
- 生成统计报告
- 相机画面和 AprilTag 检测结果
- 当前机器人位姿
- 标定进度
- 表格形式的统计结果
欢迎提交 Pull Request 来改进这个项目!
暂无
- 梁熠@Paxini,2024
- 其他贡献者
- 手眼标定方法理论
- AprilTag 检测系统说明
- ROS2 集成指南
- ROS2 官方文档
- OpenCV 文档
- AprilTag 文档