apriltag_ros简单上手

0 平台及准备

系统ubuntu18.04 ROS-melodic以及相机。本文使用普通的USB相机,提前对USB相机进行标定,获得相机的内外参。
具体步骤可参考利用ROS camera_calibration对usb相机标定

1 下载apriltag_ros

mkdir -p ~/apriltag_ws/src                                                                     # 建立一个新的工作空间 
cd ~/apriltag_ws/src 
git clone https://github.com/AprilRobotics/apriltag.git           # 克隆Apriltag
git clone https://github.com/AprilRobotics/apriltag_ros.git  # 克隆Apriltag ROS wrapper
cd ~/apriltag_ws 
rosdep install --from-paths src --ignore-src -r -y                          # 安装缺少的包
catkin build                                                                                                  # 编译功能包 (或使用catkin_make_isolated)

2 使用apriltag

2.1 修改settings.yaml文件,采用何种apriltags

tag36h11比较常用。免积分下载地址

tag_family:        'tag36h11' # options: tagStandard52h13, tagStandard41h12, tag36h11, tag25h9, tag16h5, tagCustom48h12, tagCircle21h7, tagCircle49h12  
#支持单一标签类型,一般用’tag36h11’。
tag_threads:       2                # default: 2       
 # 设置Tag_Threads允许核心APRILTAG 2算法的某些部分运行并行计算。 典型的多线程优点和限制适用
tag_decimate:      1.0          # default: 1.0       
#减小图像分辨率
tag_blur:          0.0                 # default: 0.0      
 #设置tag_blur> 0模糊图像,tag_blur  < 0锐化图像
tag_refine_edges:  1          # default: 1        
 #增强了计算精度,但消耗了算力
tag_debug:         0                # default: 0        
 #1为保存中间图像到~/.ros
max_hamming_dist:  2    # default: 2 
可调参数为2是一个不错的选择 - 值> = 3消耗大量内存。选择最大的价值。
publish_tf:        true            # default: false    
 #发布tf坐标

2.2 修改tags.yaml文件

主要是自己的AprilTag标签的大小。

standalone_tags:
  [
    {id: 0, size: 0.05},  
  
  ]
   tag_bundles:
  [
  ]

tandalone_tags下边设置的是单一的标签,也就是每个标签都是独立的一个,可以设置多个。ID为标签的ID号,尺寸为标签的边长单位为米,名称为该标签所对应的frame名字,会显示在发布的标签tf frame中。
tag_bundles下边设置的是位姿相对固定的一组标签,除了ID号尺寸外还可以设置标签之间的相对位姿。

2.3 启动apriltag

1 打开相机

roslaunch usb_cam usb_cam-test.launch

2 打开apriltag

roslaunch apriltag_ros continuous_detection.launch

注意修改continuous_detection.launch文件
相机、图片的话题要与相机发布的话题一致。
使用rostopic list 查看话题

arg name=“camera_name” default=“/usb_cam” # 摄像头话题的名称
arg name=“image_topic” default=“image_raw”# 图片的话题

3 查看apriltag相对于相机的位姿

rostopic echo /tag_detections

运行这条指令需要提前source一下。例如source ~/apriltag_ws/devel/setup.bash
参考
1 ROS 摄像头校准与Apriltag标签使用
2ROS学习笔记(实践二)–AprilTag_ros包的使用

你可能感兴趣的:(计算机视觉)