aubo i5 + realsense D435i手眼标定
·
标定软件安装
1.aruco_ros安装
cd ~/aubo_ws
sudo apt install ros-noetic-aruco-ros ros-noetic-aruco
2.vision_visp安装
sudo apt install ros-noetic-visp
3.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 -y
5.安装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_handeye_calibration" />
<arg name="robot_ip" default="192.168.1.100" />
<arg name="marker_size" default="0.08" />
<arg name="marker_id" default="66" />
<include file="$(find realsense2_camera)/launch/rs_camera.launch">
<arg name="enable_pointcloud" value="false" />
<arg name="color_width" value="640" />
<arg name="color_height" value="480" />
</include>
<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="marker_id" value="$(arg marker_id)" />
<param name="marker_size" value="$(arg marker_size)" />
<param name="reference_frame" value="camera_color_optical_frame" />
<param name="camera_frame" value="camera_color_optical_frame" />
<param name="marker_frame" value="camera_marker" />
</node>
<include file="$(find aubo_i5_moveit_config)/launch/moveit_planning_execution.launch">
<arg name="sim" value="false" />
<arg name="robot_ip" value="$(arg robot_ip)" />
</include>
<include file="$(find easy_handeye)/launch/calibrate.launch">
<arg name="namespace_prefix" value="$(arg namespace_prefix)" />
<arg name="eye_on_hand" value="true" />
<arg name="tracking_base_frame" value="camera_color_optical_frame" />
<arg name="tracking_marker_frame" value="camera_marker" />
<arg name="robot_base_frame" value="base_link" />
<arg name="robot_effector_frame" value="wrist3_Link" />
<arg name="move_group" value="manipulator_i5" />
<arg name="robot_acceleration_scaling" value="0.2" />
<arg name="robot_velocity_scaling" value="0.5" />
<arg name="freehand_robot_movement" value="false" />
</include>
</launch>
2.打印二维码
在ARUCO下载打印,这里使用的编号66,尺寸80mm的二维码。
二维码需要固定在机器人工作空间内的平面上。

手眼标定
1.启动launch文件
cd ~/aubo_ws/
source devel/setup.bash
roslaunch aubo_i5_moveit_config moveit_planning_execution.launch robot_ip:=192.168.1.100
#新终端
source ~/aubo_ws/devel/setup.bash
roslaunch easy_handeye auboi5_realsense_calibration.launch
启动后出现如下三个界面,不包括aubo启动的rviz界面



-
点击 Rviz 左下角的 Add 按钮。
-
在弹出的列表里选择 Image
-
在左侧配置栏找到刚刚添加的
Image条目,点击 Image Topic,选择:/camera/color/image_raw(原始画面)或者/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 ~/.ros/easy_handeye
cp aubo_handeye_calibration_eye_on_hand.yaml easy_handeye_eye_on_hand.yaml #拷贝一份作为默认加载文件
cd ~/aubo_ws/
source devel/setup.bash
roslaunch easy_handeye publish.launch namespace_prefix:=aubo_handeye_calibration eye_on_hand:=true
出现下面情况即为标定成功
... logging to /home/hql/.ros/log/f3daa7cc-3bbb-11f1-a176-c11a4e05fd34/roslaunch-hql-7504.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://hql:36587/
SUMMARY
========
PARAMETERS
* /easy_handeye_eye_on_hand/calibration_file:
* /easy_handeye_eye_on_hand/eye_on_hand: True
* /easy_handeye_eye_on_hand/inverse: False
* /easy_handeye_eye_on_hand/robot_effector_frame:
* /easy_handeye_eye_on_hand/tracking_base_frame:
* /rosdistro: noetic
* /rosversion: 1.17.4
NODES
/easy_handeye_eye_on_hand/
handeye_publisher_hql_7504_981656642904571227 (easy_handeye/publish.py)
auto-starting new master
process[master]: started with pid [7527]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to f3daa7cc-3bbb-11f1-a176-c11a4e05fd34
process[rosout-1]: started with pid [7552]
started core service [/rosout]
process[easy_handeye_eye_on_hand/handeye_publisher_hql_7504_981656642904571227-2]: started with pid [7559]
[INFO] [1776581386.807535]: Loading the calibration from file: /home/hql/.ros/easy_handeye/easy_handeye_eye_on_hand.yaml
[INFO] [1776581386.816092]: loading calibration parameters into namespace /easy_handeye_eye_on_hand/
[INFO] [1776581386.817409]: Storing calibration /aubo_handeye_calibration_eye_on_hand/ into the parameters server
[INFO] [1776581386.818717]: Storing parameters for calibration /aubo_handeye_calibration_eye_on_hand/ into the parameters server
更多推荐
所有评论(0)