UR5、Kinect2手眼标定总结

花了几天的时间,在师兄的帮助下完成了手眼标定的工作。现在就我个人出现的问题做一下总结。

首先引用师兄博文https://blog.youkuaiyun.com/sinat_23853639/article/details/80276848

硬件配置没什么好说的,我个人感觉没什么要求。软件平台是Ubuntu16.04、ROS kinetic、UR5版本3.2。

1、easy_handeye安装

在安装之前首先要按照以下步骤安装依赖包(注意版本号):

(1)

sudo apt-get install ros-kinetic-visp

(2)这个和第一个一样!

cd ~/catkin_ws/src
git clone -b kinetic-devel https://github.com/lagadic/vision_visp.git
cd ..
catkin_make --pkg visp_hand2eye_calibration

(3)

cd ~/catkin_ws/src
git clone -b kinetic-devel https://github.com/pal-robotics/aruco_ros
cd ..
catkin_make

安装easy_handeye

cd ~/catkin_ws/src
git clone https://github.com/IFL-CAMP/easy_handeye
cd ..
catkin_make

安装完成后为了能够同时启动UR,Kinect和标定程序,需要重新写一个launch文件。

easy_handeye作者给出了一个示例的launch,地址:

https://github.com/IFL-CAMP/easy_handeye/blob/master/docs/example_launch/ur5_kinect_calibration.launch

下面是我的修改launch文件,根据自己的配置参考两份launch文件修改。

<launch>
    <arg name="namespace_prefix" default="ur5_kinect_handeyecalibration" />
 
    <arg name="robot_ip" doc="The IP address of the UR5 robot" />
		<!--<arg name="marker_frame" default="aruco_marker_frame"/>-->
    <arg name="marker_size" doc="Size of the ArUco marker used, in meters" default="0.1" />
    <arg name="marker_id" doc="The ID of the ArUco marker used
### UR5 手眼标定方法与教程 #### 方法概述 手眼标定的核心目标是计算摄像机相对于机械臂末端执行器的位置关系。对于UR5机器人,可以通过ROS中的`easy_handeye`包来完成这一过程[^1]。该包提供了一个简单的launch文件示例用于实现手眼标定流程。 #### 示例代码与配置 以下是基于`easy_handeye`包的手眼标定启动文件的一个典型例子: ```xml <launch> <!-- 启动UR5控制器 --> <include file="$(find ur_robot_driver)/launch/ur5_bringup.launch"> <arg name="robot_ip" value="YOUR_UR_IP"/> </include> <!-- 启动Kinect传感器驱动程序 --> <node pkg="freenect_camera" type="freenect_node" name="kinect_camera"/> <!-- 配置handeye节点 --> <node pkg="easy_handeye" type="calibrate" name="calibration_process" output="screen"> <param name="marker_size" value="0.09"/> <!-- 标记尺寸 (单位:m) --> <param name="checkerboard_rows" value="7"/> <!-- 棋盘格行数 --> <param name="checkerboard_cols" value="6"/> <!-- 棋盘格列数 --> <param name="approx_sync" value="True"/> </node> </launch> ``` 此脚本适用于UR5搭配Kinect的情况[^1]。如果使用RealSense摄像头,则需替换相应的传感器驱动部分并调整参数设置。 #### 关键步骤解析 - **硬件准备**: 准备带有已知几何特性的校准板(通常是棋盘格),将其放置于机器人的工作空间内。 - **数据采集**: 移动UR5至不同位置捕捉图像序列,确保覆盖足够的视角范围以便后续算法处理。 - **标定求解**: 利用手眼约束方程组\( ^{C}T_{E}=^{W}T_{B}\cdot{}^{B}T_{M}\cdot(^{W}T_{C})^{-1} \),其中各符号分别代表相机坐标系变换矩阵、基座坐标系到工具中心点的变换以及世界坐标系下的对应转换关系[^2]。 #### 常见问题分析 针对提到的地图信息累加现象,可以尝试通过订阅`/clear_octomap`服务接口手动清理OctoMap缓存内容: ```bash rosservice call /clear_octomap ``` 或者修改源码逻辑定期触发重置操作以满足实际应用需求。
评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值