本期新增资源:后台输入标定板即可获取标定板链接
上一回给大家分享了如何通过机械臂位姿和相机中标定板的位姿通过手眼标定程序计算出末端与相机之间的位姿关系。
看完上一回不少同学肯定有这么一个疑问,机械臂的位姿示教器里有,相机中标定板的位姿到底从哪里获得呢?这一讲我们就跟大家来讲一讲 原理介绍作为手眼标定中的重要一环,相机中标定板位姿关系获取直接影响标定精度,我们使用aruco这个开源程序来实现坐标的获取。
aruco采用2D图像计算深度信息,需要提前在程序中输入标记物的宽度,根据识别标记物在图像中的像素数量与实际宽度的比值即可计算出深度等信息。
整个程序的数据流是这样的:
使用指南使用Aruco之前要确保你已经在linux系统上安装了ROS系统。目前在kinetic和melodic版本上测试通过。
标定板获取,关注机智人后台回复标定板即可获取
1.安装aruco安装
Kinetic:sudo apt-get install ros-kinetic-aruco*
Melodic:sudo apt-get install ros-melodic-aruco*
其他版本sudo apt-get install ros-版本名称-aruco*
usb-cam安装
目前暂不支持网络相机,后面将考虑纳入该相机驱动。Kinetic:
sudo apt-get install ros-kinetic-usb-cam
Melodic:sudo apt-get install ros-kinetic-usb-cam
其他版本sudo apt-get install ros-kinetic-usb-cam
2.修改参数可以直接使用本仓库中handeye-calib所提供的aruco_start_usb_cam.launch或者aruco_start_realsense_sdk.launch 分别使用realsense和usb相机的驱动来运行,这个视你的相机而定。
需要修改的参数如下:
camera_info_url 相机标定文件所在位置
video_device:设备位置
image_width:图片宽度
image_height:图片高度
markerId:标定板编号,就是你所用的标定板的id,可以通过后台回复标定板进行生成并打印
markerSize:标定板的宽度 单位m
3.开始运行source devel/setup.bash
roslaunch handeye-calib aruco_start_usb_cam.launch 4.运行结果
5.位姿订阅
程序运行之后如果检测到标定板的markerId为我们设置的id则会输出标定板在相机中的位姿数据,通过/aruco_signal/pose 话题输出,话题类型为PoseStamped。可以使用下面的命令订阅输出话题数据。sudo apt-get install ros-kinetic-usb-cam
6.关于识别误差的校验方法我们可以利用标记不动,移动机械臂的方法进行检测(假设机械臂是精准的)。由于机械臂与相机末端是固结的,所以当我们让机械臂的末端在空间中移动10mm,那相机在空间中也会移动10mm,同样相机中标记物的位置也应当移动10mm,我们可以通过示教器移动机械臂的方式,观察位姿数据的变化来测量精度。
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:二维相机能得到三维信息?机器人感知部分之Aruco标定板的使用-相机标定板对大小有什么影响 https://www.yhzz.com.cn/a/8742.html