一、aruco码介绍

  • Aruco码:Aruco码是一种基于二进制的二维标记,通常用于计算机视觉领域,尤其是在增强现实(AR)应用中。它是一个黑白的方形图形,包含一个独特的ID,通过定位和识别Aruco码的位置来获取信息。Aruco码的优势在于其可以在不同角度、光照条件下准确地被识别。

  • 应用场景:主要用于计算机视觉、机器人定位、增强现实(AR)以及三维重建等领域。例如,在AR应用中,Aruco码可以帮助设备精准地识别位置和角度,并在现实世界中叠加虚拟对象。

        并且每个Aruco码包含一个特定的ID,因此它通常只存储一个短小的数字或字母组合。通过识别不同的Aruco码,可以获取不同的信息。

        这个网站可以生成Aruco码:在线 ArUco 标记生成器

二、相机标定

这里主要参考了这一篇文章:

【ROS】usb_cam相机标定_ros相机标定-CSDN博客

1、准备好ros环境,安装好usb_cam包,ros 的 camera_calibration 工具,标定板。

确保已安装camera_calibration包:

sudo apt-get install ros-<你的ROS版本>-camera-calibration

2、分别执行:

roslaunch usb_cam usb_cam-test.launch 

rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.030 image:=/usb_cam/image_raw

参数解释:

  • --size 9x11:标定板的内角点数量(水平×垂直)
  • --square 0.030:每个方格的边长(单位:米)
  • image:=/camera/image:指定接收相机图像的ROS话题

3、开始标定

        3.1 我这里使用的标定板

        3.2 保持标定板在相机视野中,然后从各种角度,上下左右移动和转动,等X、Y、Size、Skew四个值变成绿条后,点击CALIBRATE这个按钮,等待自动计算出参数就欧克。

 

在终端得到计算出来的数据:

4、标定完成,点击SAVE按钮,找到在/tmp/calibrationdata.tar.gz中的yaml文件,直接导入相机参数即可。

5、在标定后能更大程度提升识别精度

三、Aruco码识别

1、先安装aruco_ros包

sudo apt-get install ros-<your_ros_distro>-aruco-ros

<distro> 替换为你的 ROS 版本,例如 noeticmelodic 等。 

2、创建launch文件

<launch>
  <node pkg="usb_cam" type="usb_cam_node" name="usb_cam">
    <param name="video_device" value="/dev/video6" />
    <param name="image_width" value="640" />
    <param name="image_height" value="480" />
     <param name="camera_info_url" value="file://$(env HOME)/catkin_ws/src/ost.yaml"/>
  </node>
  <node pkg="aruco_ros" type="single" name="aruco_single">
    <remap from="/camera_info" to="/usb_cam/camera_info"/>
    <remap from="/image" to="/usb_cam/image_raw"/>
    <param name="marker_size" value="0.095" />  <!-- 标签实际物理尺寸(单位:米) -->
    <param name="marker_id" value="555" />       <!-- 要识别的特定ID -->
    <!-- <param name="marker_frame" value="camera_link" />  设置输出的坐标系 -->
    <param name="camera_frame" value="camera_optical_frame" />
    <param name="marker_frame" value="aruco_marker" />
  </node>
</launch>

3、运行launch文件后,就可以通过话题查看识别效果了

识别效果:

4、

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐