首页 > 其他分享 >ros +realsenseD435+大象Pro600手眼标定

ros +realsenseD435+大象Pro600手眼标定

时间:2022-11-23 18:01:46浏览次数:42  
标签:ROS launch realsenseD435 标定 相机 Pro600 坐标 calib ros

踩坑
手眼标定的算法网上是比较多的,但是很多都不好用。github上高赞的easy_handeye,试了一下,但是mycobot600没有提供moveit的配置,而我ROS基础不是很好,不太会修改示例代码。折腾了一段时间最终看到这个鱼香ROS,最终得到了不错的结果

1.配置
配置过程就不用说了,参考鱼香ROS
用深度相机的话需要安装深度相机的库github
需要控制机械臂还需要安装ROS库,参考博客
识别二维码需要安装aruco_ros
特别说明一些,鱼香ROS配置的时候,安装的opencv应该是pip3去安装的。配置过程可能有许多问题,百度解决即可

2.在线标定
用在线标定的方式比较简单,不用自己去配置姿态信息。

2.1启动相机
该launch文件已经把启动realsense的代码写入了,直接运行就好。

roslaunch handeye-calib aruco_start_realsense_sdk.launch
自己可以修改相机的参数,比如分辨率,帧率

<include file="$(find realsense2_camera)/launch/rs_camera.launch">
<arg name="color_width" value="640" />
<arg name="color_height" value="480" />
<arg name="enable_depth" value="false" />
<arg name="color_fps" value="6" />
</include>
其中分辨率不是随便改的,可以启动realsense-viewer查看相机支持的分辨率有哪些

realsense-viewer
2.2启动机械臂及通信
# 启动rviz
roslaunch mycobot_600 mycobot_600_slider.launch
# 启动通讯
rosrun mycobot_600 slider_600.py
Rviz中的坐标,可以看出,基底坐标是base,末端坐标是link6

 

2.3启动手眼标定程序
修改src/handeye-calib/launch/online/online_hand_on_eye_calib.launch中的参数后,运行:

 

roslaunch handeye-calib online_hand_on_eye_calib.launch
3.标定精度
相机与link5之间的坐标变化才是不变的
眼在手上的时候,板子与基座之间的变化是固定的,因此可以看他们的标准差来判断是否精确。std预计需要0.005以下才行
aruco码隔的近效果好,因此尽量使相机与二维码近一点,可以使用较小的二维码
多个角度拍摄
总结:多角度,小距离。(上下左右,左上,右上,左下,右下。)每个位置拍摄两组或者三组(末端尽量不动,其他关节进行组合)。效果还行,如下:

 

 

其他:
打开rviz可以清楚的看到有几个坐标及名称还有tf树之间坐标的关系(大象机器人是base..link6)
以下代码可以查看坐标之间的变化矩阵:rosrun tf tf_echo base link5
XYZ---红、绿、蓝色(rviz中)
numpy.linalg.LinAlgError: Eigenvalues did not converge(这个报错是因为自己拍摄的拍摄的照片以及数据存在很大问题)
眼在手上可以看base->marker的标准差(std),越稳定越好

标签:ROS,launch,realsenseD435,标定,相机,Pro600,坐标,calib,ros
From: https://www.cnblogs.com/bile/p/16919282.html

相关文章

  • ROS_C++_涉及的代数以及C++代码库
    基本线性代数库Ceres、Eigen、Sophus、G2O基本线性代数子程序,BasicLinearAlgebraSubprograms,是一个API标淮,用以规范发布基础线性代数操作的数值库Netlib用......
  • ROS的Fasttrack,可以极大的减少ROS的CPU使用率已经带宽!特别注意:如果开启了 fasttrack,si
    原文http://t.zoukankan.com/itfat-p-12936850.htmlhttps://wiki.mikrotik.com/wiki/Manual:IP/Fasttrack特别注意:如果开启了fasttrack,simplequeue将失效。需要两条......
  • ROS_C++_第三方库Eigen
    Eigen提供了快速的矩阵线性代数运算,矩阵、向量、旋转矩阵、变换矩阵。Eigen是纯头文件搭建成的库,使用时只需引入Eigen的头文件即可,不需要链接库文件target_link安装......
  • regexcrossword Hamlet篇
    一个练习正则表达式的网站,用类似数独的方式填写,但是规则是正则。从简单到难循序渐进,网址:https://regexcrossword.com偶尔访问不了基本的话,DoubleCross篇之前的做一遍,正......
  • 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
    1、需要在服务器安装AccessDatabaseEngine_2010_X64.exe驱动程序2、虽然金蝶安装程序目录是32位的,但是IIS的w3wp进程是64位,所以安装64位的AccessDatabaseEngine才有用3......
  • ROS_解析protobuf
    protobufProtobuf的数据结构定义的语法,以及如何编译proto文件,以及相关的主要读写proto文件结构中的API说明:读bin文件API是bin文件二进制形式,Prototxt文件是......
  • 遨博机械臂——末端工具ROS驱动
    文章目录​​知识目标​​​​1.机械臂末端工具(EOAT)​​​​2.电动夹爪​​​​3.气动吸盘​​​​参考​​知识目标学习机械臂常用末端工具构成;学习aubo机械臂安装电动......
  • 遨博机械臂URDF功能包ROS仿真
    文章目录​​知识目标​​​​1.机械臂URDF功能包文件结构​​​​2.URDF模型中的元素和参数​​​​3.任务描述​​​​3.1修订launch启动文件参数​​​​3.2URDF功能包......
  • Microstation V8i输出三维模型为3Dpdf格式
    在file->print,在对话框中PrinterandPaperSize选择Bentleydriver,点选右上角的Printto3D复选框。最后,点击打印。注意:有的pdf阅读器不一定支持3Dpdf的显示。 ......
  • ROS应用层通信协议解析
    参考:http://wiki.ros.org/ROS/Master_APIhttp://wiki.ros.org/ROS/ConnectionHeader说明ROS本质上就是一个松耦合的通信框架,通信模式包括:远程调用(service-client)、订阅......