aubo+dh+zed2相机手眼标定实物实验

注:1.zed2相机我只使用了左眼作为单目相机

       2.使用moveit_calibration功能包进行手眼标定,有误差,可以后续抓取物体的时候补偿

       3.修正,之前产生的问题来源于我对于坐标系间的关系的错误认识,ZED2相机的坐标系太多了,只能说所有标定方法都可以,而且在标定之后不要拆相机了,容易造成人为误差。

 1.安装功能包

ubuntu18.04 20.04均可采用这篇文章(MoveIt Calibration ROS手眼标定模块安装)的安装方法,但注意20.04下geometric_shapes和moveit_visual_tools采用  noetic-devel。

2.标定板

 标定板格子多一些标定更准确,于是我们采用7*7方案,其他各项设置数据如下:

 注意:在选择 sensor frame 时候一定要与自己使用的 camera_info 中的 frame_id 一致,毕竟之后使用坐标转换要使用内参矩阵,要保证内参矩阵与手眼标定矩阵的坐标系一致。具体理论不再赘述,可自行查找。

3.标定

1.标定过程中,zed2相机有点云数据,一定要在rviz中打开看一下相机识别到的标定板的深度与通过视觉看到标定板从而推断出的深度是否一致,简单来说就是看标定板点云图像与标定板坐标是不是同一高度。这一点很重要,否则标定出来了也不能用。我之前使用easy-handeye就是存在这个问题。

2.标定过程中尽量让机械臂动三个关节以上,这样比较准确。

### ZED2i 手眼标定方法教程 手眼标定是一种用于校准机器人末端执行器(如机械臂)与其视觉传感器之间相对位置的技术。对于 Kinova J2N6S300 和 ZED/ZED2i 相机组合的情况,可以通过 ROS(Robot Operating System)框架实现这一过程。 #### 1. **准备工作** 为了完成手眼标定,需要准备以下工具和环境: - 安装并配置好 ROS 环境。 - 配置好的 ZED SDK 及其对应的 ROS 软件包 `ros_zed`[^2]。 - 使用棋盘格作为标定图案,并打印适当大小的模板。 - 将 ZED2i 相机固定到机械臂末端或附近的位置。 #### 2. **ROS 中的手眼标定流程** ##### (1) 启动 ZED 相机节点 启动 ZED2i 的 ROS 节点以发布图像数据流: ```bash roslaunch zed_wrapper zed.launch camera_model:=ZED2 ``` ##### (2) 发布机械臂 TF 数据 确保机械臂的关节状态能够通过 ROS Topic 正常发布,并且 TF 树已正确构建。如果尚未修改 TF 命名空间,则需将相机帧名称从默认的 `camera_frame` 改为 `camera_link`,以便于与机械臂的 TF 树关联。 ##### (3) 运行手眼标定程序 使用 ROS 提供的标准手眼标定工具 `calibrate_camera_arm.py` 或其他自定义脚本进行标定。以下是具体命令: ```bash rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/zed_node/left/image_rect_color camera:=/zed_node_left ``` 上述命令中的参数解释如下: - `--size`: 指定棋盘格尺寸(行列数)。 - `--square`: 单位长度(米),即每格的实际边长。 - `/zed_node/left/image_rect_color`: 左摄像头发布的彩色图像主题。 - `/zed_node_left`: 设置目标摄像机命名空间。 ##### (4) 获取变换矩阵 R 和 t 在标定完成后,会得到两个重要的结果——旋转矩阵 \( R \) 和平移向量 \( t \),它们描述了相机相对于机械臂基座坐标系的姿态关系。可以利用 MATLAB 函数进一步解析欧拉角: ```matlab function tha = solve_tha(R) tha(1) = atan2(R(2,1), R(1,1)); tha(2) = atan2(-R(3,1), sqrt(R(3,2)^2 + R(3,3)^2)); tha(3) = atan2(R(3,2), R(3,3)); end ``` 此函数计算绕 X、Y 和 Z 轴的三个角度值。 #### 3. **注意事项** - 如果相机安装方向发生变化,请重新调整 TF 树结构以及初始猜测姿态。 - 对于不同的应用场景可以选择合适的标定模式,例如 Eye-in-Hand 或者 Eye-to-Hand 方式[^1]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值