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…...
数字城市发展下的技术趋势,你知道多少?
提到数字城市、智慧城市大家都会感觉经常在耳边听到,但是要确切说出具体的概念还是有一点难度的。具体来说:数字城市是一个集合多种技术的系统,以计算机技术、多媒体技术和大规模存储技术为基础,以宽带网络为纽带,运用…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
