搭建和配置ROS环境,使用Rviz完成摄像头(camera)的视频采集,摄像头的标定

2023-11-10

目录

一、虚拟机Ubuntu18.04下搭建Ros环境

 1、关于ROS机器人操作系统

2、ROS的安装配置 

 3、 运行小海龟示例程序

二、Rviz完成摄像头(camera)的视频采集

1、配置摄像头

 2、相关包的下载

三、USB摄像头运行和标定

1、标定环境配置

 2、标定程序运行

四、总结

参考资料

一、虚拟机Ubuntu18.04下搭建Ros环境

 1、关于ROS机器人操作系统

· 概念

        ROS Robot Operating System 的缩写,通常称为“机器人操作系统”。但它并不是一个真正的操作系统,而是一个面向机器人的开源的元操作系统(meta-operating system),提供类似传统操作系统的诸多功能:硬件抽象、底层设备控制、常用功能实现、进程间消息传递、程序包管理等。并且提供相关工具和库,用于获取、编译、编辑代码以及在多个计算机之间运行程序完成分布式计算。

· ROS的优势

  •         分布式计算:点对点,解决进程间通讯问题
  •         软件复用:算法,通信接口, 避免重复造轮子
  •         快速测试:工具,模块化,数据记录与回放
  •         免费开源:ROS 软件的开发自始至终采用开放的 BSD 协议,开源社区

2、ROS的安装配置 

  • 添加软件源
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'
  • 添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

 成功添加软件源和密钥

  •  安装Ros-melodic桌面完整版

        更新系统软件源

sudo apt-get update

        安装ros 

sudo apt-get install ros-melodic-desktop-full

 安装成功

  •  初始化rostep
sudo rosdep init
rosdep update

 若出现找不到命令如下所示

 则执行如下命令后,在重复上面的初始化工作

sudo apt-get install python-rosdep

 rosdep init初始化遇到如下错误,通过如下操作解决

#打开hosts文件
sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133  raw.githubusercontent.com
#或者 151.101.76.133  raw.githubusercontent.com
#保存后退出再尝试

  •  设置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  •  安装rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

 成功安装rosinstall

  •  查看ros安装的相关信息

   通过命令roscore,运行ros,即可查看ros相关信息

 3、 运行小海龟示例程序

 新打开一个终端窗口,输入以下指令,运行小海龟示例程序

rosrun turtlesim turtlesim_node

此时可以看到一个小海龟的窗口出现

然后再打开一个终端窗口,输入以下指令,便于控制小海龟的运动

rosrun turtlesim turtle_teleop_key

 保持以上窗口,然后就可以通过方向键控制小海龟的运动了,运行效果如下图

 至此,关于ROS环境的安装配置就到此结束了。

二、Rviz完成摄像头(camera)的视频采集

1、配置摄像头

  • 此处USB兼容性的配置对应选择3.1即可

  •  连接主机摄像头

点击桌面右下角摄像头图标连接PC主机摄像头

  •  通过cheese命令检查摄像头的使用及画面

 2、相关包的下载

  • 下载ros对应的UVC Camera库包
sudo apt-get install ros-melodic-uvc-camera

   uvc Camera库安装成功

  • 终端运行camera节点

  首先一个终端roscore运行ros,然后新打开一个终端键入如下指令运行camera节点

rosrun uvc_camera uvc_camera_node

  •  查看消息会话题

   再打开一个终端键入rostopic list,查看消息话题

  •   打印相机信息

    通过rostopic echo /camera_info打印相机信息

  •  打开Rviz配置摄像头

   键入指令rviz即可打开RVIz界面   

  •  配置RVIZ

    添加Image窗口

 至此完成相关包的下载及Rviz的配置

三、USB摄像头运行和标定

1、标定环境配置

  • 安装usb_cam设备驱动程序节点功能包
sudo apt-get install ros-melodic-usb-cam

  

  •  安装摄像头标定功能包camera_calibration
sudo apt-get install ros-melodic-camera-calibration

 2、标定程序运行

  • 标定靶如下,可通过下载打印或是平板照片代替

 首先一个终端窗口roscore启动ros

 然后再另外打开一个窗口开启摄像头

roslaunch usb_cam usb_cam-test.launch
  •  启动标定程序
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.02 image:=/usb_cam/image_raw camera:=/usb_cam

  参数含义:

  1)size:标定棋盘格内部角点个数,这里使用的棋盘一共有6行,每行有8个内部角点。

  2)square:这个参数对应每个棋盘格的边长,单位是米

  3)image和camera:设置摄像头发布的图像话题

        此时将准备好的标定靶图对准摄像头,直到CALIBRATE按钮变色,才表示标定程序的参数采集完成,此时再点击CALIBRATE按钮,标定程序开始自动计算摄像头的标定参数,这个过程需要等待一段时间。

开始标定采集

 标定采集完成

 标定完成

点击SAVE可保存标定参数

四、总结

        以上我们是完成了ROS机器人操作系统的搭建配置,以及Rviz摄像头的视频采集和及标定,这只是实时定位与建图SLAM的运行环境搭建,过程还是挺有趣的,若想进一步跑SLAM的开源项目,还需要对应安装相应库源码,像是VINS_Fusion及ORB-SLAM等,后续作者也会进一步尝试跑对应开源项目。

参考资料

Ubuntu20.04系统安装ROS

ROS下Rviz的摄像头视频采集和标定

 Ubuntu18.04下USB摄像头运行和标定

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

搭建和配置ROS环境,使用Rviz完成摄像头(camera)的视频采集,摄像头的标定 的相关文章

  • node调用ffmpeg转流

    ffmpeg始终是音视频领域绕不过去的一个坎 也是一个特别好的工具 虽然再node库里面有根据ffmpeg编译的库 比如 libav js和fluent ffmpeg之类 但是调用原生的ffmpeg应用也是一种方法 这边先上代码再详解 H2
  • Unity平台如何实现RTSP转RTMP推送?

    技术背景 Unity平台下 RTSP RTMP播放和RTMP推送 甚至包括轻量级RTSP服务这块都不再赘述 今天探讨的一位开发者提到的问题 如果在Unity下 实现RTSP播放的同时 随时转RTMP推送出去 RTSP转RTMP 在原生环境下
  • HDMI之EDID使用说明

    Q1 为什么要写这篇文章 A1 在最近的工作中遇到了不少问题 其中很多都是和EDID相关的 可以说 作为一家以 显示 为生的企业 我们时时刻刻在与EDID打交道 EDID这东西很简单 但是如果不了解其基本原理和概念的话 会给我们的工作带来不
  • 面试复习题--音视频

    1 音频处理 oboe openSL es AAudio 2 视频处理 ffmpeg 3 图片处理 GPUImage OpenCV fastCV 4 图形基础 skia Vulkan
  • 6 FFmpeg从入门到精通-FFmpeg滤镜使用

    1 FFmpeg从入门到精通 FFmpeg简介 2 FFmpeg从入门到精通 FFmpeg工具使用基础 3 FFmpeg从入门到精通 FFmpeg转封装 4 FFmpeg从入门到精通 FFmpeg转码 5 FFmpeg从入门到精通 FFmp
  • ffmpeg推流参考文章

    https www cnblogs com leisure chn p 10623968 html https www bilibili com read cv12294853 基于M3568平台移植nginx https z zlg cn
  • 基于MediaPlayer实现视频播放

    一 概述 一个简单的视频播放器 满足一般的需求 使用原生的 MediaPlayer 和 TextureView来实现 功能点 获取视频的首帧进行展示 网络视频的首帧会缓存 视频播放 本地视频或者网络视频 感知生命周期 页面不可见自动暂停播放
  • unity和ffmpeg修改局部视频速度

    unity版本2020 3 17 前言 最近有个功能是 在一个展馆里面 有一个摄像头旋转拍照 拍一圈 本来功能很简单 就录屏就可以了上传生成二维码就ok了 但是 需要一个视频中间快两边变慢的效果 查了很多资料 最终决定使用ffmpeg和un
  • OpenWRT 添加 WEB 配置界面实战记录

    本篇是记录在 Openwrt 镜像中添加 自定义的 web 配置界面过程 编译进 openwrt 的系统镜像中 第一步 建立项目文件目录 mkdir p feeds luci applications luci app Gateway mk
  • 基于深度学习实现实时视频目标检测

    前言 实时视频目标检测是计算机视觉领域的研究热点之一 其应用场景包括智能监控 自动驾驶 机器人视觉等多个领域 深度学习技术的快速发展使得实时视频目标检测变得更加可行和准确 本文提出一种基于深度学习实现的实时视频目标检测系统 使用Python
  • public static void main(String[] args) { //填入通过分享获取到的抖音视频地址 String videoUrl = getVid...

    这段代码的作用是从抖音 douyin 分享链接中获取视频的无水印播放地址 首先 它通过调用 HttpRequest get url 方法获取抖音视频的分享页面的 HTML 源代码 然后 通过调用 sub 方法并传入 HTML 源代码 开始字
  • 基于FFmpeg和Screen Capturer Recorder实现屏幕和声音的录制

    当我们看到一些精彩的视频画面 但无法下载时 可以通过录屏的方式将视频和音频录制下来 这个时候我们需要安装采集视频和音频的工具screen capture recorder 以下是在windows10环境下 基于FFmpeg和Screen C
  • 音频增加噪声低通滤波降噪的过程

    啊 clear all close all clc s Fsample B wavread music wav Ts 1 Fsample M length s 获取音频的数据长度 m 0 M 1 figure subplot 3 1 1 p
  • STM32之音频数据的Flash读取与DAC播放

    文章目录 一 STM32103之内部Flash原理 1 Flash介绍 2 Flash的组成 3 STM32内部框架图 二 SD卡的读写 1 实验过程 2 查看hello txt 3 从SD卡里读出数据 三 Flash地址空间的数据读取 1
  • 高效转码工具Compressor for Mac,让视频处理更轻松

    在现如今的数字时代 视频内容已经成为人们生活中不可或缺的一部分 无论是在社交媒体上分享生活点滴 还是在工作中制作专业的营销视频 我们都希望能够以高质量 高效率地处理和传输视频文件 而Compressor for Mac作为一款强大的视频转码
  • 软件测试/人工智能丨计算机视觉场景中,如何处理视频/图片数据并进行测试

    在计算机视觉中 处理视频和图片数据并进行测试是一个关键的任务 以下是一些常见的步骤和方法 处理图片数据 数据加载 使用图像处理库 例如OpenCV PIL 加载图像数据 将图像转换为模型所需的格式 通常是矩阵 预处理 标准化图像 将图像像素
  • 音频转换mp3格式软件哪个好?下面推荐几款好用的软件给你

    你是否曾经遇到过这样的情况 下载了大量音频文件 却因为文件格式受到限制 而无法直接在设备上播放 不用担心 今天我将向大家介绍几款能把音频转换mp3的软件 它们可以帮助我们有效地解决音频格式不兼容的问题 一 专业的音频处理软件 优点1 简单易
  • 【音视频 | AAC】AAC音频编码详解

    博客主页 https blog csdn net wkd 007 博客内容 嵌入式开发 Linux C语言 C 数据结构 音视频 本文内容 介绍AAC音频编码 金句分享 你不能选择最好的 但最好的会来选择你 泰戈尔 本文未经允许 不得转发
  • 电动车低速提示音系统(AVAS)

    随着电动汽车的迅速发展 以及电动汽车的保有量也越来越多 根据车辆的特征来说电动汽车相比于传统的内燃机汽车要安静 为了保护行人 减少事故的发生 欧盟最近发布了一项关于电动车的新法规 自2019年7月1日开始 欧盟关于电动汽车的最新法律正式生效
  • 有没有实用的视频、图片素材网站推荐?

    在作品创作中 素材网站扮演着至关重要的角色 它们提供了海量的设计资源 为设计师 艺术家和创意工作者提供了无限的可能性 本文将为您介绍几款备受推崇的素材网站 帮助您开启创意之旅 一 制片帮素材 制片帮素材是一个提供海量精品视频素材的网站 站内

随机推荐

  • 通过JAVA的api来进行hbase编程

    操纵habase的时候 通过Hbase shell可以进行一些操作 但是和实际的编程实例联系起来不方便 因此本文介绍有关Hbase编程的相关java API 并直接在idea中编写java代码 连接hbase并执行相关操作 实际上 hbas
  • 数据库表的创建与查询

    目录 1 引言 SQL的特点 2 任务 1 定义模式test1 text1 其中test1有两张表 分别如下 模式 schema 2 删除模式test1 cascade 3 定义基本表 4 创建基本表table属于test1 针对DateG
  • 【ML on Kubernetes】第 8 章:使用平台构建完整的机器学习项目

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 正则表达式各参数及方法简介

    文章目录 前言 一 匹配单个字符 二 匹配多个字符 三 匹配开头结尾和分组 四 正则匹配方法的使 五 贪婪匹配和非贪婪匹配 前言 正则表达式 regular expression 描述了一种字符串匹配的模式 pattern 可以用来检查一个
  • 周志华《机器学习》课程系列笔记——目录导航页

    周志华 机器学习 课程系列笔记 说明 Introduction 最近自学机器学习课程 注意到了南京大学周志华老师的课程 我是在学堂在线平台观看的 注意到b站上也有相应视频 但b站上并未获得授权 随时有消失的可能 周志华老师的网络教学视频中
  • [leetcode]19 删除链表的倒数第 N 个结点

    题目链接 https leetcode cn problems remove nth node from end of list 该链表中 head节点对应有值 要想知道倒数第几个节点对应正序哪个节点 需要先进行遍历知道整个链表的长度 倒数
  • tcpdump抓包文件分段保存-指定时间或者指定大小

    指定间隔保存 tcpdump i tun0 s0 G 600 w Y m d H M S pcap G 600 600s保存一次 i 指定网卡 s w 保存文件的格式 指定大小保存 tcpdump i eth0 s0 C 5 Z root
  • safari浏览器中使用flex布局出现图片拉伸显示图片原始宽高

    在safari浏览器中使用flex布局出现图片拉伸的情况 一般设置图片宽度 图片高度会根据图片宽高比 高度自动伸缩进行调整 解决方案 1 在使用了flex的情况下 设置图片定宽定高 2 去掉flex 布局 图片设为display inlin
  • STM32F103RBT6+FATFS32移植心得

    由于进入下午移植FATAS32到STM32F103RBT6上遇到一些问题 经过调试成功后 一些心得来分享一下 本人移植的是原子的代码 具体代码可去原子官网下载 将原子FATFS实验文件夹下的FATFS MALLOC文件夹复制到我们的工程文件
  • 乐鑫ESP32芯片/模组选型参考指南

    1 最近一个项目中用到了ESP32的模组 于是开始查询相关的资料 首先来到乐鑫的官网可以看到关于ESP32分为芯片 模组与开发板三部分 2 由于乐鑫的芯片主打无线通信 包括蓝牙和wifi等一些高频信号 所以对于PCB布局走线要求比较高 为了
  • 上海某马培训软件测试工程师第01期就业班课程

    上海某马培训软件测试工程师第01期就业班课程完整不加密版 课程目录 课 件 一期 zip 第一阶段 数据库 linux LAMP环境搭建 iwebshop5 1临时试用版本 zip nginx 1 14 0 tar gz 3 视频 1 网站
  • Linux之忘记密码解决方案

    我们使用虚拟机时 若是设置的密码过于复杂 偶尔会忘记虚拟机的登录密码 若是忘记了密码 该怎么解决呢 以Centos7虚拟机操作系统为例 给大家提供一个用来解决忘记密码的方法 首先 将虚拟机进行重启 重启后看到以下界面就立即按e键 若不及时按
  • TPS-MIS-DSS

    TPS MIS DSS 业务处理系统TPS 管理信息系统MIS 决策支持系统DSS 业务处理系统TPS 最初级的信息系统 管理具体的事务 TPS是其他类型信息系统的信息产生器 处于企业系统的边界 管理信息系统MIS 对企业整体的信息进行处理
  • Cesium ion是什么?

    Cesium ion是一个云服务平台 当然 主要是基于cesiumjs的服务 包括数据服务等 https cesium com ion assets 1
  • java数组 方法工具包

    自己写的数组中可以用的方法 的工具包 package day09 自定义数组的工具类 public class ArrayUtil 求数组的最大值 public int getMax int arr int max 0 for int j
  • RTSP 交互流程

    转载自 http www 52rd com Blog Archive Thread asp SID 27757 略加修改 RTSP Setup 流程 中的client端 的端口协商部分 RTSP消息格式 RTSP的消息有两大类 请求消息 r
  • 【面向对象】多态数组

    package TcmStudy day26 public class Test03 public static void main String args all new Cat new Cat new Dog new Dog 创建有四个
  • 浅析SuperMap iObject .NET开发完成后私有部署,打包安装

    作者 皇皇 SuperMap iObjict NET组件开发结束后 要部署在用户机器上使用 有两种部署方式 分别是共享部署和私有部署 共享部署简单 下载 NET组件 运行解压包下的Install bat进行安装 有许可就可以使用开发的程序了
  • Computed property was assigned to but it has no setter问题解决

    报这个是因为在computed中定义了某个属性 只有一个return额 而你在其他地方又对这个属性赋值了就会报这个 比如这样 mounted this submit computed setName return this form nam
  • 搭建和配置ROS环境,使用Rviz完成摄像头(camera)的视频采集,摄像头的标定

    目录 一 虚拟机Ubuntu18 04下搭建Ros环境 1 关于ROS机器人操作系统 2 ROS的安装配置 3 运行小海龟示例程序 二 Rviz完成摄像头 camera 的视频采集 1 配置摄像头 2 相关包的下载 三 USB摄像头运行和标