logo资料库

PROBOT Anno手眼标定步骤(easy_handeye-眼在外).pdf

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
PROBOT Anno手眼标定步骤(easy_handeye-眼在外) 笔记本: 创建时间: 作者: 一、总体流程 六轴步进机械臂 2019/4/9 22:21 古月,TSijia 1. 首先需要把机械臂跟摄像头跑起来; 更新时间: 2019/4/10 9:45 2. 然后, 用aruco_ros识别末端上的标志物, 得到camera_link到marker_link的转换; 3. 之后按照GUI控制机械臂在相机视野内产生17个姿态, 每次都把样本记录下来,这17个姿态是第一步计算好的, 在开始姿态前后左右上下8 个位置各2个角度. 4. 最后点击求解, easy_handeye会调用visp的代码得到标定结果; 5. 然后点save, 标定结果会被保存在~/.ros/easy_handeye/---.yam; 6. 之后就可以关掉标定程序,再跑publish.launch即可发布base_link到camera_link的转换。 二、依赖功能包 使用手眼标定的ROS库easy_handeye前期准备 软硬件依赖 硬件: anno机械臂 USB摄像头 软件 ros-kinetic-visp包 vision_visp包 aruco_ros包 easy_handeye包 四、相机位置 三、手眼标定步骤(内参) 在手眼标定的过程中会使用内参标定完成后生成的head_camera.yaml文件,如果不先进行内参标定,会报错,一个比较好的单目相机标定过程 可以参考。 四、手眼标定前准备(外参) 1. 为了同时启动机器人、摄像头以及标定程序来进行标定任务,需要写一个launch文件,可以在easy_handeye作者给的样例文件上进行修 改,样例文件路径easy_handeye/docs/example_launch/ur5_kinect_calibration.launch
修改配置文件1,两个跟marker尺寸和ID有关的参数是按照你在下面网站上的参数修改的: 修改配置文件2: 修改配置文件3:aruco_ros是用来识别aruco这种图案的. 识别需要知道aruco的ID跟边长. 有个网站(本例中使用的标定板该网站参数为 Dictionary:Original ArUco;ID:100;size:100)可以生成这种图案.aruco_ros需要配置两个方面的参数. 首先是相机, 需要camera_info和 image的topic, 还有image所在的frame. 还有一个是tf的关系,从reference_frame到marker_frame, 如果识别出marker就发布. 如果没有 特殊要求, 一般的reference_frame就配成相机的frame: 修改配置文件4:Robot部分根据所用的机械臂进行具体的修改
修改配置文件5:这一部分主要需要注意4个frame: tracking_base_frame就是相机的frame, tracking_marker_frame是标志物的frame, 这两者之间的关系由aruco_ros发布, 所以要对上; robot_base_frame就是机械臂底座, robot_effector_frame是末端, 这两个跟机械臂发 布的要对上. 这几个frame之间变化的都能被观测到, 所以可以通过几个样本得出不变的相机到底座之间的关系. 注意namespace_prefix要 跟publish.launch里的对上, 因为保存标定结果的时候文件名按照这个取的 2. 修改完成之后运行改launch文件,如果成功的话,会看到三个窗口跳出来 窗口1 窗口2
窗口3 3. 还需要在标定窗口1中订阅相机拍到的图片/aruco_tracker/result进行显示,必须步骤,显示后的效果如下 五、手眼标定步骤(外参)
1. 将标定板固定在机械臂上面,移动到相机视野的中心位置 检查图3中是否显示0/17,如果不是就按check starting pose。 2. 在图3界面点击next pose,再点击plan,出现绿色就当前位姿可以达到,最后点击execute;如果出现红色则表示当前点不可用,继续点击next pose,重 3. 返回图2界面点击take sample。重复这两个操作直到17个点全部采集完;
4. 返回图2界面,点击compute,得到一组7个解的变换矩阵(四元数表示),点save 5. 上面计算的结果保存在~/.ros/easy_handeye/xxx.yaml这个文件里面,接下来我们发布变换,如果使用easy_handey自带的publish.launch一般是会报错 因为我们在上面的calibrate.launch文件中对保存四元数的yaml文件进行了自定义。这里我们再创建一个publish.launch文件,内容如下: 5. 运行publish.launch,将结果发布出去,可通过tf_echo命令查看
分享到:
收藏