200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)下

ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)下

时间:2021-11-16 04:48:30

相关推荐

ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)下

**

1参考链接

**

(1)UR5、realsense手眼标定

(2)优遨机器人UR5与RealSense深度摄像头D435的手眼标定

(3)UR5、realsense手眼标定****

(4)标定所需二维码

(5)ROS下UR5、usb_cam单目外参标定(使用easy_handeye、眼在手上eye-in-hand)

(6)Ubuntu18.04 ROS手眼标定UR5之安装篇(亲测有效)

(7)UR5+ROS Kinetic+easy_handeye手眼标定教程(eye-to-hand)

2安装-----把所有的功能包放在一个工作空间下

(1)aruco_ros安装ps注意对应的版本

$git clone /pal-robotics/aruco_ros.git

( 通过-b kinetic-devel选择对应的ros版本)

安装aruco_ros时出现错误<具体为在编译ROS相关源码包的时候出现以下两种错误:

参考链接

opt/ros/kinetic/include/ros/internal/condition_variable.h:45:7: error: expected nested-name-specifier before 'condition_variable_monotonic'using condition_variable_monotonic = boost::condition_variable;>

更改

解决办法:在终端输入

sudo gedit /opt/ros/kinetic/include/ros/internal/condition_variable.h

将第45行的

using condition_variable_monotonic = boost::condition_variable;

注释掉,并在下面添加一行

typedef boost::condition_variable condition_variable_monotonic;

保存即可。

(2)安装UR机械臂

ur5源码编译源码编译ur5和ur_modern_drivercd ~/catkin_ws/srcgit clone -b kinetic-devel /ros-industrial/universal_robot.gitcd universal_robot (之所以下载ur_modern_driver是因为原始ur_driver版本的原因)git clone -b kinetic-devel /ros-industrial/ur_modern_driver.git

按照如下方式修改后:

将universal_robot路径下的ur_drive文件删除(即用ur_modern_driver替换了ur_drive)。打开ur_modern_drive/src/ros/ur_hardware_interface.cpp文件。修改语句,即如下所示(所有都要改):controller_it->hardware_interface改为controller_it->typestop_controller_it->hardware_interface改为stop_controller_it->type

然后编译

(3)然后我们安装vision_visp

在安装之前首先要按照以下步骤安装依赖包(注意版本号):

sudo apt-get install ros-kinetic-vispcd ~/catkin_ws/srcgit clone -b kinetic-devel /lagadic/vision_visp.gitcd ..catkin_make --pkg visp_hand2eye_calibration

(4)安装easy_handeye

cd ~/catkin_ws/srcgit clone /IFL-CAMP/easy_handeyecd ..catkin_make

(5)realsense D435相机 SDK和realsense_ros的安装方法

(5.1)安装RealSense SDK(可以单独建立一个工作空间)

```xml****下载source(如果报错,把https改成git)****git clone /IntelRealSense/librealsensecd librealsense****安装依赖项****sudo apt-get install libudev-dev pkg-config libgtk-3-dev libusb-1.0-0-dev pkg-config libglfw3-dev libssl-dev****安装权限脚本****sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/sudo udevadm control --reload-rules && udevadm trigger****编译安装** 时间比较慢**mkdir buildcd buildcmake ../ -DBUILD_EXAMPLES=truemakesudo make install插入realsense相机测试realsense-viewer

(5.2)安装realsense-ros需在ur的一个工作空间下

git clone /IntelRealSense/realsense-ros.gitgit clone /pal-robotics/ddynamic_reconfigure.gitcd ~/catkin_ws && catkin_makeecho "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrcsource ~/.bashrc测试roslaunch realsense2_camera rs_camera.launch

3修改标定launch文件

针对官方给出的标定launch文件进行修改,ubuntu下的文件路径 …/easy_handeye/docs/example_launch/ur5_kinect_calibration.launch

这个launch文件能够启动

launch文件修改1

launch文件修改2

<launch><arg name="namespace_prefix" default="ur5_camera_handeyecalibration" /><arg name="robot_ip" doc="The IP address of the UR5 robot" /><!--<arg name="marker_frame" default="aruco_marker_frame"/>--><arg name="marker_size" doc="Size of the ArUco marker used, in meters" default="0.1" /><arg name="marker_id" doc="The ID of the ArUco marker used" default="100" /><!-- start the camera --><include file="$(find realsense2_camera)/launch/rs_camera.launch" /><!-- <arg name="depth_registration" value="true" /></include>--><!-- start ArUco --><!-- 注意:Dictionary 一定要选 Original ArUcomarker_id 和 marker_size 自选,在 launch 文件中做相应的修改,本例中 marker_id 为 582,marker_size 为 0.1(单位:m)。打印时,要选择原始大小,否则要测量一下打印出来的真实大小--><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_link"/><param name="camera_frame" value="camera_link"/><param name="marker_frame" value="camera_marker" /></node><!-- start the robot --><!-- 注意:这里用了 ur_modern_driver 包,而没有用原始的 ur_bringup 包。修改机器人的真实 ip。--><include file="$(find ur_modern_driver)/launch/ur5_bringup.launch"><arg name="limited" value="true" /><arg name="robot_ip" value="172.17.0.3" /></include><include file="$(find ur5_moveit_config)/launch/ur5_moveit_planning_execution.launch"><arg name="limited" value="true" /></include><!-- start easy_handeye --><!-- 注意:<arg name="eye_on_hand" value="true"/> 眼在手上:value 为 falsetracking_base_frame 为相机坐标系 camera_color_frame。tracking_marker_frame 是标志物的坐标系 camera_marker。robot_base_frame 为机器人基座坐标系,示例里写的是 base_link,我在 rviz 中查看 base 才是真实的基座坐标系。robot_effector_frame 是末端,为工具坐标系。--><include file="$(find easy_handeye)/launch/calibrate.launch" ><arg name="namespace_prefix" value="$(arg namespace_prefix)" /><arg name="eye_on_hand" value="false" /><arg name="tracking_base_frame" value="camera_link" /><arg name="tracking_marker_frame" value="camera_marker" /><arg name="robot_base_frame" value="base_link" /><arg name="robot_effector_frame" value="wrist_3_link" /><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>

roslaunch easy_handeye ur5_realsense_handeyecalibration.launch若显示无启动文件,则source一下。

其中界面①部分显示了UR5机械臂当前姿态和各坐标系的初始位姿;

界面②部分显示的是相机下ArUco标签码坐标系camera_mark的识别情况,红色为x轴,绿色为y轴,蓝色为z轴;

界面③部分规划机械臂位姿,使相机运动到不同的位姿以进行多次图像采样。

具体标定步骤如下:

1放置好标定物ArUco标签码,启动UR5机械臂、相机和标定程序;

2点击图中界面③中的check starting pose确定UR5机械臂本姿态下是否能够满足标定条件;

3点击界面③中的next pose生成UR5机械臂下一位姿,接着点击plan显示绿色能够规划出从当前位姿到下一位姿的路径后,点击execute执行操作,驱动UR5机械臂运动下一位姿状态;

4若此刻界面②中能够识别出标定物ArUco标签码,则点击界面②中的take sample采样,重复步骤(3)和(4),直到全部采样完毕,如下图所示,有效采样到的数据共十二次;

5采样完成后,点击界面②中的computer对所采样的数据进行计算,即可得到相机坐标系camera_color_frame和UR5机械臂末端工具坐标系tool0之间其次变换矩阵,为四元数表示形式。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。