【学习笔记】AR码(二维码)识别
【使用背景】
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码(二维码)识别相关推荐
- OpenCV AR之二维码叠加视频
OpenCV AR之二维码叠加视频 前言 最近心血来潮,想着用OpenCV做一个AR的小应用,也是看知乎的回答,想到了识别二维码,然后在二维码上放视频,就花了大概两三天做出了这个小demo,完成度大概 ...
- android扫码二维码识别二维码
1. 快速集成扫码二维码,识别二维码功能.经过加工处理优化的,直接返回扫码结果字符串和图片的bitmap数据. 直接上代码: package com.xinxinchelian.myscanzxing ...
- JAVA 实现扫码二维码登录
最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...
- C(++) Websocket实现扫码二维码登录---GoEasy
最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...
- node.js 实现扫码二维码登录
最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要 ...
- h5 实现扫码二维码及条形码(js多种实现方式)
方式一. 只识别二维码 实现方式一 jsQR 个人预览页面网址只扫码二维码 GitHub jsQR inde.html <!DOCTYPE html> <html><he ...
- 活码二维码分流规则使用说明
MyCms 活码二维码工具简单来说就是一个固定的二维码入口,可以随时修改二维码背后显示的内容. 用户扫码后经过多种验证规则,根据不同条件进行分流,最终显示后台设置的内容. 活码分流规则介绍 活码分流就 ...
- 使用扫码枪扫码二维码并采集二维码信息
思路 一.购买可以扫码二维码的扫码枪(我这里采购的是 scanhome 高密版)也可以采购其他的扫码枪.扫码枪的原理其实就是识别二维码信息 然后 替代人工键盘输入将信息输入到 光标所在的输入框或者文件 ...
- STM32F407获取OV7670摄像头图像及上位机解码(一维码二维码)
STM32F407获取OV7670摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32F407对30万像素OV7670摄像头进行图像捕获,并通过串口将数据 ...
- STM32H750获取OV5640摄像头图像及上位机解码(一维码二维码)
STM32H750获取OV5640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对500万像素OV5640摄像头进行图像捕获,并通过串口将数 ...
最新文章
- AAAI2020 | SNERL:抛开mention级别的监督,实体链接、关系抽取我都行
- [Matlab] 线性卷积圆周卷积代码实现
- 看似简单的问题 静态方法和实例化方法的区别
- vue --- 使用中央事件总线(bus)实现跨组件通信
- 【Scrapy】Unsupported major.minor version 52.0 [duplicate]
- java基础—Map集合的常见方法操作(java集合八)
- 没有run窗口_使用 Terminator 在一个窗口中运行多个终端 | Linux 中国
- 潍坊学院c语言上机题库,参编学校_C语言程序设计上机指导与同步训练(刘迎春、张艳霞)_pdf_大学课件预览_高等教育资讯网...
- MATLAB卷积conv、conv2、convn详解
- ps考证是人改分的还是电脑
- ArcEingine——IRelationalOperator的Crosses与Overlaps
- html css做一个简历表,HTML table制做我的简历
- 百度地图API入门1-申请百度API key
- 3-Go并发编程与协程Goroutine
- 男人:别光着上身睡觉
- signal(SIGCHLD, SIG_IGN)和signal(SIGPIPE, SIG_IGN);
- C语言:账号登陆问题
- 通过xmail构建本地电子邮件测试环境
- 【光伏】基于战争策略算法WSO优化光伏模型附matlab代码
- 读研攻略(10)—三千字总结,要不要读博?