自动化手眼标定工具easy_handeye使用指南
1. 项目介绍
easy_handeye是一个自动化的、硬件无关的手眼标定工具,适用于ROS1环境。它提供了功能性和图形用户界面(GUI),用于从机器人位置和跟踪系统输出中采样,通过OpenCV库的Tsai-Lenz算法实现计算手眼校准矩阵,存储校准结果,并发布校准结果作为tf变换。
2. 项目快速启动
快速启动easy_handeye项目需要以下步骤:
首先,克隆项目仓库到你的catkin工作空间:
cd ~/catkin_ws/src # 替换为你的工作空间路径
git clone https://github.com/IFL-CAMP/easy_handeye.git
然后,安装依赖项:
cd .. # 进入 ~/catkin_ws
rosdep install -iyr --from-paths src
接着,编译项目:
catkin build
3. 应用案例和最佳实践
以下是两个典型的应用案例:
案例一:Eye-in-hand校准
用于计算机器人手部执行器和跟踪系统(例如RGB相机的光学帧)之间的静态变换。相机安装在末端执行器上,将视觉目标放置在相对于机器人基座固定的位置(例如,在桌子上放置一个AR标记)。
<launch>
<!-- 启动机器人的MoveIt!堆栈 -->
<include file="$(find your_robot)/launch/moveit_planning_execution.launch" />
<!-- 启动跟踪系统的ROS驱动 -->
<include file="$(find your_tracking_system)/launch/driver.launch" />
<!-- 包含easy_handeye的校准启动文件 -->
<include file="$(find easy_handeye)/launch/calibrate.launch">
<arg name="eye_on_hand" value="true" />
<arg name="namespace_prefix" value="my_eih_calib" />
<!-- 根据你的机器人填写以下参数 -->
<arg name="robot_base_frame" value="/base_link" />
<arg name="robot_effector_frame" value="/ee_link" />
<!-- 根据你的跟踪系统填写以下参数 -->
<arg name="tracking_base_frame" value="/optical_origin" />
<arg name="tracking_marker_frame" value="/optical_target" />
</include>
</launch>
案例二:Eye-on-base校准
用于计算机器人基座到跟踪系统(例如三脚架上的RGBD相机)的静态变换。可以将标记(例如AR标记)附加到机器人的末端执行器上。
<launch>
<!-- 启动机器人的MoveIt!堆栈 -->
<include file="$(find your_robot)/launch/moveit_planning_execution.launch" />
<!-- 启动跟踪系统的ROS驱动 -->
<include file="$(find your_tracking_system)/launch/driver.launch" />
<!-- 包含easy_handeye的校准启动文件 -->
<include file="$(find easy_handeye)/launch/calibrate.launch">
<arg name="eye_on_hand" value="false" />
<arg name="namespace_prefix" value="my_eob_calib" />
<!-- 根据你的机器人填写以下参数 -->
<arg name="robot_base_frame" value="/base_link" />
<arg name="robot_effector_frame" value="/ee_link" />
<!-- 根据你的跟踪系统填写以下参数 -->
<arg name="tracking_base_frame" value="/optical_origin" />
<arg name="tracking_marker_frame" value="/optical_target" />
</include>
</launch>
4. 典型生态项目
easy_handeye可以与多种机器人系统和跟踪系统配合使用,以下是一些典型的生态项目:
- 使用UR机器人与Kinect进行对象避障的eye-on-base校准。
- 在视觉引导的任务中使用eye-in-hand校准。
这些生态项目能够帮助用户更好地集成和使用easy_handeye,实现更广泛的应用场景。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考