全站首页设为首页收藏本站

外链之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

社区广播台

    查看: 4|回复: 0
    打印 上一主题 下一主题

    [昌平一中/二中/三中] 从零实现移动机器人二维码识别与跟踪

    [复制链接]
    跳转到指定楼层
    楼主
    发表于 1 小时前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

      在我们的生活中二维码运用广泛,比如说收款码、健康码、共享单车等等。二维码在机器人的世界中又能起到什么作用呢?网址生成二维码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

      从实现效果中可以看出,二维码识别效果很好,没有出现漏检的情况,而且二维码所携带的位姿信息比较全,可以很好地应用到需要位置标定的项目当中去。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 分享分享
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表