AprilTag的使用、相关问题及解决方法

这篇具有很好参考价值的文章主要介绍了AprilTag的使用、相关问题及解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用棋盘格标定相机

安装标定功能包

sudo apt-get install ros-noetic-camera-calibration

下载棋盘格
http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration?action=AttachFile&do=view&target=check-108.pdf

启动摄像头

roslaunch usb_cam usb_cam-test.launch

开始标定

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam

参数说明:

size:    棋盘内交叉点的个数,行*列
square:  一个格子的边长,单位是m
image:  订阅摄像头发布的图像话题(ROS topic)
camera: 寻找相应的设备相机名

上下左右前后移动摄像头,待calibrate有颜色,点击它,然后点击save,再点击commit,这时会自动保存标定文件。点击save后,标定文件会自动保存在/tmp路径下,文件名为calibrationdata.tar.gz。

一、标签生成

OpenMV下载
https://openmv.io/pages/download

sudo chmod +x openmv-ide-linux-x86_64-2.9.7.run
./openmv-ide-linux-x86_64-2.9.7.run

启动OpenMV,依次选择 工具-机器视觉-AprilTag生成器-TAG16H5 将图像保存下来。
将图像复制到word中,在word中指定图像的物理尺寸并打印。

二、安装 USB-CAM

  • ros安装(建议)
sudo apt install ros-noetic-usb-cam
  • 源码安装
cd catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git
cd ..
ctakin_make
source ./devel/setup.bash
  • 摄像头启动
roslaunch usb_cam usb_cam-test.launch

三、编译安装依赖库 apriltag

git clone https://github.com/AprilRobotics/apriltag.git
mkdir build
cd build
cmake ..
make
sudo make install

四、apriltag_ros 下载和编译

cd catkin_ws/src
git clone https://github.com/AprilRobotics/apriltag_ros.git
cd ..
catkin_make

五、apriltag_ros 配置(yaml文件使用空格缩进)

  • 修改apriltag_ros/apriltag_ros/config文件夹中,settings.yaml
tag_family:		'tag16h5'	# options: tagStandard52h13, tagStandard41h12, tag36h11, tag25h9, tag16h5, tagCustom48h12, tagCircle21h7, tagCircle49h12  #支持单一标签类型
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 (Tunable parameter with 2 being a good choice - values >=3 consume large amounts of memory. Choose the largest value possible.)
publish_tf:		true        # default: false	#发布tf坐标
  • 将apriltag_ros/launch/continuous_detection.launch中的以下几项修改为自己的相机
<arg name="camera_name" default="/usb_cam" />
<arg name="camera_frame" default="usb_cam" />
<arg name="image_topic" default="image_raw" />
  • 修改apriltag_ros/config/tags.yaml
standalone_tags:
 [
  {id: 0, size: 0.05},
  {id: 1, size: 0.05},
  {id: 2, size: 0.05},
  {id: 3, size: 0.05},
  {id: 4, size: 0.05},
  {id: 5, size: 0.05},
  {id: 6, size: 0.05},
  {id: 7, size: 0.05},
  {id: 8, size: 0.05},
  {id: 9, size: 0.05},
 ]

0.05m 是每个标签的边长

tag_bundles:
 [
  {
   name: 'my_bundle',
   layout:
    [
     {id: 0, size: 0.05, x: 0.0000, y: 0.0000, z: 0.0, qw: 1.0, qx: 0.0, qy: 0.0, qz: 0.0}                # id 对应于生成标签(二维码)的ID号,size对应标签的大小
     {id: 1, size: 0.05, x: 0.0000, y: 0.0000, z: 0.0, qw: 1.0, qx: 0.0, qy: 0.0, qz: 0.0}# 我选用的是22和45号标签
     {id: 2, size: 0.05, x: 0.0000, y: 0.0000, z: 0.0, qw: 1.0, qx: 0.0, qy: 0.0, qz: 0.0}# id 对应于生成标签(二维码)的ID号,size对应标签的大小
    ]
  }
 ]

六、启动

启动 rqt_image_view

rqt_image_view

rqt_image_view 中的话题选择 /tag_detectios_image。

启动 apriltag_ros

roslaunch apriltag_ros continuous_detection.launch

窗口打印结果

rostopic echo /tag_detections

rviz 显示结果

rosrun rviz rviz

在 rviz 界面中选择:
add-by topic-image
add-by display type-tf

相关问题及解决方法

  • 在图像中不存在 tag 的位置出现大量检测结果。

1.在 settings.yaml 中将图像分辨率调低可以减少误检测,但是会导致标签离得较远时检测不到。
2.在后续处理中将误检测移除。误检测通常不是正方形而是一个极细的长条,利用其这一特性,可以再后续处理中将误检测有效地剔除。

  • 未出现检测结果。

检查 settings.yaml 中 tag_family 是否与自己打印标签的类别一致。

参考

https://blog.csdn.net/whf7890/article/details/125820845
https://blog.csdn.net/bingda_robot/article/details/127960005
https://blog.csdn.net/manbushuizhong/article/details/123805464文章来源地址https://www.toymoban.com/news/detail-686338.html

到了这里,关于AprilTag的使用、相关问题及解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 高翔:《自动驾驶与机器人中的SLAM技术 》-Slam_in_autonomous_driving 编译过程中遇到的问题

    使用的环境是ubuntu20.04 问题1.安装g2o没有问题,不过在编译整个项目工程时候报错: ”openmp_mutex.h: 30:10: fatal error: g2o/config.h: No such file or directory“: 解决办法: 问题2. No rule to make target ’gmock’,needed by \\\'../bin/test_preintegration\\\' . stop src/ch4/CMakeFiles/test_preintegration.dir/all] Error 2:

    2024年02月03日
    浏览(43)
  • 冰达ROS机器人使用-实现slam建模、自主导航、避障

    1.在windows中下载好远程连接工具: xshell 、 puty 1 2.机器人有两种模式: 模式 说明 AP模式 机器人自己创建一个热点,电脑端连接该热点,实现局域网互通 WiFi模式 机器人和电脑同时连接一个路由器,实现局域网通信 ps:本文使用AP模式,因为用起来比较方便 3.在机器人AP模式下

    2023年04月08日
    浏览(46)
  • ROS-Melodic版本编译机器人源码报错问题及解决方法

    1.Could not find the required component ‘uuid_msgs’. sudo apt-get install ros-melodic-uuid-msgs 2.Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR) sudo apt-get install libsdl-dev 3.Could NOT find SDL_image (missing: SDL_IMAGE_LIBRARIES SDL_IMAGE_INCLUDE_DIRS) sudo apt-get install libsdl-image1.2-dev 4.Could not find a package configuration file

    2024年02月12日
    浏览(53)
  • 【ROS2机器人入门到实战】使用SLAM_TOOLBOX完成建图

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn SLAM 是通过传感器获取环境信息然后进行定位和建图。在 ROS 2 中,

    2024年02月06日
    浏览(94)
  • C++调用matlab编译动态库方法及相关问题解决

    matlab与C/C++混合编程——在Windows/Linux上调用Matlab编译的动态库文件 1.1.1、功能 把matlab代码编译成动态库,C++调用matlab生成的动态库 1.1.2、参考链接 C++ Dll导出及python调用C++ DLL 1.1.3、matlab编译动态库方法 1、切换到“App”菜单; 2、选择下拉框,在下拉框中输入lib进行筛选;

    2024年02月01日
    浏览(41)
  • ROS2下使用TurtleBot3-->SLAM导航(仿真)RVIZ加载不出机器人模型

    在使用台式机进行仿真时,大部分例程很顺利,但在SLAM导航时,在RVIZ中却一直加载不出机器人模型,点击Navigation2 Goal选择目标点进行导航时,无响应。 启动后在RVIZ2和终端看到一个错误 按照官网的指令试了多次,一直无法加载,在网上赵的解决方案都是修改RVIZ里的各种设

    2024年02月09日
    浏览(54)
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查的相关问题及解决方法

    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入

    2024年02月11日
    浏览(61)
  • FANUC机器人作为EthernetIP通信从站的相关配置方法

    基本介绍: 前提条件: 软件部分: 硬件部分:

    2024年02月09日
    浏览(50)
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查的相关问题及解决方法2.0

    开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监

    2024年02月09日
    浏览(44)
  • 【技术】视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查相关问题及解决方法2.0

    开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多路视频流,也能支持视频定时轮播。视频监

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包