本实验室在进行物体的识别抓取研究,集成在ros系统上开发的。
首先完成了平台的搭建,包括UR5六自由度机械臂,末端二指气动抓手,奥比中光RGB-D深度相机,当前阶段我们是进行相机的内参标定。
博客内容大多是在前人的基础结合本实验室设备进行整合修改,欢迎各位探讨。
软件:ubuntu16.04,ros版本kinect
硬件:奥比中光深度相机-astrapro RGB-D
终端输入:
sudo apt install ros-$ROS_DISTRO-camera-calibration
终端输入:
rosrun camera_calibration cameracalibrator.py --size 7x9 --square 0.014 image:=/camera/rgb/image_raw
ps:(1)size:棋盘格内部的角点的行列数
(2)square:单个黑白格的边长
(3)image:=/camera/rgb/image_raw代表的是彩色图像。
下载链接:https://www.mrpt.org/downloads/camera-calibration-checker-board_9x7.pdf
在终端输入:
cd 自己相机的工作空间
source devel/setup.bash
roslaunch astra_camera astrapro.launch
在另一个终端输入:
rviz
(1)将其盘格放在相机视野的中央,上下左右并且有倾斜的变换位姿,目的是让相机多角度的拍摄角点,利用数据进行计算。并且观察GUI界面右侧的颜色光线,如果变成绿色则代表效果好。
(2)当标定获取的图像满足它内部的要求时,CALIBRATE按钮就会变成绿色,点击,则获取棋盘格图像结束,开始计算相机参数
(3)点击后,界面停顿,不需要其他的操作,等待终端输出的结果就好。
(4) 出来标定结果后,点击GUI界面的SAVE按钮,结果在/tmp/calibrationdata.tar.gz压缩包里,完成标定。
ps:tmp文件夹在计算机下,所以在home下无法找到,也可以通过终端进入tmp文件夹,对图像和标定结果进行解压。
相机的RGB标定结果在隐藏文件夹.ros文件夹下自动生成,一起相机的使用会自动调用这个标定结果。
我们在对物体识别定位中,用到了点云,需要物体深度的信息,所以在完成彩色相机的标定后,我们对深度相机进行标定,大致步骤与前一节类似。下面只说明有差别的地方,重复内容不再赘述。
终端输入:
rosrun camera_calibration cameracalibrator.py --size 7x9 --square 0.014 image:=/camera/ir/image
ps:image:=camera/ir/image代表的即是相机的深度信息的标定
(1)深度相机的标定画面会出现严重的曝光现象,无法看清标定盘,用一个遮光片将相机的红外发射镜头遮起来。
后续操作与彩色标定一样,值得注意的是,深度相机的标定图像压缩包会覆盖彩色相机的标定图像压缩包,可以提前备份彩色的压缩包。
(2)标定结果
机器视觉的基本任务之一是从摄像机获取的图像信息出发计算三维空间中物体的几何信息,并由此重建和识别物体,而空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数。在大多数条件下,这些参数必须通过实验与计算才能得到。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精确度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,后续我们将进行精度的提高工作。
目前完成相机的彩色和深度的参数的标定,接下来将进行UR5机械的控制研究,相机和机械臂手眼的标定,物体的识别定位,机械臂运动规划等,欢迎大家一起探讨!