使用Apriltags实现定位、评估定位精度的全流程记录

上周末做实验测试了Apriltags二维码的定位精度,现在将整体流程记录下来,便于后续参考与存档。
参考博客:
https://blog.csdn.net/qq_41839222/article/details/89606859
https://book.openmv.cc/image/apriltag.html

AprilTag是一个视觉基准系统,可用于AR,机器人定位和相机校准等视觉任务,能够计算相机在二维码坐标系下的精确位置与方向。简单来说,只要把Apriltag二维码贴到目标物体上,就可以在OpenMV上识别出这个标签的空间位置。

1、安装流程

官网链接:https://april.eecs.umich.edu/software/apriltag.html
源码地址:https://github.com/AprilRobotics/apriltag_ros

1)、安装环境:
当前我的电脑上已配置好的环境有ubuntu 16.04系统、Kinetic的ROS平台、Intel Realsense D435与Intel Realsense ZR300的相机驱动,包括相机的SDK库以及ROS包、同时已经编译了VINS-Monos的SLAM框架,并能够正常工作(承接本人的上一篇博客:搭建Vins-Mono环境与评估EuRoc定位精度、安装RealSense ZR300、D435驱动)。
Apriltags的安装非常简单,将源码放到工作空间路径下,如catkin_ws/src,然后编译即可。

2)、安装命令:

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

2、生成Apriltags二维码

1)、安装OpenMV:
下载链接:https://singtown.com/openmv-download/ 下载合适自己系统的OpenMV版本。
安装命令如下:

#给openmv-ide-linux-x86_64-2.1.0.run权限
chmod +x ./openmv-ide-linux-*.run
#执行安装
./openmv-ide-linux-*.run

之后会弹出安装界面,一直点击Next,直到安装完成即可。

2)、生成Apriltags二维码:
单击 bin/openmvide 文件启动OpenMV IDE,在Tool—>Machine Vision—>AprilTag Generate中选择family,推荐使用TAG36H11。
然后填写需要生成的二维码个数,选择图片存放的文件夹。最后在该文件夹会生成二维码图片,并把图片打印出来即可。

3、运行Apriltags2_ros

1)、修改配置文件:
首先修改apriltags_ros/launch/continuous_detection.launch文件。
Apriltags2需要订阅相机图像数据与相机信息,比如对于Realsense ZR300,在开启相机时会发布两个相关的topic:/zr300_node/color/image_raw/camera/camera_info,因此需将camera_name与camera_frame的内容修改为订阅的topic。

<launch>
    <arg name="launch_prefix" default="" /> <!-- set to value="gdbserver localhost:10000" for remote debugging -->
    <arg name="node_namespace" default="apriltags2_ros_continuous_node" />
    <arg name="camera_name" default="/zr300_node/color" />
    <arg name="camera_frame" default="image_raw" />
    <arg name="image_topic" default=
  • 15
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
要识别照片上的AprilTags并进行定位,你可以使用AprilTag库来实现。以下是一些基本的步骤: 1. 安装AprilTag库:首先,你需要安装AprilTag库。你可以在官方的GitHub页面上找到详细的安装说明。根据你的操作系统和编程语言选择适合的安装方法。 2. 导入AprilTag库:在你的代码中导入AprilTag库,并根据需要设置相关参数。你可以指定要识别的AprilTag类型和大小等信息。 3. 加载图像:将你要识别的图像加载到代码中。 4. 进行AprilTag识别:使用AprilTag库提供的函数对图像中的AprilTags进行识别。函数会返回每个AprilTag的ID、位置和姿态等信息。 5. 处理识别结果:根据需要,你可以对识别结果进行进一步的处理,比如绘制标记框、计算标记的相对位置等。 下面是一个简单的Python示例代码,使用Python bindings for the AprilTag库来识别照片上的AprilTags: ```python import cv2 import apriltag # 加载图像 image = cv2.imread('path_to_image.jpg', cv2.IMREAD_GRAYSCALE) # 创建AprilTag检测器 detector = apriltag.Detector() # 进行AprilTag识别 results = detector.detect(image) # 处理识别结果 for tag in results: # 绘制标记框 cv2.polylines(image, [tag.corners.astype(int).reshape((-1, 1, 2))], True, (0, 255, 0), 2) # 显示ID cv2.putText(image, str(tag.tag_id), (tag.center[0].astype(int), tag.center[1].astype(int)), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 0, 255), 2) # 显示结果图像 cv2.imshow('AprilTags', image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 请注意,以上代码仅为示例,你可能需要根据实际情况进行适当的修改。此外,还可以根据需要使用其他编程语言的AprilTag库来完成相同的任务。 希望这对你有帮助!如有任何疑问,请随时提问。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值