【学习笔记】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的更新版本的使用和实际使用的补充说明

猜你喜欢

转载自blog.csdn.net/weixin_44362628/article/details/123151484
今日推荐