Skip to content

cidxb/handeye_ros2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PX 机器人手眼标定 ROS2 软件包

📝 概述

这个软件包提供了一个基于 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

  1. 启动相机节点 ros2 run px_hand_eye_cali camera 使用的相机配置可参照camera_usb_node.py,并在配置后,在setup.py脚本中设置进入点。

  2. 启动运控节点 本手眼标定库共有两种操纵方法:

  • 采用按键移动,使用轴控制/末端笛卡尔位置控制 运行命令ros2 run px_hand_eye_cali controller
  • 采用拖拽移动功能,人工拖动到所需位置(暂只支持轴空间拖动)
  • 采用上位机控制功能

细说明参考相关文档:

  1. 启动标定节点

运行命令ros2 run px_hand_eye_cali calibrator 使用运控功能,使固定标定板的末端转动,变换姿态 然后使用r键记录 再记录足够多的点后,使用s键保存,标定程序自动结束 保存的记录文件在编译后的install/文件夹下,详细路径将会打印

数据采集步骤

  1. 调整机器人位置,确保相机可以看到 AprilTag 标定板
  2. 按指定按键记录标定位姿
  3. 至少采集 3 组不同位姿数据以确保标定准确性

标定结果显示

  1. 每次记录数据点后,系统计算手眼变换矩阵
  2. 显示多种算法的标定结果
  3. 提供统计分析用于评估标定质量

标定结果验证流程

  1. 启动验证节点 运行命令:
ros2 run px_hand_eye_cali evaluator
  1. 验证操作说明
  • 程序启动后自动开始相机图像采集和标定板检测
  • 使用键盘数字键选择要验证的目标点:
    • 1:移动到左上角
    • 2:移动到左下角
    • 3:移动到右上角
    • 4:移动到右下角
    • 5:移动到中心点
  • 按'q'键退出程序
  1. 注意事项
  • 使用前确保config.json中已正确配置手眼标定矩阵
  • 验证过程中确保机器人工作空间安全
  • 建议首次使用时在低速模式下测试

🎮 交互控制

按键功能

  • R: 记录当前位姿
  • C: 计算手眼变换(需要至少3组数据)
  • S: 保存标定结果和图像
  • O: 退出程序

📊 输出格式

标定结果显示

  • 变换矩阵
  • 欧拉角(角度制)
  • 平移向量
  • 统计指标(均值和方差)

数据保存

  • 一键保存标定结果日志
  • 保存标定过程中的图像
  • 生成统计报告

📈 可视化功能

实时显示

  • 相机画面和 AprilTag 检测结果
  • 当前机器人位姿
  • 标定进度
  • 表格形式的统计结果

🤝 参与贡献

欢迎提交 Pull Request 来改进这个项目!

📄 开源协议

暂无

👥 作者

  • 梁熠@Paxini,2024
  • 其他贡献者

📚 参考资料

理论基础

  • 手眼标定方法理论
  • AprilTag 检测系统说明
  • ROS2 集成指南

相关文档

  • ROS2 官方文档
  • OpenCV 文档
  • AprilTag 文档

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages