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

【手眼标定】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

可以看到如下界面

20220817095025

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

20220817095311

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

# then, check the result
roslaunch easy_handeye_demo check_calibration.launch

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

到此easy_handeye_demo运行成功

2. 在仿真中手眼标定准备工作
  • 启动相机
roslaunch usb_cam usb_cam-test.launch #根据实际的相机启动文件名进行修改
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仿真界面,下面的两个标定界面

20220817104552

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

20220817104852

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

pip install PySide2

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

pip install transforms3d

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

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

20220817110039

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

20220817110840

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!,解决办法:拖动小球找到能够进行标定的位姿(有点麻烦,我也找了很久)

20220817114009

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

20220817114158

标定完成界面

20220817114701

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

20220817133609

  • 6
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
AUBO_i5_realSense_handEye_calibration_eye_on_hand 是一种用于实现机器人的手眼协同功能的技术。它基于机器人末端搭载的Realsense摄像头和相机标定方法,实现了机器人手部与眼部的精确定位和协同运动。 这项技术的应用非常广泛。在工业制造领域,机器人需要准确地抓取和放置物体。通过手眼协同功能,机器人可以准确地计算和控制手部的位置和姿态,使得抓取动作更加精准,避免了破坏和误差。在医疗领域,手眼协同技术也被应用于手术机器人,帮助医生进行精确的手术操作,提高手术效果和安全性。 AUBO_i5_realSense_handEye_calibration_eye_on_hand 的原理是通过对机器人末端搭载的Realsense摄像头进行标定,获得摄像头相对于机器人末端的准确位置和姿态信息。然后,通过计算机算法和控制系统,将手部的位置和姿态与眼部的位置和姿态进行协同控制和调整。 具体来说,首先需要进行相机标定,即通过特定的标定板和标定算法,确定摄像头的内外参数,获得摄像头进行标定后的准确位置和姿态信息。然后,通过机器人控制系统和计算机算法,将手部的位置和姿态与摄像头的位置和姿态进行实时匹配和协同控制,使得机器人的手部能够准确地跟随和调整。 总之,AUBO_i5_realSense_handEye_calibration_eye_on_hand 通过将Realsense摄像头和相机标定方法应用于机器人手眼协同功能中,实现了机器人手术和工业操作中的精确定位和协同运动,提高了操作的精度和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值