【使用背景】

ROS1 20.04 noetic

深度摄像头:Intel RealSense Depth Camera D435

【安装ar_track_alver功能包】

功能包从GitHub - machinekoder/ar_track_alvar at noetic-devel 上git下来,注意存放的位置,cd到工作空间后进行编译

catkin_make

【创建AR码】

ar_track_alver功能包提供生成AR码的功能,首先cd到ar_track_alvar-noetic-devel功能包下,使用以下命令创建相应标号的二维码标签:

rosrun ar_track_alvar createMarker AR_ID

其中AR_ID创建AR码任意数字的标号,例如:

rosrun ar_track_alvar createMarker 0

创建了一个标号为0的AR码标签图片(测试发现标号范围不止古月所说的0到65535,65535标号后的AR码也能够生成),命名为MarkerData_0.png,放置到终端当前位置

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

rosrun ar_track_alvar createMarker

有兴趣的朋友可以进行更多的配置,生成AR码后打印出来方便之后进行识别

【深度摄像头识别AR码】

【修改launch文件】

以ar-track-alver功能包launch文件中的pr2_indiv_no_kinect.launch作为蓝本,修改参数设置,重命名为ar_track_camera.launch

主要进行以下几点修改:

1)添加world与camera之间的TF坐标转换

2)检测的代码使用individualMarkersNoKinect(若想使用其他检测代码,可参考ar_track_alver包下的node文件夹),修改订阅图像数据的话题名(若不清楚相应话题名,可启动摄像头后,使用rostopic list来查看),还有实际使用的AR码大小尺寸,单位为厘米

3)rviz:在启动识别程序后,新终端中启动rviz,可根据下文订阅的话题名进行配置,保存后修改launch文件中的路径

【启动识别程序】

1) 首先启动摄像头

roslaunch camera_driver_transfer d435.launch 

2)启动刚刚编写好的launch文件

roslaunch ar_track_alvar ar_track_camera.launch

成功效果如图:

接下来介绍一下我的rviz配置:

a)Fixed Frame:选择world

b)camera:订阅/camera/color/image_raw topic

c)marker:在Displays窗口左下角选择add,添加marker

在marker中选择话题/visualization_marker

如此,应该就能看见AR码显示在图像中,并且能够看到AR码的位姿状态

同时,我们可以使用ROS命令查看AR话题中的信息

使用rostopic info 和rostopic echo 分别查看

【感谢】

感谢古月老师《ROS机器人开发实践》

本文更多的是对古月老师对于ar_track_alver的更新版本的使用和实际使用的补充说明

【学习笔记】AR码(二维码)识别相关推荐

  1. OpenCV AR之二维码叠加视频

    OpenCV AR之二维码叠加视频 前言 最近心血来潮,想着用OpenCV做一个AR的小应用,也是看知乎的回答,想到了识别二维码,然后在二维码上放视频,就花了大概两三天做出了这个小demo,完成度大概 ...

  2. android扫码二维码识别二维码

    1. 快速集成扫码二维码,识别二维码功能.经过加工处理优化的,直接返回扫码结果字符串和图片的bitmap数据. 直接上代码: package com.xinxinchelian.myscanzxing ...

  3. JAVA 实现扫码二维码登录

    最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...

  4. C(++) Websocket实现扫码二维码登录---GoEasy

    最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...

  5. node.js 实现扫码二维码登录

    最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...

  6. h5 实现扫码二维码及条形码(js多种实现方式)

    方式一. 只识别二维码 实现方式一 jsQR 个人预览页面网址只扫码二维码 GitHub jsQR inde.html <!DOCTYPE html> <html><he ...

  7. 活码二维码分流规则使用说明

    MyCms 活码二维码工具简单来说就是一个固定的二维码入口,可以随时修改二维码背后显示的内容. 用户扫码后经过多种验证规则,根据不同条件进行分流,最终显示后台设置的内容. 活码分流规则介绍 活码分流就 ...

  8. 使用扫码枪扫码二维码并采集二维码信息

    思路 一.购买可以扫码二维码的扫码枪(我这里采购的是 scanhome 高密版)也可以采购其他的扫码枪.扫码枪的原理其实就是识别二维码信息 然后 替代人工键盘输入将信息输入到 光标所在的输入框或者文件 ...

  9. STM32F407获取OV7670摄像头图像及上位机解码(一维码二维码)

    STM32F407获取OV7670摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32F407对30万像素OV7670摄像头进行图像捕获,并通过串口将数据 ...

  10. STM32H750获取OV5640摄像头图像及上位机解码(一维码二维码)

    STM32H750获取OV5640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对500万像素OV5640摄像头进行图像捕获,并通过串口将数 ...

最新文章

  1. AAAI2020 | SNERL:抛开mention级别的监督,实体链接、关系抽取我都行
  2. [Matlab] 线性卷积圆周卷积代码实现
  3. 看似简单的问题 静态方法和实例化方法的区别
  4. vue --- 使用中央事件总线(bus)实现跨组件通信
  5. 【Scrapy】Unsupported major.minor version 52.0 [duplicate]
  6. java基础—Map集合的常见方法操作(java集合八)
  7. 没有run窗口_使用 Terminator 在一个窗口中运行多个终端 | Linux 中国
  8. 潍坊学院c语言上机题库,参编学校_C语言程序设计上机指导与同步训练(刘迎春、张艳霞)_pdf_大学课件预览_高等教育资讯网...
  9. MATLAB卷积conv、conv2、convn详解
  10. ps考证是人改分的还是电脑
  11. ArcEingine——IRelationalOperator的Crosses与Overlaps
  12. html css做一个简历表,HTML table制做我的简历
  13. 百度地图API入门1-申请百度API key
  14. 3-Go并发编程与协程Goroutine
  15. 男人:别光着上身睡觉
  16. signal(SIGCHLD, SIG_IGN)和signal(SIGPIPE, SIG_IGN);
  17. C语言:账号登陆问题
  18. 通过xmail构建本地电子邮件测试环境
  19. 【光伏】基于战争策略算法WSO优化光伏模型附matlab代码
  20. 读研攻略(10)—三千字总结,要不要读博?

热门文章

  1. 计算机硕士陷两难困境!考研难就业也难
  2. 1.2线性代数-行列式的性质
  3. 快速了解unity的IL2CPP
  4. 广度优先算法解决8数码问题【c++】
  5. pygal绘制图表字体大小设置
  6. layer 弹出层设置圆角
  7. 雄起 | 这就是狮吼功吗?谁人打的太极拳?
  8. 像希望别人怎样对你那样对待别人
  9. (Nginx和PHP下)URL重写,TP实现URL重写
  10. TOX ZP 20/000-ZP20/000