环境:
虚拟机:VMware workstation Ubuntu 18.04 ROS: melodic
相机:笔记本自带
一、USB相机驱动
1.在Ubuntu中打开相机
要首先测试,在Ubuntu中相机是否可以正常打开。
打开相机:菜单栏 --> 茄子
如果黑屏且显示:“未发现设备”,执行以下步骤:
检查摄像头:
打开终端: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
调出摄像头:
二、相机标定 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 网络激活失败解决办法
(但是解决后好像还是会继续出现这个毛病):
https://blog.csdn.net/Javaxw666/article/details/88137325 - 编译出错:
分析:缺少缺少ros的串口包
解决办法: sudo apt-get install ros-melodic-serial
见博客:https://blog.csdn.net/weixin_37058227/article/details/79319056 - 编译出错:
关于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的文件夹路径中打开终端) 调出摄像头
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 是色块的大小,单位是米;
上述命令执行后会出来摄像头标定窗口
标定过程:当移动棋盘时,会看到校准侧栏上的三个条的长度增加。当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之后对其设置:
3.检测结果,动态显示:
致谢:
参考博客:
- https://blog.csdn.net/qq_42879437/article/details/108850578?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
- https://www.cnblogs.com/linuxAndMcu/p/10649356.html
- https://blog.csdn.net/weixin_43331257/article/details/82932904