ROS 开发环境搭建(虚拟机版本)(一)
相关工具,以及镜像(以后有用)
链接:https://pan.baidu.com/s/1xgtp-XGFFNCACV_-0TJO2A
提取码:ar1w
1. 下载vm虚拟机(我选择的官方最新的vm虚拟机),安装好
2.安装百度网盘里面的ubuntu镜像 18版本的
然后下面没有什么好说的,会装镜像就会,不会的自己去搜索这么装镜像的吧。这真没有什么好说的。
后面配置,设置自己弄吧。一直弄好为止。这都不会,我也没有办法,找其他的文章如何安装吧。
安装好后的样子:
然后右键:点拍摄快照,如果后面弄坏虚拟机,恢复快照就可以回到现在的 这个样子
然后我们打开一个终端输入命令:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
命令解释:
这是一个在Unix/Linux终端中的命令,用于向系统的软件包管理器添加一个新的软件包源,特别是用于机器人操作系统(ROS)的软件包源。以下是该命令及其参数的解释:
sudo
:该命令使用管理员权限运行后续命令,这是修改系统文件和目录所必需的。
sh -c
:告诉终端将后续命令作为shell脚本运行,-c
选项表示该命令应被视为单个参数。
'. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/
lsb_release -csmain" > /etc/apt/sources.list.d/ros-latest.list'
:这是实际运行的命令,它执行以下操作:
- 前半部分
'. /etc/lsb-release &&'
,会读取/etc/lsb-release
文件并设置与系统Linux发行版相关的环境变量。- 后半部分
echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/
lsb_release -csmain" > /etc/apt/sources.list.d/ros-latest.list'
,创建一个名为ros-latest.list
的新文件,并在该文件中写入一行包含ROS软件包源URL的内容,该URL是针对与从lsb_release -cs
命令获取的系统发行版代号匹配的Ubuntu发行版的。echo
命令将字符串"deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/
lsb_release -csmain"
写入该文件,这是APT软件包源行的有效格式。总之,该命令用于向系统的软件包管理器添加一个新的ROS软件包源,允许用户从该软件包源安装和更新ROS软件包。
sudo
命令用于确保该命令具有必要的权限来修改系统文件,而sh -c
命令用于在终端中作为shell脚本运行该命令。
继续执行以下命令:
sudo apt-key adv --keyserver 'hkp://pgp.mit.edu:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
效果:
命令解释:
这是一个在Unix/Linux终端中的命令,用于将公钥添加到系统的APT密钥环中,以便验证从该公钥签名的软件包。以下是该命令及其参数的解释:
sudo
:该命令使用管理员权限运行后续命令,这是修改系统文件和目录所必需的。apt-key
:这是一个APT密钥管理器的命令,用于管理系统的密钥环。adv
:这是一个选项,允许传递高级选项给APT密钥管理器。--keyserver 'hkp://pgp.mit.edu:80'
:这是一个选项,指定从哪个密钥服务器获取公钥。在这种情况下,它指定从MIT PGP Key Server获取公钥,hkp
是指定密钥服务器协议的选项,pgp.mit.edu
是指定密钥服务器的主机名或IP地址,80
是指定密钥服务器的端口号。--recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
:这是一个选项,用于指定要添加到密钥环中的公钥的ID。在这种情况下,它指定了ROS软件包仓库的公钥ID。因此,这个命令的作用是从MIT PGP Key Server获取ROS软件包仓库的公钥,并添加到系统的APT密钥环中,以便在安装或更新ROS软件包时验证软件包的签名。
sudo
命令用于确保该命令具有必要的权限来修改系统文件,而apt-key
命令则允许管理系统的密钥环。
然后再执行:
sudo apt-get update
sudo apt-get install ros-melodic-desktop-full
效果:
等2000年吧,要梯子更快,因为那个文档就是用的外国的链接,只有软件是国内的
终于安装好了。2个小时
然后执行命令:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
这个命令的含义是将ROS(Robot Operating System)的Melodic版本的
setup.bash
文件添加到当前用户的.bashrc
文件中。具体来说,该命令的作用是向
~/.bashrc
文件中添加一行文本,即source /opt/ros/melodic/setup.bash
。这个文本行的含义是在bash shell启动时自动执行ROS Melodic的setup.bash
文件,从而设置ROS环境变量和其他必要的配置。通过将
source /opt/ros/melodic/setup.bash
添加到.bashrc
文件中,您可以确保每次打开新的终端窗口或会话时,ROS环境变量和配置都会自动设置,而无需手动输入命令。需要注意的是,该命令假定您已经在系统中安装了ROS Melodic,并且
/opt/ros/melodic/setup.bash
路径正确。如果您使用的是其他版本的ROS或其他路径,请相应地修改该命令中的路径和版本号。
效果:
两个终端分别运行:
roscore
rosrun turtlesim turtlesim_node
效果:
然后再开一个终端 :
rosrun turtlesim turtle_teleop_key
然后我们像刚刚那样再创建一个虚拟机快照,这样以后我们系统有问题,我们可以恢复到这里已经安装好了的ros的系统了。
相关文章:

ROS 开发环境搭建(虚拟机版本)(一)
相关工具,以及镜像(以后有用) 链接:https://pan.baidu.com/s/1xgtp-XGFFNCACV_-0TJO2A 提取码:ar1w 1. 下载vm虚拟机(我选择的官方最新的vm虚拟机),安装好 2.安装百度网盘里面的…...
vue3做项目是需要注意的事项
Vue.js是一款非常优秀的前端开发框架,其第三代版本Vue3已经发布了。Vue3在性能、体验和功能等方面有了很大的提升,因此它成为了前端工程师们关注的焦点之一。在使用Vue3做项目时,有一些需要注意的事项,以下是对这些注意事项的介绍…...
docker日志轮转
cat /etc/docker/daemon.json { "log-driver": "json-file", "log-opts": { "max-size": "250m", "max-file": "3" } }...

论文阅读_音频压缩_Encodec
论文信息 name_en: High Fidelity Neural Audio Compression name_ch: 高保真神经音频压缩 paper_addr: http://arxiv.org/abs/2210.13438 date_read: 2023-04-27 date_publish: 2022-10-24 tags: [‘深度学习’,‘音频’] author: Alexandre Dfossez, Meta AI, FAIR Team cod…...

第06章_多表查询
第06章_多表查询 多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了…...

自学黑客(网络安全)有哪些技巧——初学者篇
很多人说,要想学好黑客技术,首先你得真正热爱它。 热爱,听着多么让人激情澎湃,甚至热泪盈眶。 但很可惜,“热爱”这个词对还没入门的小白完全不管用。 如果一个人还没了解过你就说爱你,不是骗财就是骗色…...
CMD与DOS脚本编程【第四章】
预计更新 第一章. 简介和基础命令 1.1 介绍cmd/dos脚本语言的概念和基本语法 1.2 讲解常用的基础命令和参数,如echo、dir、cd等 第二章. 变量和运算符 2.1 讲解变量和常量的定义和使用方法 2.2 介绍不同类型的运算符和运算规则 第三章. 控制流程和条件语句 3.1 介…...
Liunx安装Docker
Liunx在线安装Docker 简介: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不…...

docker:容器的数据卷
1 数据卷概念及作用 1.1 什么是容器数据卷 先来看看Docker的理念: 将应用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的容器之间希望有可能共享数据 Docker容器产生的数据,如果不通过…...

【TCP】对TCP三次握手的个人理解
三次握手 TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的。三次握手的过程如下图: 一开始,客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口,处于 LISTEN 状态 …...

squid的基本代理
一、Squid代理服务器的概述 squid 作为一款服务器代理工具,可以缓存网页对象,减少重复请求,从而达到加快网页访问速度,隐藏客户机真实IP,更为安全。 Squid主要提供缓存加速、应用层过滤控制的功能 1、squid代理的工…...

【从零开始写视觉SLAM】v0.1基于特征点的简单VO
v0.1版本的oSLAM实现了基于orb特征点的简单视觉里程计,通过连续两帧的rgbd数据实现相机相对位姿的估计。 #mermaid-svg-ibQfHFVHezQD5RWW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ibQfHFVHezQD5RW…...

CentOS-7 安装 MariaDB-10.8
一、安装之前删除已存在的 Mysql/MariaDB 1 查找存在的 MariaDB # 注意大小写 rpm -qa | grep MariaDB # rpm -qa 列出所有被安装的rpm package (-qa:query all) rpm -qa | grep mariadb # grep (缩写来自Globally search a Regular Expre…...

Packet Tracer – 对 VLAN 实施进行故障排除 – 方案 1
Packet Tracer – 对 VLAN 实施进行故障排除 – 方案 1 地址分配表 设备 接口 IP 地址 子网掩码 交换机端口 VLAN PC1 NIC 172.17.10.21 255.255.255.0 S2 F0/11 10 PC2 NIC 172.17.20.22 255.255.255.0 S2 F0/18 20 PC3 NIC 172.17.30.23 255.255.255.0…...

五、c++学习(加餐1:汇编基础学习)
经过前面几节课的学习,我们在一些地方都会使用汇编来分析,我们学习汇编,只是学习一些基础,主要是在我们需要深入分析语法的时候,使用汇编分析,这样会让我们更熟悉c编译器和语法。 从这节课开始,…...

iOS正确获取图片参数深入探究及CGImageRef的使用(附源码)
一 图片参数的正确获取 先拿一张图片作为测试使用 图片参数如下: 图片的尺寸为: -宽1236个像素点 -高748个像素点 -色彩空间为RGB -描述文件为彩色LCD -带有Alpha通道 请记住这几个参数,待会儿我们演示如何正确获取。 将这张图片分别放在…...
Typescript 5.0 发布:快速概览
探索最令人兴奋的功能和更新 作为一种不断发展的编程语言,TypeScript 带来了大量的改进和新功能。在本文中,我们将深入探讨 TypeScript 的最新版本 5.0,并探索其最值得关注的更新。 1. 装饰器 TypeScript 5.0 引入了一个重新设计的装饰器系…...
【图像处理 】卡尔曼滤波器原理
目录 一、说明 二、它是什么? 2.1 我们可以用卡尔曼滤波器做什么? 2.2 卡尔曼滤波器如何看待您的问题...

YOLOv5 实例分割入门
介绍 YOLOv5 目标检测模型以其出色的性能和优化的推理速度而闻名。因此,YOLOv5 实例分割模型已成为实时实例分割中最快、最准确的模型之一。 在这篇文章中,我们将回答以下关于 YOLOv5 实例分割的问题: YOLOv5检测模型做了哪些改动,得到了YOLOv5实例分割架构?使用的 Prot…...

数字城市发展下的技术趋势,你知道多少?
提到数字城市、智慧城市大家都会感觉经常在耳边听到,但是要确切说出具体的概念还是有一点难度的。具体来说:数字城市是一个集合多种技术的系统,以计算机技术、多媒体技术和大规模存储技术为基础,以宽带网络为纽带,运用…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...

MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...

spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...