UR+RealSense手眼标定(eye-to-hand)
01 手眼标定的原理
基坐标系(base_tree
)和相机(camera_tree
)两个坐标系属于不同的tree,通过将标签贴到手上,相机识别出标签的position
和orention
,并通过easy_handeye
标定包得到tool0
(机械手),进一步得到相对于base
的位置关系。即子坐标系(camera_rgb_optical_frame
)到父坐标系(base_link
)之间的关系。
在之后如果摄像头识别到物体的位置(在camera坐标系下),即可通过transform(这种转换关系),转化为base(也就是机器人知道的自己的位置坐标系)坐标系下的位置,这样机器人就通过转化关系得到相机识别到的位置实际在空间中的位置。
对于手眼标定,场景主要有以下两种,
eye-to-hand,眼在手外。
这种场景下我们已知机械臂终端end_link
与base_link
、相机camera_link
与识别物体object_link
之间的关系;
需要求解camera_link
与base_link
之间的变换。eye-in-hand,眼在手上。
这种场景base_link
和机械臂各关节joint_link
、end_link
已经通过URDF发布了;
只需要求解camera_link
与end_link
之间的变换。
02 准备工作
所用系统及硬件版本:
- Ubuntu18.04(ROS Melodic)
- UR3机械臂(CB3.12)
- RealSense D435i
- 安装
ur功能包
(Universal_Robots_ROS_Driver
驱动) - 安装
realsense-ros
2.1 安装aruco_ros
cd ~/ur_ws/src
git clone -b melodic-devel https://github.com/pal-robotics/aruco_ros.git
cd ..
catkin_make
2.2 安装vision_visp / visp_hand2eye_calibration
cd ~/ur_ws/src
sudo apt-get install ros-melodic-visp
git clone -b melodic-devel https://github.com/lagadic/vision_visp.git
cd ..
catkin_make --pkg visp_hand2eye_calibration
catkin_make
2.3 安装easy_handeye
cd ~/ur_ws/src
git clone https://github.com/IFL-CAMP/easy_handeye
cd ..
catkin_make
03 眼在手外
3.1 修改标定 launch 文件
标定过程需启动ur3机械臂的相关节点
,realsense节点
,aruco节点
,easy_handeye节点
,可以写一个 launch 文件同时启动上述节点,也可以分别启动。
easy_handeye 包中给出了用一个 launch 文件实现的示例,在如下的目录中:/home/guyue/ur_ws/src/easy_handeye/docs/example_launch/ur5_kinect_calibration.launch
,这里只有ur5+kinect
的,ur3+realsense
的修改即可。
在ur5_kinect_calibration.launch
基础上进行修改:
复制launch文件
将launch
文件拷贝到easy_handeye
功能包的launch
目录中,并修改文件名字cd ~/ur_ws/src/easy_handeye/docs/example_launch cp ur5_kinect_calibration.launch ~/ur_ws/src/easy_handeye/easy_handeye/launch/ur3_eye_to_hand_calibration.launch
修改launch文件
修改launch
文件如下:
注意:realsense和ur机械臂最好分开启动,否则会有报错<launch><arg name="namespace_prefix" default="ur3_realsense_handeyecalibration" /><arg name="robot_ip" doc="The IP address of the UR3 robot" /><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="323" /><!-- 1. start the Realsense435 --><!--<include file="$(find realsense2_camera)/launch/rs_camera.launch" />--><!-- 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_frame"/><param name="camera_frame" value="camera_color_frame"/><param name="marker_frame" value="camera_marker" /></node><!-- 3. start the robot --><!--<include file="$(find ur_robot_driver)/launch/ur3_bringup.launch"><arg name="limited" value="true" /><arg name="robot_ip" value="192.168.56.10" /></include><include file="$(find ur3_moveit_config)/launch/ur3_moveit_planning_execution.launch"><arg name="limited" value="true" /></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="false" /><arg name="tracking_base_frame" value="camera_color_frame" /><arg name="tracking_marker_frame" value="camera_marker" /><arg name="robot_base_frame" value="base" /><arg name="robot_effector_frame" value="tool0_controller" /><arg name="freehand_robot_movement" value="false" /><arg name="robot_velocity_scaling" value="0.5" /><arg name="robot_acceleration_scaling" value="0.2" /></include></launch>
分析launch文件
这里主要是UR+RealSense手眼标定(eye-to-hand)相关推荐
- UR10机械臂+Realsense手眼标定
1 相机外参标定 首先,标定的原理是:基坐标系(base_tree)和相机(camera_tree)两个坐标系属于不同的tree,通过将标签贴到手上,相机识别出标签的position 和 orenti ...
- ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)下
** 1参考链接 ** (1)UR5.realsense手眼标定 (2)优遨机器人UR5与RealSense深度摄像头D435的手眼标定 (3)UR5.realsense手眼标定**** (4)标定所 ...
- 【机器人手眼标定AX=XB(eye to hand和eye in hand)及平面九点法标定】
一.背景 Calibration是机器人开发者永远的痛.虽然说方法说起来几十年前就有,但每一个要用摄像头的人都还是要经过一番痛苦的踩坑,没有轻轻松松拿来就效果好的包.其实人类不就是个手眼协调的先进&q ...
- Ubuntu18.04 + kinova joca2机械臂 + RealSense D435i深度相机进行eye to hand手眼标定
文章目录 前言 一.前期准备 1. RealSense D435i安装 2. Kinova-ROS安装 二.手眼标定环境配置 1. visip 2. aruco_ros 3. easy_handeye ...
- ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)上
Universal Robots(优傲机器人)公司是一家引领协作机器人全新细分市场的先驱企业,该公司成立于2005年,关注机器人的用户可操作性和灵活度,总部位于丹麦的欧登塞市,主要的机器人产品有:UR ...
- 机器人抓取(五)—— 手眼标定 hand eye calibration
1. 原理篇 参考:机器人手眼标定的基础理论分析 3D视觉之手眼标定 胡春旭:"手眼"结合完成物体抓取应用 在实际应用中,我们通常需要将相机观察到的外界环境中物体的姿态从相机坐标系 ...
- (已修正精度 1mm左右)Realsense d435i深度相机+Aruco+棋盘格+OpenCV手眼标定全过程记录
文章目录 2023.5更新 ------------------下面为原文--------------------- 一.前期准备 1.1 手眼标定原理 1.2 Aruco返回位姿的原理 1.3 生成 ...
- UR机器人装箱姿态_UR10 RG2机械臂手臂+RealsenseZR300 机器人手眼标定 系列第四篇
UR10 RG2机械臂手臂+RealsenseZR300 机器人手眼标定 系列第四篇 发布时间:2018-09-18 17:43, 浏览次数:1180 , 标签: UR RG RealsenseZR ...
- UR3机械臂+Realsense D435+ROS手眼标定记录
UR3机械臂+Realsense D435+ROS手眼标定记录 前面一段时间,由于实验室工作安排,上手了UR3机械臂和Realsense D435深度相机,在手眼标定这一段真的是让人心累,断断续续折腾 ...
- 机器人抓取平台搭建记录(六):手眼标定--眼在手上--Kinova Gen2 JACO2 七自由度机械臂--Realsense D435
吐槽一,手眼标定两个多月前就做好了,这篇文章也是两个多月前就写了,但当时不知出了什么差错,在我还没有写完想暂时保存一下草稿的时候,写的内容竟然没了小半.于是就拖到现在,拖到忘记了当时写作的思路,操作细 ...
最新文章
- 总结关于map的一些基本用法
- 想回家吗?先用腾讯刚上线的这个功能查一查!
- application context not configured for this file?
- Oozie 任务调度
- 计数在html怎么添加,在Go中显示html模板的计数
- C语言三路基数快排multikey quick sort算法(附完整源码)
- 嵩天-Python语言程序设计程序题--第一周:Python基本语法元素
- Busy Dialog init - hashchange will call BusyDialog.open - flower
- 《SAS编程与数据挖掘商业案例》学习笔记之十二
- python将图像转换为8位单通道_使用Python将图片转换为单通道黑白图片
- LMS Virtual Lab 流固模态分析
- linux 如何取执行一个脚本5000次,【shell笔记脚本】嵌套、控制循环以及处理循环输出...
- leetcode--single number.
- C语言为运算表达式添加括号,读书笔记-c语言-运算符与表达式
- Python源码剖析笔记3-Python执行原理初探
- Python3 文件的各种操作
- Office - 0x4004F00C解决方法
- Requests 库 | 不可胜数的 Python 第三方库
- uniapp 返回页面刷新/小程序获取用户信息之后登录和退出登录
- 架构设计:网络附属存储NAS,块存储EBS与对象存储OSS的比较以及选用
热门文章
- 精选JAVA毕业设计83套——源码+论文完整资源
- linux怎么启动打印服务,Linux打印服务管理
- 乌班图 修改ip_unbuntu(乌班图)虚拟机修改ip地址NAT模式
- dependencyManagement 失效
- java list对象转json_java中List对象转换为JSON对象
- 【Unity3D插件】VOXL插件分享《多人沙盒游戏插件》
- [Android] [逆向工程] 安卓逆向入门篇
- ABAQUS-学习笔记
- 《简明Python教程》学习笔记
- 利尔达蓝牙模组LSD4BT-E66ALSP001使用透传与手机APP(LightBlue)通讯测试
- UR10机械臂+Realsense手眼标定