文章目录

  • 一.ROS的安装与配置
    • 1.添加 ROS 软件源,将下列命令输入到 Ubuntu 的终端执行
    • 2.添加密钥,将下列命令输入到 Ubuntu 的终端执行
    • 3.安装desktop-full
    • 4.初始化rostep
    • 5.设置环境变量
    • 6.安装rosinstall
    • 7.验证ROS安装成功与否
  • 二、使用Rviz显示摄像头视频
    • 1、配置摄像头
    • 2、相关功能包的下载
    • 3、使用Rviz显示摄像头视频
  • 三、摄像头标定
    • 1.安装usb_cam功能包
    • 2.启动摄像头
    • 5.下载标定靶
    • 6.标定说明
    • 7.标定完成
  • 四.总结

  

一.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

![在这里插入图片描述](https://img-blog.csdnimg.cn/cbeef474220d4dadb5d01f5e65957d00.png

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系统我们还有很多可以探索,这只是其中极小的一部分,对于视觉的探究远远不应停止与此,有兴趣的读者还可以尝试下载数据集进行运行,体验视觉的独特之处。
  通过本次实验让笔者也颇有收获,同时若有错误欢迎大家积极指正交流,谢谢~


参考

1.Ubuntu18.04下USB摄像头运行和标定
2.ROS下Rviz的摄像头视频采集和标定

ROS安装与Rviz的摄像头视频采集与标定相关推荐

  1. Rviz2 摄像头视频采集与图像标定

    Rviz2 摄像头视频采集与图像标定 准备摄像头 有摄像头的可以直接设置虚拟机的 USB 兼容性来设置即可,但是由于我们的设备没有摄像头,所以这里我们要安装一些摄像头驱动来通过手机摄像头做外设进行使用 ...

  2. 摄像头视频采集压缩及传输

    摄像头视频采集压缩及传输 引言: 摄像头基本的功能还是视频传输,那么它是依靠怎样的原理来实现的呢?所谓视频传输: 就是将图片一张张传到屏幕,由于传输速度很快,所以可以让大家看到连续动态的画面,就像放电 ...

  3. 摄像头视频采集压缩及传输 1

    引言 : 摄像头基本的功能还是视频传输,那么它是依靠怎样的原理来实现的呢?所谓视频传输: 就是将图片一张张传到屏幕,由于传输速度很快,所以可以让大家看到连续动态的画面,就像放电影一样.一般当画面的传输 ...

  4. FPGA USB FX2 ov5640摄像头视频采集 驱动CY7C68013A实现 提供2套工程源码和技术支持

    目录 1.前言 2.我这儿已有的 FPGA USB 通信方案 3.CY7C68013A芯片解读和硬件设计 FX2 简介 SlaveFIFO模式及其配置 4.工程详细设计方案 5.vivado工程 6. ...

  5. linux 远程挂载摄像头_如何实现嵌入式Linux下USB摄像头视频采集

    展开全部 在linux下所e5a48de588b662616964757a686964616f31333337613134有设备都是文件.所以对摄像头的操作其实就是对文件的操作.USB摄像头的设备文件 ...

  6. linux下基于qt和v4l2驱动的usb摄像头视频采集与显示,用v4l2和framebuffer实现usb摄像头视频采集并显示...

    Windows程序是基于消息的,不管其封装形式如何,最后都要包含如下代码MSG msg;while(GetMesssage(msg)){TranslateMessage(msg);DispatchMe ...

  7. Linux 下摄像头视频采集与显示

    说明: 1.本文所提及的摄像头不是zc0301p,使用的API不是V4L,显示所使用的上位机不是QT,特此说明. 2.UVC只是一个驱动,如果它能成功驱动摄像头,会在/dev目录下出现video(或v ...

  8. V4L2+Qt5实现摄像头视频采集以及参数控制

    这一段时间在做摄像头控制方面的工作,需要在Linux下实现对摄像头名称和分辨率的获取,同时对亮度.对比度.曝光值等参数进行控制,同时还需要对获取的帧画面进行处理.目前除了图像处理方面,简单的使用V4l ...

  9. Linux下Qt5: QMediaRecorder的问题,以及使用QCamera相关类进行摄像头视频采集

    版本信息: Qt 5.8.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 5.3.1 20160406 (Red ...

最新文章

  1. webgl入门(2)-初识webgl和着色器
  2. numpy学习:安装anaconda及使用
  3. redhat linux加密卷
  4. could not perform addBatch
  5. [NOI2014] 起床困难综合症(二进制,贪心)
  6. MySQL之Procedure(存储过程)和Function(函数)
  7. 虚拟键码对照表与ASCII对照表的整理
  8. 商人的盈利方式非你所想
  9. 使用XAML和SharpMap渲染一幅地图
  10. 【optimization、pypi-packages、Github、GitCode、pip】optimtool介绍文档
  11. dw常用标签_Dreamweaver制作基本标签
  12. python pip 安装 升级 卸载命令
  13. 蓝桥杯 STEMA 考试选择题模拟题
  14. 祝新年快乐html小程序,小程序网页开发真诚的祝福大家2018...
  15. css空心图形,css画空心箭头
  16. 为仿真器添加eCos多线程调试支持,GDBServer Extender 0.0.1 使用说明
  17. js 第1步:随机生成json对象,格式为:“[[{“text“:XXXX},{“text“:XXXX}],[{“text“:XXXX},{“text“:XXXX},{“text“:XXXX}]]“
  18. JS确认提交confirm方法
  19. ImportError: cannot import name ‘OrderedDict‘ from ‘typing‘ (/hpcfiles/users/zk.111/anaconda3
  20. 量子计算机 intel,Intel量子计算机技术 首次突破1开尔文

热门文章

  1. java 两字符串相同,关于java:使用==比较两个相同的字符串将返回false
  2. DM 数据迁移工具——DTS(MySQL数据迁移到DM8数据库 Windows环境)
  3. mysql数据库数据迁移_MySQL数据库迁移详细步骤
  4. linux命令查看文件排序
  5. 图文解释什么是敏捷开发
  6. 江苏省计算机专业自考,江苏自考专业总目录:含江苏自考专科专业、江苏自考本科专业目录-江苏自考网...
  7. servlet传参给jsp和js与java变量互传(废弃,建议JSP开发使用jstl)
  8. autojs开发的火云与共享API脚本源代码免费分享
  9. python 开运算_OpenCV-Python系列之开运算与闭运算
  10. 第8章 Foundation Kit介绍