• 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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    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坐标
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2.2 修改tags.yaml文件

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

    standalone_tags:
      [
        {id: 0, size: 0.05},  
      
      ]
       tag_bundles:
      [
      ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    2.3 启动apriltag

    1 打开相机

    roslaunch usb_cam usb_cam-test.launch
    
    • 1

    2 打开apriltag

    roslaunch apriltag_ros continuous_detection.launch
    
    • 1

    注意修改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
      
      • 1

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

    • 相关阅读:
      【Spark NLP】第 8 章:使用 Keras 进行序列建模
      对卡巴斯基发现的一个将shellcode写入evenlog的植入物的复现
      中级软件设计师考试(软考中级)网络与信息安全基础
      reportlab 生成pdf文件 (python)
      批量PDF转HTML:高效管理与优化文档格式
      对京东云鼎的学习笔记
      Android开发基础——Kotlin:高阶函数
      Agri-Net最短网络
      华为昇腾开发板共享Windows网络上网的方法
      基于javaweb+mysql数据库实现的学生选课管理系统项目源代码
    • 原文地址:https://blog.csdn.net/qq_39979317/article/details/125528324