ubuntu18.04+realsense d415+ur5手眼标定,眼在手上

环境: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保存

标定完成!

相关推荐
AI视觉网奇2 小时前
ue5 绑定 鞋子 blender绑定
笔记·学习·ue5
合利士智能装备3 小时前
人形机器人竞赛的下半场叫“制造”
机器人·自动化·制造
qidun21012 小时前
安川喷涂机器人防护服作用解读-防护误区与核心价值分析
机器人
码农三叔19 小时前
(9-1)电源管理与能源系统:电池选择与安全
人工智能·嵌入式硬件·安全·机器人·能源·人形机器人
小康小小涵19 小时前
改进型深度Q-网格DQN和蒙特卡洛树搜索MCTS以及模型预测控制MPC强化学习的机器人室内导航仿真
人工智能·机器人·自动驾驶
PNP机器人19 小时前
突破机器人操作瓶颈!接触感知神经动力学,让仿真与现实无缝对齐
人工智能·机器人
田里的水稻20 小时前
FA_拟合和插值(FI)-逼近样条03(准均匀B样条的计算)
人工智能·数学建模·机器人·自动驾驶
出门吃三碗饭1 天前
机器人仿真: 训练自己第一个平衡机器人Cartpole
机器人
沫儿笙1 天前
库卡机器人厚板焊接节气设备
网络·人工智能·机器人