手眼标定「Realsense+大象机器人」

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

大家好,欢迎来到IT知识分享网。

踩坑

手眼标定的算法网上是比较多的,但是很多都不好用。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

手眼标定「Realsense+大象机器人」

手眼标定「Realsense+大象机器人」

2.3启动手眼标定程序

修改src/handeye-calib/launch/online/online_hand_on_eye_calib.launch中的参数后,运行:

手眼标定「Realsense+大象机器人」

roslaunch handeye-calib online_hand_on_eye_calib.launch

3.标定精度

相机与link5之间的坐标变化才是不变的

眼在手上的时候,板子与基座之间的变化是固定的,因此可以看他们的标准差来判断是否精确。std预计需要0.005以下才行

aruco码隔的近效果好,因此尽量使相机与二维码近一点,可以使用较小的二维码

多个角度拍摄

总结:多角度,小距离。(上下左右,左上,右上,左下,右下。)每个位置拍摄两组或者三组(末端尽量不动,其他关节进行组合)。效果还行,如下:

手眼标定「Realsense+大象机器人」

手眼标定「Realsense+大象机器人」

其他:

打开rviz可以清楚的看到有几个坐标及名称还有tf树之间坐标的关系(大象机器人是base..link6)

以下代码可以查看坐标之间的变化矩阵:rosrun tf tf_echo base link5

XYZ—红、绿、蓝色(rviz中)

numpy.linalg.LinAlgError: Eigenvalues did not converge(这个报错是因为自己拍摄的拍摄的照片以及数据存在很大问题)

眼在手上可以看base->marker的标准差(std),越稳定越好

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/88111.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信