ros下实现usb相机功能,并基于apriltag_ros实现定位

本文详细介绍了在ROS Kinetic环境下,如何安装USB相机软件、进行相机标定、使用camera_calibration,以及部署apriltag_ros进行二维码定位。涵盖了从硬件配置到软件调试的全过程,适合机器人开发者和计算机视觉初学者参考。

1.安装usb_cam软件包

sudo apt-get install ros-kinetic-usb-cam

安装完成后可以启动相机

roslaunch usb_cam usb_cam-test.launch

launch文件在 /opt/ros/kinetic/share/usb_cam/launch 目录下,launch文件如下:

<launch>
  <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
    <param name="video_device" value="/dev/video1" />
    <param name="image_width" value="640" />
    <param name="image_height" value="480" />
    <param name="pixel_format" value="yuyv" />
    <param name="camera_frame_id" value="usb_cam" />
    <param name="io_method" value="mmap"/>
  </node>
  <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
    <remap from="image" to="/usb_cam/image_raw"/>
    <param name="autosize" value="true" />
  </node>
</launch>

可通过 ls /dev/video* 命令查看当前的相机设备,相应的更改launch文件中的配置/dev/video1,对应设备号,启动自己的相机设备。

2.使用camera_calibration软件包进行相机内参标定

  • 安装相机标定软件包
sudo apt-get install ros-kinetic-camera-calibration
  • 棋盘格下载
    相机的标定是以一个由黑白方块组成的棋盘为基准进行的,如下图所示。可以从本文的附件中下载8×6国际象棋棋盘,并打印出来后将其贴到一个平坦的纸板或者墙面上。作为参考,8×6棋盘横向有9个方块,所以有8个交叉点,而竖向有7个方块,有6个交叉点,所以它被称为8×6棋盘。
    在这里插入图片描述
  • 启动usb相机
roslaunch usb_cam usb_cam-test.launch
  • 启动标定节点
rosrun camera_calibration cameracalibrator.py  --size 8x6 --square 0.029 image:=/usb_cam/image_raw camera:=/usb_cam

size :标定棋盘个的内部角点个数,这里实用的棋盘一共有6行,每行有8个内部角点(不包括最外围的一圈棋盘格)。
squre:这个参数对应每一个棋盘格的边长,单位是米,棋盘格打印出来以后要自己再测量一下打印的是或否准确然后自己更改,我打印的棋盘方格大小是29mm的,故squre为0.029。
image和camera:设置摄像头发布的图像话题。

  • 标定节点运行后会运行GUI,此时如果用相机对准棋盘,校准将立即开始。在GUI屏幕的右侧,可以看到一个标有X、Y、Size和Skew的条形控件。这是校准的进展状态,都以绿色填满意味着校准完成。在校准过程中需要将棋盘对着相机朝着左/右/上/下/前/后移动,还需要倾斜棋盘,这是个比较无聊的过程,我们需要拿着校准棋盘不断的移动,晃荡个大概5分钟左右就差不多了,看到基本上绿色已经填满了即可。校准所需的所有图像都记录下来之后,CALIBRATE按钮会被激活。点击这个按钮后会进行实际的校准计算,这需要大约3到5分钟。此时就可以将校准板放下了,耐心等待计算完成后,点击SAVE按钮保存校准信息,存储的地址显示在执行校准的终端窗口中,是存储在某一个/tmp目录(如“/tmp/calibrationdata.tar.gz”)中。
  • 大佬的这篇博客讲的很清楚,可直接参考此链接,我就不再赘述了。

3.apriltag安装

  • 下载源码,官方链接(https://github.com/AprilRobotics/apriltag)
git clone https://github.com/AprilRobotics/apriltag
  • 编译安装
cd apriltag
cmake .
sudo make install

官方链接里面有不同的安装方式,我只是选择了其中的一种安装方式。

4.apriltags2_ros的编译

apriltag_ros源码:源码链接
详细的wiki教程:wiki教程
安装过程:

mkdir -p apriltag_ws/src
git clone https://github.com/AprilRobotics/apriltag_ros.git
cd ..
catkin_make

编译完成之后,确保usb相机标定完成并且启动之后(roslaunch usb_cam usb_cam

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值