【手眼标定】ROS + usb_cam + aruco_ros + easy_handeye_demo

注意:在手眼前先进行相机内参标定以及ArUco markers检测测试,测试成功后再进行手眼标定
ArUco markers检测参考链接

1. 下载运行easy_handeye_demo

这个库是easy_handeye的一个demo,不需要真实的机械臂就可以实现easy_handeye,并且easy_handeye_demo可以作为将easy_handeye与自己的机械臂整合的一个例子

  • 下载easy_handeye_demo及附属包

easy_handeye_demo仓库地址

easy_handeye仓库地址

机械臂仿真iiwa_stack仓库地址

(1)创建工作空间,克隆仓库

mkdir -p easy_handeye_ws/src
cd easy_handeye_ws/src
git clone https://github.com/IFL-CAMP/iiwa_stack
git clone https://github.com/IFL-CAMP/easy_handeye
git clone https://github.com/marcoesposito1988/easy_handeye_demo

(2)安装依赖

cd .. #回到工作空间easy_handeye_ws
rosdep install -yir --ignore-src --from-paths src

(3)编译

catkin build

(4)启动仿真

source devel/setup.bash
# first perform the calibration,默认眼在手外
roslaunch easy_handeye_demo calibrate.launch

可以看到如下界面

拖动小球可以使机械臂移动,点击plan&Execute可以使机械臂运动到拖动到的位置

再开一个命令窗口,可以通过下面命令验证机械臂运动

# then, check the result
roslaunch easy_handeye_demo check_calibration.launch

可以看到第一个窗口执行plan&Execute,第二个窗口机械臂同步移动

到此easy_handeye_demo运行成功

2. 在仿真中手眼标定准备工作
  • 启动相机
roslaunch usb_cam usb_cam-test.launch #根据实际的相机启动文件名进行修改
  • 启动aruco_ros检测Marker,这里有问题看这篇文章
cd ~/aruco_ws
source devel/setup.bash
roslaunch aruco_ros single.launch
  • 修改easy_handeye_demo的laucnh文件

复制 easy_handeye_demo/launch/calibrate.launch文件作修改,并命名为calibrate2.launch,修改以下参数

    <arg name="robot_base_frame" value="iiwa_link_0" /><arg name="robot_effector_frame" value="iiwa_link_ee" /><arg name="tracking_base_frame" value="usb_cam" /><arg name="tracking_marker_frame" value="aruco_marker_frame" />

tracking_base_frame: marker的坐标系的参考坐标系,这里写相机坐标系的参考坐标系,也就是相机坐标系。
tracking_marker_frame: marker 坐标系,即 aruco 设置的 marker_frame

  • 启动标定文件进行标定
cd easy_handeye_ws
source devel/setup.bash
roslaunch easy_handeye_demo calibrate2.launch

正常情况下会出现四个界面,一个是相机画面,一个是同上文的rviz仿真界面,下面的两个标定界面

但是我的一开始没有出现这两个标定界面,查看运行终端的报错信息,发现缺少相应的安装包

安装pyqt5,由于我的ros版本为melodic,运行环境为python2.7,参考该篇博客直接安装PySide2即可

pip install PySide2

然后还缺少transforms3d包,直接安装

pip install transforms3d

然后重新运行calibrate2.launch就可以看到上面的标定界面了

但是rqt_easy_handeye没有菜单栏无法打开aruco码位姿检测图像

解决方法:新开一个命令窗口,打开rqt界面,菜单栏-plugins-topics-topics monitor,查看话题,打开菜单栏-plugins-visualization-image view,订阅/aruco_single/result话题,放入ArUco markers便可以检测到marker的id和坐标轴

2. 开始标定

(1) 手动调节机械臂,使 aruco 二维码移动至相机视野中心处附近。点击 check starting pose,若检查成功,界面会出现: 0/17,ready to start
(2) 依次点击 Next Pose,Plan,Execute,机械臂会移动至新的位置,若二维码在相机视野范围内,且能检测成功,则进行下一步
(3) 界面 2 中点击 Take Sample,若 Samples 对话框中出现有效信息,说明第一个点标定成功
(4) 重复执行步骤 2 和步骤 3,直至 17 个点全部标定完毕
(5) 界面 2 中点击 Compute,则 Result 对话框中会出现结果
(6) 界面 2 中 Save,会将结果保存为一个 YAML 文件,路径为 ~/.ros/easy_handeye

出现的问题:
第一步点击 check starting pose时,提示Can't calibrate from this position!,解决办法:拖动小球找到能够进行标定的位姿(有点麻烦,我也找了很久)

然后继续进行第二步,得到如下图

标定完成界面

3. 发布TF(待研究)

easy_handeye 功能包提供了 publish.launch 文件,可以将标定好的 TF 发布出。注意修改 namespace_prefix 参数与标定的 launch 文件中的保持一致,这样才能找到标定好的 YAML 文件。

roslaunch easy_handeye publish.launch eye_on_hand:=false namespace_prefix:=demo_handeyecalibration# 查看 TF(基坐标系到相机坐标系)
rosrun tf tf_echo /iiwa_link_0 /usb_cam

【手眼标定】ROS + usb_cam + aruco_ros + easy_handeye_demo相关推荐

  1. Realsense D455/435内参标定以及手眼标定

    相机的内外参 内参数 与相机自身特性有关的参数,焦距,像素大小 外参数, 相机的位置,旋转方向 为什么要内参标定 理想情况下,镜头会将一个三维空间中的直线也映射成直线(即射影变换),但实际上,镜头无法 ...

  2. 机器人抓取平台搭建记录(六):手眼标定--眼在手上--Kinova Gen2 JACO2 七自由度机械臂--Realsense D435

    吐槽一,手眼标定两个多月前就做好了,这篇文章也是两个多月前就写了,但当时不知出了什么差错,在我还没有写完想暂时保存一下草稿的时候,写的内容竟然没了小半.于是就拖到现在,拖到忘记了当时写作的思路,操作细 ...

  3. 通过ROS控制真实机械臂(15) --- 视觉抓取之手眼标定

    通过视觉传感器赋予机械臂"眼睛"的功能,配合ATI力和力矩传感器,就可以完成机械臂"手眼"结合的能力,完成视觉抓取过程.目前测试的视觉传感器为 ZED mini ...

  4. ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)下

    ** 1参考链接 ** (1)UR5.realsense手眼标定 (2)优遨机器人UR5与RealSense深度摄像头D435的手眼标定 (3)UR5.realsense手眼标定**** (4)标定所 ...

  5. UR3机械臂+Realsense D435+ROS手眼标定记录

    UR3机械臂+Realsense D435+ROS手眼标定记录 前面一段时间,由于实验室工作安排,上手了UR3机械臂和Realsense D435深度相机,在手眼标定这一段真的是让人心累,断断续续折腾 ...

  6. 遨博协作机器人ROS开发 - 机器人手眼标定原理

    目录 一.简介 二.环境版本 三.学习目标 四.知识储备 五.课堂小结 六.课后练习 一.简介 大家好,欢迎关注遨博学院带来的系列技术分享文章(协作机器人ROS开发),在前面课程中我们讲解了Intel ...

  7. 基于ROS的手眼标定程序解决方案|支持眼在手外/上

    大家好,我是小鱼.今天分享一个自己写的开源程序,欢迎大家围观~ 1.概览 如果教程对你有帮助,可以start一下~ 若需手眼标定小鱼付费-指导请添加微信:AiIotRobot 本程序支持眼在手上和眼在 ...

  8. ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)上

    Universal Robots(优傲机器人)公司是一家引领协作机器人全新细分市场的先驱企业,该公司成立于2005年,关注机器人的用户可操作性和灵活度,总部位于丹麦的欧登塞市,主要的机器人产品有:UR ...

  9. 基于ROS的机械臂手眼标定-基础使用

    机械臂手眼标定-基础使用 你好,我是小智,前一段时间折腾了一段时间的机械臂的手眼标定,相关资料挺多的,但使用起来都比较复杂,新手一般比较难搞懂.于是想做一个比较简单易懂易用的手眼标定程序. 程序都是C ...

最新文章

  1. 街篮最新服务器,《街篮》全新两组服务器开启 与你一起迎新年!
  2. 深入Ajax架构和最佳实践读书笔记
  3. 使用IsLine FrameWork开发ASP.NET程序之六—使用ExceptionProcessProvider异常处理框架(下)...
  4. 【机器学习】为什么GBDT可以超越深度学习
  5. Markdown 图标 快捷键
  6. 晚上去宾馆有什么是一定要带的?
  7. USACO-Section1.5 Mother's Milk (深度优先搜索)
  8. 【5分钟 Paper】Reinforcement Learning with Deep Energy-Based Policies
  9. 最新即时通讯聊天安卓APP源码+全开源/Uniapp内核
  10. 不限时长的电脑录屏软件的软件有哪些?良心安利这3款!
  11. KMO检验和Bartlett球形检验
  12. 【Excel】定位条件快速将空值替换为指定值
  13. win10服务器系统要设置要密码是什么,云服务器win10系统初始密码
  14. 条码打印软件如何批量打印快递单
  15. 使用Python分析统计《大秦帝国》人物及七国的出场次数 的顺序(前20)
  16. RabbitMQ, Kafka和Pulsar (一)
  17. [转载]你们要的GIF动图制作全攻略!看完就会做!(实操教程)
  18. 精神分裂型患者大脑结构和功能连接的改变
  19. 库的基本操作与表格创建及查询删除表
  20. css画钟表_如何使用css3绘制出圆形动态时钟

热门文章

  1. Redis-5.0.5集群配置
  2. Tuxera Disk Manager是什么软件,Tuxera Disk Manager怎么用
  3. 我的世界服务器npc怎么修改,我的世界NPCmod教程如何设置任务NPC
  4. Java方法创建及调用--------06
  5. Linux 多线程(附带线程池代码加注释)
  6. XTU OJ 1375 Fibonacci
  7. 使用JavaScript进行销毁:操作指南
  8. 你想要的宏基因组-微生物组知识全在这(1907)
  9. TIA博途中如何通过PLC变量控制开始和停止记录数据?
  10. Unity Error while downloading Asset Bundle: Failed to decompress data for the AssetBundle