环境:
虚拟机:VMware workstation Ubuntu 18.04 ROS: melodic
相机:笔记本自带

一、USB相机驱动

1.在Ubuntu中打开相机

要首先测试,在Ubuntu中相机是否可以正常打开。

打开相机:菜单栏 --> 茄子

如果黑屏且显示:“未发现设备”,执行以下步骤:

ubuntu调用usb摄像头 python ubuntu查看usb摄像头_二维码


检查摄像头:

打开终端:lsusb

查找到usb相机

2.安装uvc camera功能包

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

3.安装usb_cam软件包

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

4.运行uvc_camera节点,调出摄像头:依次打开终端输入:

(1)roscore

(2)rosrun uvc_camera uvc_camera_node

(3)rosrun rqt_image_view rqt_image_view

调出摄像头:

ubuntu调用usb摄像头 python ubuntu查看usb摄像头_二维码_02

二、相机标定 camera calibration

1.需要软件包:

Apriltags2_VO-master/apriltags2_ros
image_pipeline-noetic/camera_calibration
文件路径:
catkin_ws/src/Apriltags2_VO-master/apriltags2_ros
catkin_ws/src/image_pipeline-noetic/camera_calibration
实验室现有上述代码已经做过更改,都要在workspace中catkin_make 编译成功,并且 设置环境变量

2.编译过程中可能出现错误:

前一段时间电脑系统崩溃,导致Ubuntu重装。

  • 共享文件夹方法:
    https://jingyan.baidu.com/article/fec7a1e54ff0935191b4e765.html
  • Ubuntu 网络激活失败解决办法
    (但是解决后好像还是会继续出现这个毛病):
  • 编译出错:

    分析:缺少缺少ros的串口包
    解决办法: sudo apt-get install ros-melodic-serial
    见博客:
  • 编译出错:
    关于serialport,没有在include中找到头文件 “serial_port/xyz.h”,serialport的include文件夹是空的

    解决办法:找到laser.h,放入serial_port/include文件夹中
    并在serial_port/src/serial_port.cpp 中加入头文件: #include “serial_port/laser.h”

3.开始标定:依次打开终端输入:

1.roscore

2.roslaunch usb_cam usb_cam-test.launch(在usb_cam-test.launch的文件夹路径中打开终端) 调出摄像头

ubuntu调用usb摄像头 python ubuntu查看usb摄像头_计算机视觉_03


3.rosrun camera_calibration cameracalibrator.py --size 7x5 --square 0.018 image:=/usb_cam/image_raw camera:=/usb_cam

注意:这里有几个参数需要根据自己设定 size 7x5的7x5标定棋盘的内角点数,不是色块数; square 0.018 是色块的大小,单位是米;

上述命令执行后会出来摄像头标定窗口

ubuntu调用usb摄像头 python ubuntu查看usb摄像头_计算机视觉_04


标定过程:当移动棋盘时,会看到校准侧栏上的三个条的长度增加。当CALIBRATE按钮亮起时,表明有足够的数据进行校准,可以单击CALIBRATE查看结果。校准可能需要大约一分钟。窗户可能是灰色的,但只是等待,它正在工作。

点击save,会卡一会。点击upload。数据会自动导入。重新启动摄像头、标定完成。

三、摄像头二维码定位

1.依次打开终端:

1.roscore
2.roslaunch usb_cam usb_cam-test.launch 打开摄像头
3.roslaunch apriltags2_ros continuous_detections.launch 运行apriltags2_ros
(报错时,设置一下环境变量,输入:source devel/setup.bash)
4.rostopic echo /tag_detections 运行二维码检测节点,输出定位结果

2.打开Rviz之后对其设置:

ubuntu调用usb摄像头 python ubuntu查看usb摄像头_二维码_05

3.检测结果,动态显示:

ubuntu调用usb摄像头 python ubuntu查看usb摄像头_Ubuntu_06