aubo i5 + realsense D435i手眼标定
标定软件安装
1.aruco_ros安装
cd ~/aubo_ws sudo apt install ros-noetic-aruco-ros ros-noetic-aruco2.vision_visp安装
sudo apt install ros-noetic-visp3.easy_handeye安装
cd ~/aubo_ws/src git clone https://github.com/IFL-CAMP/easy_handeye catkin_make -j2 -DCATKIN_WHITELIST_PACKAGES="easy_handeye"4.realsense驱动安装
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key FB0B24895113F120 # 安装 Realsense 核心 SDK sudo apt install librealsense2-dkms librealsense2-utils librealsense2-dev -y # 安装 ROS Noetic 相机驱动 sudo apt install ros-noetic-realsense2-camera ros-noetic-realsense2-description -y5.安装realsense ROS软件包
sudo apt install ros-noetic-realsense2-camera ros-noetic-realsense2-description -y验证安装
roslaunch realsense2_camera rs_camera.launch能看到/camera/color/image_raw等话题发布= 安装成功!
realsense-viewer能看到彩色图像、深度图像 = 安装成功!
配置
1.launch文件修改
easy_handeye/docs/example_launch文件夹中有一个ur5,kinect的样例,拷贝一份到工作包easy_handeye/launch文件夹下重命名为auboi5_realsense_calibration.launch
<launch> <!-- 可配置参数 --> <arg name="namespace_prefix" default="aubo_i5_d435i_handeye" /> <arg name="marker_size" default="0.1" doc="ArUco标记尺寸(米)" /> <arg name="marker_id" default="0" doc="ArUco标记ID" /> <arg name="eye_on_hand" default="true" /> <!-- 眼在手上=true,眼在手外=false --> <!-- 1. 启动 Realsense D435i --> <include file="$(find realsense2_camera)/launch/rs_camera.launch" > <arg name="color_width" value="640"/> <arg name="color_height" value="480"/> <arg name="enable_infra1" value="false"/> <arg name="enable_infra2" value="false"/> </include> <!-- 2. 启动 ArUco 检测 --> <node name="aruco_tracker" pkg="aruco_ros" type="single"> <remap from="/camera_info" to="/camera/color/camera_info" /> <remap from="/image" to="/camera/color/image_raw" /> <param name="image_is_rectified" value="true"/> <param name="marker_size" value="$(arg marker_size)"/> <param name="marker_id" value="$(arg marker_id)"/> <param name="camera_frame" value="camera_color_optical_frame"/> <param name="marker_frame" value="aruco_marker" /> </node> <!-- 3. 启动 AUBO i5 MoveIt --> <include file="$(find aubo_i5_moveit_config)/launch/moveit_planning_execution.launch"> <arg name="sim" value="false" /> <arg name="robot_ip" value="192.168.1.10" /> <!-- 务必改成你的机械臂IP! --> </include> <!-- 4. 启动手眼标定 --> <include file="$(find easy_handeye)/launch/calibrate.launch" > <arg name="namespace_prefix" value="$(arg namespace_prefix)" /> <arg name="eye_on_hand" value="$(arg eye_on_hand)" /> <arg name="tracking_base_frame" value="camera_color_optical_frame" /> <arg name="tracking_marker_frame" value="aruco_marker" /> <arg name="robot_base_frame" value="base_link" /> <arg name="robot_effector_frame" value="wrist3_link" /> </include> </launch>2.打印二维码
在ARUCO下载打印,这里使用的编号100,尺寸80mm的二维码。
二维码需要固定在机器人工作空间内的平面上。
手眼标定
1.启动launch文件
cd ~/aubo_ws/ source devel/setup.bash roslaunch easy_handeye auboi5_realsense_calibration.launch启动后出现如下三个界面,不包括aubo启动的rviz界面
在第二个界面中将image_view打开并订阅/aruco_tracker/result主题,以便观察跟踪程序有没有跟踪到二维码
2.标定步骤
打开图一,将机器人的速度、加速度设置为0.1
将机械臂操作至合适的位置(二维码标签在图像的中间位置)
打开图三,如果显示0/17就正常,如果不是就按check starting pose
- 点击next pose,再点击plan,出现绿色就当前位姿可以达到,最后点击execute。出现红色表示当前点不可用,继续点击next pose,重复操作;
- 机械臂执行完成后返回图二界面,查看image_view中是否跟踪到标签,如果跟踪到标签则点击take sample,如果没有跟踪到则跳过。重复(1)(2)操作,直到17个点全部采集完;
- 返回图二界面,点击compute,得到一组7个解的变换矩阵(四元数表示)。
- 返回图二界面,点击save,保存得到的结果。结果保存在~/.ros/easy_handeye的.yaml文件中
3.发布tf关系
cd ~/aubo_ws/ source deve/setup.bash roslaunch easy_handeye publish.launch eye_on_hand:=true