外链之家

标题: 分析:从零实现移动机器人二维码识别与跟踪 [打印本页]

作者: guozhiwei    时间: 昨天 19:40
标题: 分析:从零实现移动机器人二维码识别与跟踪

  在我们的生活中二维码运用广泛,比如说收款码、健康码、共享单车等等。二维码在机器人的世界中又能起到什么作用呢?网址生成二维码http://www.erweicaihong.cn/二维彩虹提供专业的二维码在线生成和美化。在线生成器可把文本、电子邮件、名片、网址、微信收款等信息一键制作自定义动态二维码图片,不仅能够随时让用户更改二维码背后的信息而无需更改二维码,而且能够让用户追踪最有价值的市场数据!


  1、二维码的由来

  我们首先了解了解二维码是什么。二维码又称二维条码,常见的二维码为QR(Quick Response)Code,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。

  二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形。

  在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。

  它具有条码技术的一些共性:每种码制有其特定的字符集,每个字符占有一定的宽度,具有一定的校验功能等。同时还具有对不同行的信息自动识别功能,以及处理图形旋转变化点。

  常见的几种二维码如下所示:

  2、机器人识别什么样的二维码

  ROS中提供了多种二维码识别的功能包,下面我们就选用其中一个功能包(ar_track_alvar)来介绍二维码识别与跟踪。

  ar_track_alvar是虚拟现实和增强现实的跨平台开源计算机视觉库( Linux、Windows和Mac OS等),由C++编写,同时提供C++的接口。

  ar_track_alvar可以用于识别并跟踪各个AR标签的姿态,并且可以选择整合深度相机的深度数据(在有深度相机可用时),以实现更好的姿态估计。

  ar_track_alvar也可以用于识别并跟踪由多个标签组成的“捆绑包”的状态。这样可以实现更稳定的姿态估计,对遮挡的鲁棒性以及对多边物体的跟踪。

  运行以下命令安装ROS的开源AR标签跟踪库ar_track_alvar。

  ar_track_alvar功能包还提供了二维码标签的生成功能,可以使用如下命令创建相应标号的二维码标签:

  其中AR_ID可以是从0到65535之间的任意数字的标号,例如:

  可以创建一个标号为0的二维码标签图片,命名为MarkerData_0.png,并保存在当前的路径下。保存的二维码如下图所示。

  createMarker工具还有很多参数可以进行配置,使用以下命令即可查看使用帮助:

  从上图可以看出,createMarker不仅可以使用数字标号生成二维码标签,也可以使用字符串、文件名、网址等,还可以使用-s参数设置生成二维码的尺寸。

  可以使用如下命令在robot_vision/config(自定义)文件夹中创建一系列二维码标签:

  生成的二维码如下图所示,最好将这些二维码打印出来粘贴到硬纸板上,以备使用。

  3、机器人识别二维码

  首先,复制ar-track-alvar功能包launch文件夹中的pr2_indiv.launch文件作为蓝本,针对使用的RealSense D435i相机进行修改,修改好的ar_code.launch文件如下所示:

  "camera_image_topic"和"camera_info_topic"需要设置为实际发布的相应话题名。

  运行以下命令启动相机并识别二维码:

  二维码识别效果如下图所示:

  可以看出,此launch文件可以同时识别一个或者多个二维码,图像中的二维码上会出现坐标轴,代表识别到的二维码姿态。

  识别到的二维码姿态通过"/ar_pose_marker"话题发布出来,如下图所示:

  4、移动机器人二维码识别与跟踪

  通过前面的launch文件可以获取识别到的二维码的位姿信息,再根据位姿信息设置相应的速度,即可实现移动机器人二维码识别与跟踪。代码如下所示:

  订阅机器人的位姿信息"/ar_pose_marker",然后根据二维码所在位置的x坐标和z坐标进行速度设置,然后通过话题"/cmd_vel"发布出来,以此实现机器人二维码识别与跟踪。

  理论分析完毕,让我们在LIMO移动机器人上面试试看效果怎么样吧。

  将识别和跟随整合到一起(ar_control.launch),即可实现二维码跟随运动。

  ar_control.launch如下所示:

  运行以下命令启动机器人底盘和相机实现二维码识别与跟踪:

  LIMO移动机器人二维码识别与跟踪的效果如下:

  https://v.qq.com/x/page/b3315z9fvj1.html?n_version=2021

  从实现效果中可以看出,二维码识别效果很好,没有出现漏检的情况,而且二维码所携带的位姿信息比较全,可以很好地应用到需要位置标定的项目当中去。




欢迎光临 外链之家 (http://bbs.tiquanlian.com/) Powered by Discuz! X3