环境:Ubuntu 18.04 + ROS Melodic

设备型号:

Robot ur5机械臂

Intel RealSense D415 相机)

(相机固定在机械臂末端,标定板固定在外部)

python2

opencv3.4以上

如有报错,根据ai解读安装依赖

之前配置了ubuntu18.04与ur5的连接,见

https://blog.csdn.net/zhuanzhuxuexi/article/details/135776294?spm=1001.2014.3001.5502

1、安装依赖

创建工作区间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make  
source devel/setup.bash

部署librealsense SDK:

sudo apt install ros-melodic-realsense2-camera 
sudo apt install ros-melodic-realsense2-description

测试:

roslaunch realsense2_camera rs_camera.launch 
realsense-viewer   #打开gui界面测试

安装手眼标定工具

cd ~/catkin_ws/src
git clone https://github.com/IFL-CAMP/easy_handeye.git

如果因为网络超时,可以多试试

安装aruco:

git clone -b melodic-devel https://github.com/pal-robotics/aruco_ros.git

melodic换成自己对应的版本

安装visp:

git clone -b melodic-devel https://github.com/lagadic/vision_visp.git

安装依赖:

rosdep install --from-paths src --ignore-src -r -y
# 强制指定Python2编译(避免默认Python3)
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python2
source ~/catkin_ws/devel/setup.bash

如果在安装中报错,可能是缺少一些依赖或者版本不对,可以通过AI判断需要的依赖或升级版本安装

2、手眼标定

2.1 准备工作

安全注意:确保机械臂启用低速模式(<250mm/s)
标定板:打印 ArUco marker(ID=582,大小80mm)。固定在工作台上,确保相机视野覆盖
 电脑:Ubuntu 18.04,ROS Melodic 已安装,环境已经配置好。电脑需有 Ethernet 端口(机械臂以太网接口)和 USB 3.0 端口(相机)

2.2 连接硬件设备

2.2.1连通机械臂

参考文档之前连接配置过程

2.2.2 连接 RealSense D435 相机

USB 连接:

    用 USB 3.0 线缆连接相机到电脑 USB 3.0 端口(必须 3.0,否则深度数据丢帧)。
    相机不需要外部电源(USB 供电)。

固定相机:

    用螺丝或支架固定在机械臂末端 flange 上,镜头朝外。
    确保线缆固定,不影响臂运动。
    将usb接口切换到虚拟机下(虚拟机---可移动设备----选择你的相机----连接)

测试硬件:

rs-enumerate-devices

终端运行:

realsense-viewer

2.2.3 启动

一、自动一键启动(推荐)

在/catkin_ws/src/easy_handeye/easy_handeye/launch/下新建一个launch,可以复制其他的重命名为eye_to_hand_calibration1.launch

然后将launch文件修改成如下:

<launch>
    <arg name="namespace_prefix" default="ur5_realsense_handeyecalibration" />
 
    <arg name="robot_ip" doc="The IP address of the UR5 robot" />
 
    <arg name="marker_size" doc="Size of the ArUco marker used, in meters" default="0.08" />#0.1为

    <arg name="marker_id" doc="The ID of the ArUco marker used" default="582"/>#571为自己所使用的标

    <!-- start the realsen415 -->
    <include file="$(find realsense2_camera)/launch/rs_camera.launch" >
       <!-- <arg name="depth_registration" value="true" /> -->
    </include>
    
    <!-- 2. start 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="reference_frame"    value="camera_color_optical_frame"/>
        <param name="camera_frame"       value="camera_color_optical_frame"/>
        <param name="marker_frame"       value="camera_marker" />
    </node>
 
 
    <!-- start the robot -->
    <include file="$(find ur_robot_driver)/launch/ur5_bringup.launch">
        
        <arg name="robot_ip" value="192.168.56.101" />#value值为所使用机器人的ip
        <arg name="kinematics_config" value="/home/biguiyuan/ur5/data/my_robot_calibration.yaml"/> 
       
    </include>

    <include file="$(find ur5_moveit_config)/launch/ur5_moveit_planning_execution.launch">     

    </include>
    

    
    <!-- 4. start easy_handeye -->
    <include file="$(find easy_handeye)/launch/calibrate.launch" >
        <arg name="namespace_prefix" value="$(arg namespace_prefix)" />
        <arg name="eye_on_hand" value="true" />#使用眼在手上,value值为true,若使用眼在手外,则value=false
 
        <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="tool0" />
 
        <arg name="freehand_robot_movement" value="false" />
        <arg name="robot_velocity_scaling" value="0.2" />
        <arg name="robot_acceleration_scaling" value="0.2" />
    </include>


 
</launch>

修改为自己的参数

启动

cd ~/catkin_ws
source devel/setup.bash
roslaunch easy_handeye eye_to_hand_calibration1.launch

可以参考:

https://blog.csdn.net/el_ia_uk/article/details/138922213?spm=1001.2014.3001.5506

https://blog.csdn.net/gyxx1998/article/details/122238052

https://blog.csdn.net/qq_25908107/article/details/130658127

https://blog.csdn.net/weixin_71849365/article/details/156026551?ops_request_misc=&request_id=&biz_id=102&utm_term=ubuntu18.04%E6%80%8E%E4%B9%88%E6%8D%A2%E6%88%90%E4%B8%AD%E6%96%87%E6%89%8B%E7%9C%BC%E6%A0%87%E5%AE%9A%20realsens&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-156026551.142^v102^pc_search_result_base5&spm=1018.2226.3001.4187

二、分步启动(有bug,后面image没有出来)

1、roscore(主节点,终端1):

roscore

2、机械臂(终端2):

roslaunch ur_robot_driver ur5_bringup.launch robot_ip:=192.168.56.101 kinematics_config:=/home/biguiyuan/ur5/data/my_robot_calibration.yaml

替换自己的地址和ip

测试:

rostopic echo /joint_states 

看关节数据。

3、机械臂moveit(终端3)

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch

4、相机(终端4):

cd ~/catkin_ws
source devel/setup.bash
roslaunch realsense2_camera rs_camera.launch depth_registration:=true

测试:输入

rostopic list 

看是否有 /camera/color/image_raw话题。

5、标定板检测(终端5,用 ArUco):

source ~/catkin_ws/devel/setup.bash
roslaunch aruco_ros single.launch markerId:=582 markerSize:=0.08 image:=/camera/color/image_raw camera_info:=/camera/color/camera_info marker_frame_name:=marker

测试:把标定板放进视野,

rostopic echo /aruco_single/pose

看位姿数据。

5、手眼标定easy handeye(终端6):

source ~/catkin_ws/devel/setup.bash
roslaunch easy_handeye calibrate.launch   namespace_prefix:=ur5_realsense_handeyecalibration   eye_on_hand:=true   tracking_base_frame:=camera_color_optical_frame   tracking_marker_frame:=camera_marker   robot_base_frame:=base_link   robot_effector_frame:=tool0   freehand_robot_movement:=false   robot_velocity_scaling:=0.1   robot_acceleration_scaling:=0.1

启动成功

弹出 RViz和rqt总共三个界面

注意:一定要在rviz启动后再在示教器上点击开始external control

2.3 标定

在rviz中添加属性

选择Global Options—>fixed frame->选择“base_line”

然后会识别

选择add——by topic——aruco ——result——camera

可以看到相机实时图像

同时在rqt两个窗口进行标定

在第三个屏幕中点击check starting pose,若检查成功,界面会出现: 0/17,ready to start

点击next pose -> plan -> execute,当点完 plan ,出现绿色框,则说明规划成功,然后可以点击 execute让机械臂执行动作

然后在第二个窗口,点击take sample采样

17个动作依次执行完成,每一个像上面一样操作

回到第二个界面,点击compute,然后出现结果的姿态矩阵,然后可以点击save保存 

标定完成!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐