大象机械臂myCobot 280 JN和D435i进行手眼标定
一、环境准备
需要的环境主要包括myCobot的ros包,深度相机的realsense-ros包,鱼香ROS的手眼标定包。前面两个环境的配置在之前的文章中查看。
- 鱼香ROS手眼标定包
git clone http://10.55.16.230/sangxin/handeye-calib.git # 下载源码
cd handeye-calib
catkin_make or catkin build # 编译源码
二、标定过程(眼在手上)
眼在手上标定目标是相机坐标到机械臂末端执行器的坐标,myCobot 280 JN已经做了机械臂运动学结算,我们只需要调用相关接口,输入末端执行器的目标坐标就可以控制机械臂移动,具体接口查看官方文档。
1. 下载ArUco码
标定使用ArUco码,在线生成网站中生成,选择合适参数,然后1:1打印出来,作为标定板。
ArUco-ROS安装(鱼香ROS包里面有这个包,不需要额外安装):
git clone -b noetic https://github.com/pal-robotics/aruco_ros.git
# 没有-b noetic 编译会报错
catkin_make
2. 修改相关配置文件
handeye-calib包有在线标定和根据参数标定两种方式,这里使用在线标定,通过机械臂位姿话题和深度相机参数话题实时标定。
- realsense相机启动代码和ArUco码识别代码启动文件修改
handeye-calib将这两个话题的启动写在了handeye-calib/src/handeye-calib /launch//aruco/aruco_start_realsense_sdk.launch
文件中,只需修改后运行就可以启动。
需要修改的内容是ArUco的参数,改为之前你生成时选择的ID和Size,launch中的Size单位是m,注意转换。
- 修改在线标定文件中机械臂位姿话题相关参数
修改src/handeye-calib/launch/online/online_hand_on_eye_calib.launch
中机械臂位姿话题,和要标定的机械臂的关节坐标。这里眼在手上标定的是相机和机械臂末端,所以end_link修改为末端坐标,可以在RVIZ工具中看到各个关节坐标的命名。
3. 开始标定
- 启动机械臂滑块控制
roslaunch mycobot_280jn slider_control.launch
rosrun mycobot_280jn slider_control.py
- 启动深度相机和ArUco识别
roslaunch handeye-calib aruco_start_realsense_sdk.launch
- 启动在线标定
roslaunch handeye-calib online_hand_on_eye_calib.launch