标定软件安装

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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐