一.ROS的安装与配置
ROS 是一个适用于机器人编程的框架,具有分布式、点对点,支持多种语言,组件化工具包
丰富,免费且开源的特点,这个框架把原本松散的零部件耦合在了一起,为他们提供了通信架构。
ROS 虽然叫做操作系统,但并非 Windows、Mac 那样通常意义的操作系统,它只是连接了操作系
统和开发的 ROS 应用程序,所以它也算是一个中间件,基于 ROS 的应用程序之间建立起了沟通
的桥梁,所以也是运行在 Linux 上的运行时环境,在这个环境上,机器人的感知、决策、控制
算法可以更好的组织和运行。
首先打开虚拟机,笔者使用的为18.04版本的桌面版。
1.添加 ROS 软件源,将下列命令输入到 Ubuntu 的终端执行
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
2.添加密钥,将下列命令输入到 Ubuntu 的终端执行
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
成功后显示如下界面
3.安装desktop-full
sudo apt-get update
sudo apt-get install ros-melodic-desktop-full
4.初始化rostep
sudo rosdep init
rosdep update
如若出现找不到命令,则输入下列命令后再次输入上述两个命令
sudo apt-get install python-rosdep
5.设置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
6.安装rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
7.验证ROS安装成功与否
打开两个终端,分别输入以下命令
roscore
启动小海龟仿真器
按 ctrl+alt+t 打开一个新的终端,输入以下命令
rosrun turtlesim turtlesim_node
出现小乌龟图像后,证明安装ROS完成。
二、使用Rviz显示摄像头视频
1、配置摄像头
①首先USB选择3.1(此处笔者选择的3.1,若为3.0选3.0版本即可)
②连接主机摄像头
③用cheese命令检查摄像头的使用。输入cheese后摄像头将自动打开,出现如图所示的画面。
2、相关功能包的下载
①uvc camera
输入以下命令:
sudo apt-get install ros-melodic-uvc-camera
②image
输入以下命令:
sudo apt-get install ros-melodic-image-*
sudo apt-get install ros-melodic-rqt-image-view
下载完毕后如图所示:
3、使用Rviz显示摄像头视频
①启动ROS
roscore
②再打开一个终端,运行camera节点
rosrun uvc_camera uvc_camera_node
③再打开一个终端,查看消息话题
rostopic list
④打印相机信息
rostopic echo /camera_info
⑤打开Rviz配置摄像头
输入rviz即可打开摄像头
注意:要先运行roscore,不然会出现无法连接master的错误:could not contact ROS master…
且不要关闭之前的终端
然后我们需要添加image。点击add,选中image,点击OK以后,配置Image Topic为 /image_raw,然后看见摄像头里的画面啦
⑥至此成功完成该步骤,接下来我们就可以开始摄像头的标定啦。
三、摄像头标定
1.安装usb_cam功能包
sudo apt-get install ros-melodic-usb-cam
2.启动摄像头
roslaunch usb_cam usb_cam-test.launch
3.安装摄像头标定功能包camera_calibration
sudo apt-get install ros-melodic-camera-calibration
4.相机标定
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam
参数含义:
1)size:标定棋盘格内部角点个数,这里使用的棋盘一共有6行,每行有8个内部角点。
2)square:这个参数对应每个棋盘格的边长,单位是米
3)image和camera:设置摄像头发布的图像话题
我们只需要根据使用的摄像头和标定靶棋盘格尺寸,相应修改以上参数,即可启动标定程序。
5.下载标定靶
可以将图片打印在A4纸上进行标定,也可以用平板打开图片进行标定。
6.标定说明
标定程序启动成功后,将标定靶放置在摄像头视野范围内,如下图所示:
- 注意:在没有标定成功前,右边的按钮都为灰色,不能点击。为了提高标定的准确性,应该尽量让标定靶出现在摄像头视野范围内的各个区域,界面右上角的进度条会提示标定进度。
对应参数
1 ) X:标定靶在摄像头视野中的左右移动。
2) Y:标定靶在摄像头视野中的上下移动。
3) Size:标定靶在摄像头视野中的前后移动。
4)Skew:标定靶在摄像头视野中的倾斜转动。
不断在视野中移动标定靶,直到“CALIBRATE"按钮变色,按钮变色代表标定程序的参数采集完成。然后点击“CALIBRATE"按钮,标定程序开始自动计算摄像头的标定参数,这个过程需要等待一段时间, 界面可能会变成灰色无响应状态, 注意千万不要将其关闭了。
7.标定完成
标定完成后,终端会有标定结果的显示,点击save后即可保存,标定参数将保存到默认的文件夹下,并在终端看到该路径,点击“COMMIT"按钮, 提交数据并退出程序,至此标定过程全部完成。
四.总结
至此我们便完成了搭建和配置ROS环境,使用Rviz完成摄像头(camera)的视频采集,摄像头的标定的任务。对于ROS系统我们还有很多可以探索,这只是其中极小的一部分,对于视觉的探究远远不应停止与此,有兴趣的读者还可以尝试下载数据集进行运行,体验视觉的独特之处。
通过本次实验让笔者也颇有收获,同时若有错误欢迎大家积极指正交流,谢谢~文章来源:https://www.toymoban.com/news/detail-410260.html
参考
1.Ubuntu18.04下USB摄像头运行和标定
2.ROS下Rviz的摄像头视频采集和标定文章来源地址https://www.toymoban.com/news/detail-410260.html
到了这里,关于ROS安装与Rviz的摄像头视频采集与标定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!