机械臂手眼标定
根据相机和机械臂的安装方式不同,手眼标定分为眼在手上和眼在手外两种方式,双臂机器人的相机和机械臂基座的相对位置固定,所以应该采用眼在手外的手眼标定方式。
后续的视觉引导机械臂抓取测试实验基于本实验实现,通过视觉引导右臂完成抓取目标物,所以默认已使用机械臂右臂和相机完成了手眼标定。
打印 Marker 标签
打印标定需要使用到的 Marker 标签,可以从下面的网站下载 marker 标签并打印出来:
Online ArUco markers generator (chev.me)
注意:
Dictionary 一定要选 Original ArUco
Marker ID 和 Marker size 自选,在 launch 文件中做相应的修改(本教程演示使用 Marker ID:582,Marker size:30mm)
打印时,要选择原始大小,否则要测量一下打印出来的真实大小
配置及编译运行
修改 aruco_ros 功能包 launch 下的 single_realsense.launch 文件,根据打印的marker 标签,需要配置 single_realsense.launch 文件,将其中的 markerId 和markerSize 修改为实际打印 marker 对应的参数。
修改 dual_arm_demo 功能包 launch 下的 demo_recognize_target_pose.launch文件
根据手眼标定后在 ~/.ros/easy_handeye 路径下生成的rm_d435_eye_on_base.yaml 文件,将其中的 tf 关系输入到demo_recognize_target_pose.launch 文件中的相应位置。
编译运行
将提供的源码包拷贝到 catkin_ws 工作空间的 src 目录下或将源码包拷贝到自己创建的其他工作空间的 src 目录下。
通过 rosdep 安装源码包依赖,执行以下命令
rosdep install -y --from-paths . --ignore-src --rosdistro melodic -r
使用 catkin 工具配置进行编译,执行如下命令:
cd ~/catkin_ws
catkin build
编译成功后执行以下命令启动 launch 文件:
source devel/setup.bash
roslaunch dual_arm_demo demo_recognize_target_pose.launch
打开一个新的终端,执行以下命令启动 image_view 订阅/aruco_single/result
显示图像:
cd ~/catkin_ws
source devel/setup.bash
rosrun image_view image_view image:=/aruco_single/result
回到上一个启动 demo_recognize_target_pose.launch 的终端,将打印 marker的纸张放到相机视野内,图像会显示识别到 marker 及对应坐标系,终端会打印输出 marker 在相机坐标系下的位姿和目标物在右臂机械臂 base_link 坐标系下的位姿。