一种基于ROS的相机和机器人的手眼标定方法技术

技术编号:18745681 阅读:26 留言:0更新日期:2018-08-25 01:05
本发明专利技术公开了一种基于ROS的相机和机器人的手眼标定方法,通过搭建视觉系统,使机械臂及其操作对象在相机视野范围内,然后分别建立相机和机械臂与ROS的通信机制,一方面实现机械臂的运动控制,一方面获取相机图像和机械臂状态,进行数据的采集,然后进行相机的内参和外参标定,获得相机参数,最后根据相机安装方式的不同自动进行相机和机械臂的手眼标定,获得手眼标定矩阵。本发明专利技术实现了相机和机械臂的自动手眼标定,减小了人工干预,整个标定过程只需要调用两次终端命令,自主程度高,不限制相机类型以及数量,不限制机械臂类型,可扩展性强,标定过程只需要打印一张A4的棋盘格纸,不需要作任何标记,方便实用。

A hand eye calibration method for camera and robot based on ROS

The invention discloses a method for camera and robot hand-eye calibration based on ROS. A vision system is built to make the robot arm and its operating object in the range of camera vision, and then the communication mechanism between the camera and the robot arm and ROS is established respectively. On the one hand, the motion control of the robot arm is realized, on the other hand, the camera image and the machine are acquired. The state of the arm is collected, then the camera parameters are calibrated, and the camera parameters are obtained. Finally, the camera and the arm-eye calibration matrix are obtained according to the different installation methods of the camera. The invention realizes the automatic hand-eye calibration of the camera and the manipulator, reduces the manual intervention, and the whole calibration process only needs two terminal commands. The calibration process has high degree of autonomy, does not limit the type and number of cameras, does not limit the type of the manipulator, and has strong expansibility. The calibration process only needs to print an A4 checkerboard sheet, and does not need to be calibrated. Make any mark, convenient and practical.

【技术实现步骤摘要】
一种基于ROS的相机和机器人的手眼标定方法
本专利技术涉及一种机器人视觉方法,尤其涉及一种基于ROS的相机和机器人的手眼标定方法。
技术介绍
随着计算机技术的发展,计算机视觉作为人工智能的一个重要研究领域,已经广泛地应用于各行各业。将计算机视觉技术与机器人技术相结合,也使得智能机器人领域得到大力发展。对于机械臂抓取,传统地采用人工示教的方式,如手掰机械臂,使机械臂到某个固定位置进行抓取,这种方式比较低效并且由于机械臂对周围环境毫无感知能力,如果机械臂位置或是物体位置发生变化,机械臂则抓不到物体。将计算机视觉应用到机器人领域,通常是结合模式识别和图像处理的方法分析处理图像数据,获得目标物体的空间位置和姿态,有了目标物体的位姿,机器人便可以自主地进行路径规划。而将物体在相机坐标系下的坐标转换到机械臂坐标系下,就称作相机和机器人的手眼标定,这是利用计算机视觉进行机械臂抓取的重要前提和基础。根据相机安装位置的不同,一般分为两种:安装在机械臂上,相机随机械臂而动,称作眼在手上(eyeinhand),安装在机械臂外,相机不随着机械臂运动,称作眼在手外(eyetohand)。而一般手眼标定过程繁杂,需要人工干预,或取标志点,或人工记录数据,不方便使用,而视觉实验中用到手眼标定的时候很多,无论是相机位置或机械臂位置发生变化,相机类型或机械臂类型发生变化时,都要重新进行手眼标定,而传统的手眼标定耗时较长,大大拉长了视觉实验的周期。
技术实现思路
本专利技术的目的在于提供一种基于ROS的相机和机器人的手眼标定方法。实现本专利技术目的的技术方案为:一种基于ROS的相机和机器人的手眼标定方法,包括以下步骤:步骤1、搭建视觉系统,使机械臂及其操作对象在相机视野范围内;步骤2、分别建立相机与ROS、机械臂与ROS的通信机制;步骤3、实现机械臂的运动控制,同时获取相机图像和机械臂状态;步骤4、重复步骤3,当获取m次相机图像和机械臂状态时,执行步骤5,否则执行步骤3;步骤5、根据获得的相机图像进行相机的内参和外参标定,获得相机参数;步骤6、根据相机安装方式进行相机和机械臂的手眼标定,获得手眼标定矩阵。本专利技术提供的基于ROS的相机和机器人的手眼标定方法,显著优点为:不限制相机类型以及数量,不限制机械臂类型,扩展性强,标定过程只需要打印一张A4的棋盘格纸,不需要作任何标记,方便实用,整个标定过程只需要调用两次终端命令,不需要其他人工干预,自主程度高。下面结合附图对本专利技术作进一步详细描述。附图说明图1为本专利技术基于ROS的相机和机器人的手眼标定方法流程图。图2为搭建的视觉系统示意图。图3为坐标系之间的关系示意图。图4为应用手眼矩阵转换相机坐标系下的点云到机械臂坐标系下点云的示意图。具体实施方式以下结合附图对本专利技术基于ROS的相机和机器人的手眼标定方法的具体实施方式进行说明:基于ROS的相机和机器人的手眼标定方法流程图如图1所示,包括以下步骤:步骤1、搭建视觉系统,使机械臂及其操作对象在相机视野范围内;具体步骤如下:步骤1-1、一般用于辅助机器人运动的相机为双目相机和深度相机,若是相机安装在机械臂外,可根据相机本身的参数,尤其是水平视角、垂直视角以及测距范围选择安装相机的位置;步骤1-2、打印一张标定板(棋盘格或是圆点图),贴在一块平坦的硬纸板上。如果进行眼在手上的手眼标定,则将硬纸板固定在离机械臂一定距离外的位置;如果进行眼在手外的手眼标定,则将硬纸板固定在机械臂末端;步骤2、分别建立相机与ROS、机械臂与ROS的通信机制;具体步骤如下:步骤2-1、安装相机在ROS下的驱动包,建立相机与ROS的通信,将图像数据发布到ROS的话题topic1上;步骤2-2、安装机械臂在ROS下的驱动包,建立机械臂与ROS的通信,将机械臂末端姿态发布到话题topic2上,机械臂关节状态发布到话题topic3上,并提供机械臂的控制接口topic4;步骤3、实现机械臂的运动控制,同时获取相机图像和机械臂状态;具体步骤如下:步骤3-1、订阅topic3获取机械臂当前的关节状态joint_states,将当前的关节状态叠加小范围内产生的随机增量Δjoint_states作为目标关节位置,即joint_states_target,发送关节指令到topic4,控制机械臂运动;涉及到的变量具体为:joint_states=[joint1,joint2,…,jointn]Δjoint_states=[Δjoint1,Δjoint2,…,Δjointn]joint_states_target=joint_states+Δjoint_states其中,jointi(i=1,2,...n)表示第i个关节当前的状态,Δjointi(i=1,2,...n)表示第i个关节需要叠加的随机增量,n表示机械臂的关节数;步骤3-2、当机械臂运动到指定位置后,保存当前相机发布在topic1上的RGB图像,保存当前发布在topic2上的机械臂末端在机械臂基座坐标系下的位姿信息其中,表示机械臂末端相对于基座坐标系的旋转变换矩阵,表示机械臂末端相对于基座坐标系的平移变换矩阵;步骤4、当获取m次相机图像和机械臂状态时,执行步骤5,否则执行步骤3;步骤5、根据获得的相机图像进行相机的内参和外参标定,获得相机参数;具体步骤如下:步骤5-1、对m张由步骤3-2保存的RGB图像分别进行角点检测;步骤5-2、进行相机的内参和外参标定;得到内参矩阵cameraMatrix,畸变系数distCoeffs,以及每一张RGB图像中标定板相对于相机坐标系的位姿[Rc|tc];其中,内参矩阵畸变系数为distCoeffs=[k1,k2,p1,p2,k3],fx和fy为焦距,cx和cy为成像平面的中心点坐标,k1、k2和k3表示径向畸变系数,p1和p2表示切向畸变系数,Rc和tc分别表示为表示标定板相对于相机的RGB摄像头的旋转变换和平移变换;步骤6、根据相机安装方式进行相机和机械臂的手眼标定,获得手眼标定矩阵;具体步骤如下:步骤6-1、整理机械臂末端的m次位姿信息以及标定板相对于相机的m次位姿信息,具体为:grab2b=[[Rc|tc]1,[Rc|tc]2,...[Rc|tc]m]其中,grab2b表示的是机械臂末端的一系列位姿信息,grid2c表示的是标定板相对于相机的一系列位姿信息;步骤6-2、采用两步法进行手眼标定获得手眼标定矩阵X,即解AX=XB的问题;其中,X是最后要求解的手眼矩阵,A和B取决于相机的安装方式,具体表示如下:相机安装在机械臂上:A=[grab2b[1]-1·grab2b[0],grab2b[2]-1·grab2b[1],...,grab2b[m-1]-1·grab2b[m-2]]B=[grid2c[1]·grid2c[0]-1,grid2c[2]·grid2c[1]-1,...,grid2c[m-1]·grid2c[m-2]-1]相机安装在机械臂外:A=[grab2b[1]·grab2b[0]-1,grab2b[2]·grab2b[1]-1,...,grab2b[m-1]·grab2b[m-2]-1]B=[grid2c[1]·grid2c[0]-1,grid2c[2]·grid2c[1]-1,...,g本文档来自技高网...

【技术保护点】
1.一种基于ROS的相机和机器人的手眼标定方法,其特征在于,包括以下步骤:步骤1、搭建视觉系统,使机械臂及其操作对象在相机视野范围内;步骤2、分别建立相机与ROS、机械臂与ROS的通信机制;步骤3、实现机械臂的运动控制,同时获取相机图像和机械臂状态;步骤4、重复步骤3,当获取m次相机图像和机械臂状态时,执行步骤5,否则执行步骤3;步骤5、根据获得的相机图像进行相机的内参和外参标定,获得相机参数;步骤6、根据相机安装方式进行相机和机械臂的手眼标定,获得手眼标定矩阵。

【技术特征摘要】
1.一种基于ROS的相机和机器人的手眼标定方法,其特征在于,包括以下步骤:步骤1、搭建视觉系统,使机械臂及其操作对象在相机视野范围内;步骤2、分别建立相机与ROS、机械臂与ROS的通信机制;步骤3、实现机械臂的运动控制,同时获取相机图像和机械臂状态;步骤4、重复步骤3,当获取m次相机图像和机械臂状态时,执行步骤5,否则执行步骤3;步骤5、根据获得的相机图像进行相机的内参和外参标定,获得相机参数;步骤6、根据相机安装方式进行相机和机械臂的手眼标定,获得手眼标定矩阵。2.根据权利要求1所述的基于ROS的相机和机器人的手眼标定方法,其特征在于,步骤2中分别建立相机与ROS、机械臂与ROS的通信机制的具体步骤为:步骤2-1、安装相机在ROS下的驱动包,建立相机与ROS的通信,将图像数据发布到ROS的话题topic1上;步骤2-2、安装机械臂在ROS下的驱动包,建立机械臂与ROS的通信,将机械臂末端姿态发布到话题topic2上,机械臂关节状态发布到话题topic3上,并提供机械臂的控制接口topic4。3.根据权利要求1所述的基于ROS的相机和机器人的手眼标定方法,其特征在于,步骤3中实现机械臂的运动控制,同时获取相机图像和机械臂状态的具体步骤为:步骤3-1、订阅topic3获取机械臂当前的关节状态joint_states,将当前的关节状态叠加小范围内产生的随机增量Δjoint_states作为目标关节位置joint_states_target,发送关节指令到topic4,控制机械臂运动,其中,涉及到的变量具体为:joint_states=[joint1,joint2,…,jointn]Δjoint_states=[Δjoint1,Δjoint2,…,Δjointn]joint_states_target=joint_states+Δjoint_states其中,jointi(i=1,2,...n)表示第i个关节当前的状态,Δjointi(i=1,2,...n)表示第i个关节需要叠加的随机增量,n表示机械臂的关节数;步骤3-2、当机械臂运动到指定位置后,保存当前相机发布在topic1上的RGB图像,保存当前发布在topic2上的机械臂末端在机械臂基座坐标系下的位姿信息其中,表示机械臂末端相对于基座坐标系的旋转变换矩阵,表示机械臂末端相对于基座坐标系的平移变换矩阵。4.根据权利要求1所述的基于ROS的相机和机器人的手眼标定方法...

【专利技术属性】
技术研发人员:郭毓陈宝存吴巍苏鹏飞饶志强吴禹均郭健吴益飞郭飞肖潇蔡梁
申请(专利权)人:南京理工大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1