2、AR二维码

2.1、概述

wiki:http://wiki.ros.org/ar_track_alvar/

源码:https://github.com/ros-perception/ar_track_alvar.git

功能包位置:~/yahboomcar_ws/src/yahboomcar_visual

ARTag(AR标签,AR是“增强现实”的意思)是一种基准标记系统,可以理解为其他物体一种参照物,看起来类似二维码,但其编码系统和二维码还是有很大区别,多用在相机标定,机器人定位,增强现实(AR)等应用场合,其中一个很重要的作用就是识别物体与相机的位姿关系。物体上可以贴上ARTag,或者在平面上贴上ARTag标签,用来标定相机。摄像头识别到ARTag后,可以算出标签在相机坐标中的位置与姿态。

ar_track_alvar 有 4 个主要功能:

Alvar 比 ARToolkit 更新、更先进,ARToolkit 一直是其他几个 ROS AR 标签包的基础。Alvar 具有自适应阈值处理以处理各种光照条件、基于光流的跟踪以实现更稳定的姿态估计,以及改进的标签识别方法,该方法不会随着标签数量的增加而显着减慢。

2.2、创建ARTag

2.2.1、安装软件包

melodic:

noetic系统没有命令来安装ar-track-alvar,只能通过源码安装:

image-20210902154213121

ar_track_alvar是一个开源的marker库,它提供了pr2+kinect的示例。该软件包的第一个用例是识别和跟踪(可能的)多个AR标签的姿势,每个AR标签都是单独考虑的。

2.2.2、创建AR二维码

image-20210902164850255

可以在这里输入【ID】和位置信息,输入【-1】结束。可生成一个或多个,布局自己设计。

image-20210902165006781

命令+参数直接生成数字图片;例如

11:数字是11的二维码。 -s:指定图像大小。 5:5x5的图片。33:数字是33的二维码。

2.3、ARTag识别

注意:启动摄像头时,需要加载相机标定文件,否则无法识别。

2.3.1、启动识别实例

image-20210902194448055

在rviz中,需要设置对应的相机话题名。

2.3.2、launch文件解析(以单目相机/树莓派CSI相机为例)

节点参数:

2.3.3、ar_track_alvar节点

话题名数据类型
/camera_info(sensor_msgs/CameraInfo)
/image_raw(sensor_msgs/Image)
话题名数据类型
/visualization_marker(visualization_msgs/Marker)
/ar_pose_marker(ar_track_alvar/AlvarMarkers)

单个二维码:相机坐标系 → AR标签坐标系

多个二维码:提供从相机坐标系到每个AR标签坐标系(命名为ar_marker_x)的变换,其中x是标记的ID号。

2.3.4、查看节点图

image-20210902204026973

2.3.5、查看tf树

image-20210902203913123

通过rviz,我们可以很直观的看到二维码和相机的相对位置。相机和世界坐标系是自己设定的。

2.3.6、查看输出信息

显示如下: