AR Tag 在 ROS 中的使用
创始人
2025-05-28 17:43:41

本文简单介绍了 AR Tag 及其运用的场景,并介绍了其在 ROS 中的安装和使用。

文章目录

  • 什么是 AR Tag
  • AR Tag 的使用场景
  • 在 ROS 中的使用
    • 安装 ar_track_alvar
    • 标签的生成
  • 在 ROS 中的使用
    • 创建 launch 文件
    • launch 文件解析
    • rviz 展示效果
    • 在程序中使用
  • References

什么是 AR Tag

AR Tag 是一种用于增强现实(AR)应用中的视觉标记,用于跟踪和定位虚拟物体在现实世界中的位置。 AR Tag由黑白正方形图像表示,图像内部有黑色边框中的某些图案。它与我们经常用到的二维码长得类似,原理其实也一样,但其编码系统和二维码有很大的区别。

AR Tag 要用于做位姿识别,即通过相机图像识别 AR Tag 的位置和姿态,从而实现对AR标记物的定位。与二维码相比,AR Tag 的图案相对简单,仅包含黑白色块以及一些辅助图形,编码信息相对较少,因此其图案识别度更高。相比之下,二维码的图案复杂度较高,需要包含大量的信息,这会使得二维码在图像失真或光线不足等情况下更难以识别。

AR Tag 的类型有很多,他们使用不同的标签系统,每种类型各有优缺,下面展示了几种常见的图案。

请添加图片描述

AR Tag 的使用场景

AR Tag 是一种低成本的位姿识别方式,因为它只需要使用相机和打印的标记(AR Tag)来进行实时跟踪,而不需要使用昂贵的传感器和硬件设备。另外,其算法实现也比其他传感器技术简单得多,所以可以快速而准确地识别位姿。基于其在应用上的便捷,这使得 AR Tag 成为许多实际场景的理想选择,比如:机器人导航、物体跟踪、增强现实和其他计算机视觉任务。

请添加图片描述

在 ROS 中的使用

通过前面的介绍,我们知道 AR Tag 是一种低成本、高精度的位姿识别方式。当然,这也使得它广泛地应用于各种机器人应用场景中,提高机器人的感知和控制能力,从而实现更多的机器人应用。

安装 ar_track_alvar

在 ROS 中使用 AR Tag 我们需要安装 ar_track_alvar 包,该软件包是一个 ROS 封装 Alvar 的开源 AR 标记跟踪库。

ar_track_alvar 有四个主要功能:

  • 生成不同大小、分辨率和数据的 AR Tag
  • 识别和跟踪单个 AR Tag,可以选择与 kinect 深度数据集成获得更好的位姿识别效果
  • 识别和跟踪由多个 AR Tag 组成的 “捆绑包”。以此可以获得更稳定的位姿识别、提高遮挡鲁棒性以及对多边物体的跟踪效果。
  • 使用相机图像自动计算“捆绑包”中 AR Tag 之间的空间关系

请添加图片描述

安装 ar_track_alvar 可以使用下面的命令:

sudo apt-get install ros-melodic-ar-track-alvar

注意:这里的 melodic 代表了你的 ROS 版本,这里使用的是 ROS1 的 Melodic Morenia。目前,ar_track_alvar 只支持ROS 1版本,并没有官方的 ROS2 版本。如果想在 ROS2 中使用ar_track_alvar,可能需要自己进行一些修改和适配。

标签的生成

ar_track_alvar 包安装好后,就可以使用其提供的生成工具进行标签的生成了。一般常用的为数字编码的标签,其图案简单(也是相对的,数字0-9),可识别度相对较高:

rosrun ar_track_alvar createMarker 9

使用上面的命令即可在当前目录生成数字标签,9是你要生成的数字编号,可选范围为 0-65535。

当然也是可以使用字符串的,使用参数-1后跟需要生成的字符串即可:

rosrun ar_track_alvar createMarker -1 "bottle"

以下是几个生成的标签示例:

请添加图片描述

在 ROS 中的使用

创建 launch 文件

我们这里需要使用深度摄像头,示例使用的是奥比中光的 gemini,需要编译安装好 ros_astra_camera 包,下面的测试 launch 中直接引用深度摄像头的启动包。


launch 文件解析

上面的 launch 文件主要为四个部分:

  1. 定义坐标转换
  2. 配置节点参数
  3. 开启摄像头

首先我们需要定义摄像头的位置,演示示例的摄像机是安装的机器人身上的,所以我们使用了 static_transform_publisher 发布了一个静态坐标转换,指定 camera_link,用于表示相机的位置和方向。使用TF(Transformation)库可以将坐标系之间的变换关系(transform)发布到ROS中,从而可以方便地进行相机的姿态控制和图像处理等操作。指定 camera_link 位姿时,我们使用的是 base_footprint ,其为机器人在地面上的投影位置,一般选择机器人中心。static_transform_publisher 的参数中我们定义了 camera_link 在空间的位置,是在 base_footprint 的前方 34cm 高 15cm 处。

配置 individualMarkers 的节点参数主要是定义 marker_size 黑色方块一侧的宽度,这里使用的单位是厘米,你可以在打印出 AR Tag 后进行测量填入。max_new_marker_errormax_track_error 是识别上的一些参数,分别表示在不确定的情况下检测到新标记的阈值和跟踪误差多少时认为标签消失,调整这些参数可以改变识别和跟踪效果,这里我们使用官方示例中的参考值。

另外,我们还需要配置一些摄像机图像数据相关的话题,cam_image_topic 深度摄像机点云数据,cam_info_topic 相机校准参数的主题名称,以便图像可以被校正,output_frame 发布的AR标签的笛卡尔坐标相对于哪个位置。

rviz 展示效果

启动写好的 launch 后,我们就可以打开 rviz 来查看 AR Tag 的识别效果了。启动 rviz 后,我们首先修改 Global Option 的 Fixed Frame 为 base_footprint

请添加图片描述

接下来添加 TF 和 Marker 即可在界面中看到识别到的 AR Tag 了。在实际应用中,选择简单易识别的图案效果会更好,简单来说使用数字小的ID会更易识别。这其实取决于多个因素,如标签的大小,分辨率,摄像头的类型,光照条件等。

请添加图片描述

如上图所示,我们可以看到,识别出来的标签 ar_marker_6 准确地显示在空间中。

在程序中使用

在程序中使用我们需要订阅 /ar_pose_marker 话题,其数据类型为 AlvarMarkers ,其数据格式如下:

Header header
uint32 id
uint32 confidence
geometry_msgs/PoseStamped pose
  • id:标签的ID号
  • confidence:标签识别的置信度
  • pose:标签的姿态

以下是一个简单的 Python 示例:

# 订阅 ar_pose_marker 话题,数据类型为 AlvarMarkers ,回调 artag_sign
rospy.Subscriber("/ar_pose_marker", AlvarMarkers, artag_sign )

在回调中根据实际需求进行消息处理,如 marker.id 判断标签ID,或是根据 marker.pose 进行距离和姿态的计算:

def artag_sign(msg):try:if len(msg.markers) < 1:return# 使用第一个检测到的标签marker = msg.markers[0]# 可以根据需求进行业务处理except:return

References

《AR Tags and their Applications in Computer Vision Tasks》

ar_track_alvar

QualiaT/ar_track_alvar

launch 参考

相关内容

热门资讯

股票行情快报:中成股份(000... 证券之星消息,截至2025年6月20日收盘,中成股份(000151)报收于11.88元,上涨0.51...
Voi首席执行官表示愿意收购B... 共享微出行初创公司Voi正在寻求收购机会。首席执行官Fredrik Hjelm的收购愿望清单上就有B...
企业出海:从价格战到价值战 企... 本文来自微信公众号:王智远,作者:王智远,原文标题:《聊聊4个出海中最常见误解》,题图来自:视觉中国...
知名车企“员工贷款持股,公司估... 2025.06.21本文字数:1537,阅读时长大约3分钟作者 |第一财经 黄琳(←戳链接查看争议内...
1800亿小红书,放弃大促 小... 来源:视觉中国记者丨李惠琳 编辑丨谭璐打开城门后,小红书的电商业务提速。6月,小红书新推出一个名为“...
小包裹里的消费新动向——“61... 作为一年一度重要的促消费节点,“618”无疑是消费市场新动向的重要风向标。 今年5月中旬,京东、淘宝...
巴奴 IPO 三大猜想 01 破发魔咒? 最近港股市场有个玄学,新股破发率比国足赢球概率低,尤其是消费股。 除绿茶外,蜜雪、...
国补不能成为套利游戏 大学生的“国补”名额,被“黄牛”盯上了。据澎湃新闻报道,近日,有在校大学生反映,有“黄牛”以代购赚钱...
全面取消参保户籍限制,谁都可以... 全面取消参保户籍限制,并不是可以随意在任何地方交社保。前几天,在中央发布的一份文件中,再次提到了全面...
红豆股份:控股股东红豆集团所持... 新京报贝壳财经讯 6月20日,红豆股份公告,公司控股股东红豆集团有限公司持有本公司股份13.53亿股...
海航控股收购天羽飞训遭问询,被... 新京报贝壳财经讯(记者王真真)6月20日,新京报贝壳财经记者注意到,海航控股收购海南天羽飞行训练有限...
新进展!国信证券收购万和证券获... 6月19日晚,国信证券发布公告称,公司收购万和证券96.08%股权项目已获深交所并购重组委审核通过。...
这些股遭机构大幅净卖出 数据是个宝 数据宝 投资少烦恼 今日(6月20日),市场全天震荡调整,全市场成交额1.09万亿元,较...
全球最大氢能燃料电池矿卡首秀!... 6月18日,2025国际氢能与燃料电池汽车大会暨展览会开幕。作为全球领先的氢能综合解决方案提供商,氢...
原油突发跳水!伊朗核谈判希望重... 随着中东时局变化,原油市场高位大震荡。 周五晚间,美、布两油突然短线大跳水。 截至发稿,布伦特原油期...
光伏黑马的债务困局:双良节能资... 本文来源:时代商业研究院 作者:陈佳鑫来源|时代商业研究院作者|陈佳鑫编辑|韩迅光伏产品价格持续低迷...
君实生物H股年涨超100%却高... 本报(chinatimes.net.cn)记者于娜 见习记者 赵文娟 北京报道近日,君实生物(688...
YU7上市前夕,小米“砸”6.... 本报(chinatimes.net.cn)记者温冲 于建平 北京报道6月19日,北京经济技术开发区开...
这个618,京东请来上万数字员... 撰文丨潘几鹤 魏知“这款单肩斜挎小方包,白色和金属色的碰撞,有质感,手感超好,亮点是这里的金属扣设计...
金科股份:投资人已累计支付19... 6月20日,*ST金科(金科地产集团股份有限公司,000656.SZ)披露关于公司重整事项进展的公告...
女教授在清华被砸身亡,涉事公司... 据媒体报道,6月15日17时许,为学校提供园林绿化养护服务的校外企业于校内焊接馆附近违规进行枯树移除...
金丰来:降息预期降温 金价维持... 6月20日,金丰来表示,美联储在最新利率会议中维持基准利率在4.25%–4.50%不变,并继续暗示年...
秦氏金升:6.20伦敦金多空转... 周五(6月20日)欧盘时段,现货黄金震荡偏弱运行,今日黄金价格从日高3370回落近20美元,一度跌至...
北京企业数据填报“一件事”改革... 北京市市场监管局6月19日发布消息称,北京今年推行企业数据填报“一件事”改革以来,惠及29.9万户经...
230万天价风波,解构祖母绿耳... 前段时间某女明星天价耳环的事闹得沸沸扬扬。一对疑似高级奢侈品牌,且公价高达230万元的祖母绿耳环,不...
茅台“霸榜”13年:4892亿... 6月18日,茅台以4892.08亿元的品牌价值,连续第13年蝉联《中国500最具价值品牌》食品饮料行...
征信已经成了最大的笑话 征信变... 订阅 快刀财经 ▲ 做您的私人商学院信用贫困的恶性循环。作者 :大橘666来源:大橘创业说(ID:L...
发千万年薪的华大北斗上市,比亚... 历时三年的曲折上市路。作者|王涛编辑|刘钦文一辆汽车在高速行驶过程中,一点微小误差都有造成巨大风险的...
后军备竞赛时代的AI公司启示录... AI领域从来不缺乏传奇故事。不管是2023年ChatGPT轰动全球引发资本与从业者的AI热情,还是2...