ubuntu18.04+realsense d415+ur5手眼标定,眼在手上
18.04 +设备型号:Robot ur5机械臂Intel RealSense D415 相机)(相机固定在机械臂末端,标定板固定在外部)python2opencv3.4以上如有报错,根据ai解读安装依赖。
环境: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
二、分步启动(有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保存

标定完成!
更多推荐

所有评论(0)