Dobot magician机械臂抓取实战---手眼标定(7)

本文详细介绍了如何在Ubuntu系统上安装IntelRealsenseD435i深度相机驱动,包括升级软件包、添加Realsense存储库、安装SDK和ROS包。此外,还介绍了如何使用aruco_ros进行标记识别,以及如何使用easy_handeye进行手眼标定,包括常见问题的解决方案。

1、安装相机的驱动

我们使用的是Intel Realsense D435i深度相机

安装D435I相关的驱动

1.注册服务器的公钥
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
2.将服务器添加到存储库列表中
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
3.安装SDK2
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils

4.ROS包安装
sudo apt-get install ros-$ROS_DISTRO-realsense2-camera
sudo apt-get install ros-$ROS_DISTRO-realsense2-description

2、aruco_ros

1、首先下载aruco_ros功能包:https://github.com/pal-robotics/aruco_ros2

2、打印Marker标签:Online ArUco markers generator

Dictionary 一定要选 Original ArUco ​

Marker ID 和 Marker size 自选,在 launch 文件中做相应的修改

Marker ID:582,Marker size:50mm) ​

打印时,要选择原始大小,否则要测量一下打印出来的真实大小

3、配置aruco_ros 的 launch 文件

在vscode中打开single_realsense.launch文件

markerId:使用的 Marker 标签的 ID,这里在准备时打印的 Marker 标签 ID 为 582

markerSize:Marker 标签的实际大小,单位为 m,这里在准备时打印的 Marker 标签 实际大小为 5 厘米 即 0.05m

ref_frame:参考坐标系名称,这里选择 Realsense 的 camera_color_frame 作为参考坐 标系

将 /camera_info 重 映 射 为 对 应 Realsense 实 际 发 布 的 相 应 的 Topic 即 /camera/color/camera_info

将 /image 重 映 射 为 对 应 Realsense 实 际 发 布 的 相 应 的 Topic 即 /camera/color/image_raw camera_frame:相机坐标系,修改为实际的相机坐标系 camera_color_frame

3、easy_handeye 配置

easy_handeye 是用于手眼标定的功能包之一,借助它可以实现眼在手上和眼在手外的手 眼 标定,在这里我们使用 easy_handeye 完成眼在手上的手眼标定。

下载功能包:https://github.com/IFL-CAMP/easy_handeye

打开eye_in_hand_calibrate.launch

打开publish.launch

4、进行手眼标定

首先,我们启动机械臂及moveit!

第二、启动相机节点

roslaunch realsense2_camera rs_camera.launch

第三、启动arcuo ros节点,识别marker标签

roslaunch aruco_ros single_realsense.launch

第四、启动image_view节点,并将打印的标签放下面

rosrun image_view image_view image:=/aruco_single/result

最后启动 easy_handeye 手眼标定节点

roslaunch easy_handeye eye_in_hand_calibrate.launch

这里出现0/17时我们点击plan;然后点击Execute机械臂将会移动位姿,然后看image_view,是否在合适位姿,如果在合适位姿,点击Take Sample;最后点击Next Pose;如果没有出现,请调试机械臂位姿,并多次尝试。

点击Compute,点击save

到这里手眼标定就此结束

4、手眼标定常见的问题

问题1:

解决:pip install transforms3d -i https://pypi.tuna.tsinghua.edu.cn/simple

问题2:

解决:pip install tabulate -i https://pypi.tuna.tsinghua.edu.cn/simple

问题3:rviz中的aruco_marker_frame会出现在机械臂上方

解决:修改calibrate.launch文件中的args里面的坐标

  1. <group> 元素: 此元素定义了一组节点,这些节点在特定条件下会被执行。条件似乎是由 $(arg publish_dummy) 的值决定的。

  2. <node> 元素: 这是ROS中的一个节点元素,表示要运行一个节点。代码中有两个<node>元素,它们分别描述了两种不同的情况。

    第一个<node> 元素(在 if="$(arg publish_dummy)" 条件下):

    name="dummy_handeye":此节点的名称是 "dummy_handeye"。

    pkg="tf":使用 "tf" 软件包。

    type="static_transform_publisher":运行的节点类型是 "static_transform_publisher",这是一个用于发布静态坐标变换的节点类型。

    args="1 1 1 0 1.5 -3.14 $(arg robot_base_frame) $(arg tracking_base_frame) 10":这些参数是传递给节点的参数。描述了一个静态坐标变换,其中包括平移和旋转信息,以及一些参数值。

后面的平面抓取网络,我将不再写博客,后面我会将我学机械臂的所有笔记都会上传到博客。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没入&浅出

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值