使用ROS和AprilTags进行相机定位(二维码定位全流程)

使用ROS和AprilTags进行相机定位(二维码定位全流程)

  • 配置环境
    • 1 下载虚拟机
    • 2 下载Ubuntu16.07
    • 3 安装虚拟机和Ubuntu
    • 4 安装ROS
    • 5 USB相机驱动
  • 标定、定位
    • 1 相机标定
    • 2 下载AprilTag2源码
      • 2.1 修改文件
      • 2.2 编译
      • 2.3 修改二维码标签信息
    • 3启动程序
      • 3.1 启动ros
      • 3.2 打开摄像头
      • 3.3 运行apriltags2_ros
      • 3.4 运行二维码检测节点
    • 4 可视化显示
      • 4.1 运行二维码检测节点
      • 4.2 打开可视化工具包Rviz
      • 4.3 Rviz设置
  • 结束

实现了使用ROS和AprilTags进行相机定位,参考了大量大佬的博客,做一个整合。

配置环境

虚拟机:VMware15.5.0
ubuntu: 16.04
ros: kinetic
相机:USB外接相机

1 下载虚拟机

下载VMware15
注:如果经常死机和出现各种问题,建议重装别的版本虚拟机。

2 下载Ubuntu16.07

下载Ubuntu

3 安装虚拟机和Ubuntu

安装步骤

4 安装ROS

安装ROS
在进行到初始化rosdep时,会出现error,按如下操作:
#打开hosts文件

sudo gedit /etc/hosts

#在文件末尾添加

151.101.84.133  raw.githubusercontent.com

#保存后退出再尝试初始化命令

5 USB相机驱动

检查相机是否使用正常,需要安装如下功能包ROS学习笔记七:在ROS中使用USB摄像头
注:
1 因为安装的ros是kinetic版本,所以安装uvc camera功能包的时候需要修改成kinetic:

sudo apt-get install ros-kinetic-uvc-camera

2 运行uvc_camera节点的时候,因为是rosrun,所以要先开roscore,即

roscore

而roslaunch不用,因为有 .launch 文件。接着再运行:

rosrun uvc_camera uvc_camera_node

最后运行:

 rosrun rqt_image_view rqt_image_view

就能掉出摄像头,如下图。
使用ROS和AprilTags进行相机定位(二维码定位全流程)_第1张图片
这里建议ROS学习笔记七:在ROS中使用USB摄像头中的USB_cam软件包也安装,不然后续操作可能会报错。

标定、定位

1 相机标定

参考ros学习之camera calibration 单目摄像头标定
标定文件在/tmp/calibrationdata.tar.gz,实际上,也会自动更新到/home/.ros/camera_info/head_camera.yaml中(ctrl+h显示隐藏文件)。标定后退出直接进行下一步。

2 下载AprilTag2源码

priltags2_VO

2.1 修改文件

解压,放入新建文件夹(catkin_apriltag/src)下。源码使用的不是USB相机,因此需要修改/catkin_apriltag/src/Apriltags2_VO-master/apriltags2_ros/launch/continuous_detection.launch 文件
使用ROS和AprilTags进行相机定位(二维码定位全流程)_第2张图片
修改成如下内容:
使用ROS和AprilTags进行相机定位(二维码定位全流程)_第3张图片

2.2 编译

cd catkin_apriltag
catkin_make

2.3 修改二维码标签信息

打开 catkin_apriltag/src/Apriltags2_VO-master/apriltags2_ros/config/tags.yaml 文件,本次测试只用了 catkin_apriltag/src/Apriltags2_VO-master/support_image/tag36h11/tag36h11_1.png 这张二维码,编号为1,所以只需修改以下参数(id,打印的二维码实际尺寸):

使用ROS和AprilTags进行相机定位(二维码定位全流程)_第4张图片

3启动程序

3.1 启动ros

roscore

3.2 打开摄像头

新开一个终端

roslaunch usb_cam usb_cam-test.launch

3.3 运行apriltags2_ros

新打开一个终端

cd catkin_apriltag
source devel/setup.bash
roslaunch apriltags2_ros continuous_detections.launch

3.4 运行二维码检测节点

新打开一个终端

cd catkin_apriltag
source devel/setup.bash
rostopic echo /tag_detections

如果相机未检测到二维码,会显示
使用ROS和AprilTags进行相机定位(二维码定位全流程)_第5张图片
检测到后,显示使用ROS和AprilTags进行相机定位(二维码定位全流程)_第6张图片

4 可视化显示

4.1 运行二维码检测节点

新打开一个终端

cd catkin_apriltag
source devel/setup.bash
rostopic echo /tag_detections_image

4.2 打开可视化工具包Rviz

新打开一个终端

rosrun rviz rviz

4.3 Rviz设置

根据下图提示,对Rviz进行初始化。先改名,然后点击add添加需要显示内容。
使用ROS和AprilTags进行相机定位(二维码定位全流程)_第7张图片

结束

欢迎指正补充,谢谢大家!

你可能感兴趣的:(ROS学习,ubuntu,定位)