当前位置: 首页 > news >正文

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 -cs main" > /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 -cs main"写入该文件,这是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编译器和语法。 从这节课开始&#xff0c…...

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

数字城市发展下的技术趋势,你知道多少?

提到数字城市、智慧城市大家都会感觉经常在耳边听到,但是要确切说出具体的概念还是有一点难度的。具体来说:数字城市是一个集合多种技术的系统,以计算机技术、多媒体技术和大规模存储技术为基础,以宽带网络为纽带,运用…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

Java编程之桥接模式

定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

push [特殊字符] present

push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...

抽象类和接口(全)

一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...