ROS 开发环境搭建(虚拟机版本)(一)

news2024/11/22 8:54:40

相关工具,以及镜像(以后有用)

链接: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的系统了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/550310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

办公智慧化风起云涌,华为MateBook X Pro 2023是最短距离

今年以来,我们几乎每个月,甚至每星期都可以看到大模型应用,在办公场景下推陈出新。 办公智慧化已成必然,大量智力工作正在被自动化。一个普遍共识是:AI能力范围之内的职业岌岌可危,AI 能力范围之外的职业欣…

【TES710D】基于复旦微的FMQL10S400全国产化ARM核心模块

板卡概述 TES710D是一款基于上海复旦微电子FMQL10S400的全国产化核心模块。该核心模块将复旦微的FMQL10S400(兼容FMQL20S400)的最小系统集成在了一个50*70mm的核心板上,可以作为一个核心模块,进行功能性扩展,特别是用…

第二章、认识用户体验五要素(本文作用是通俗讲解,让你更容易理解)

1.用户体验要素分五个层面,分别是战略层、范围层、结构层、框架层、表现层。 战略层:指的是产品所要解决的社会问题,和公司在这个产品上的收益目标。也就是大家所说的产品战略。 范围层:指的是我们要做的业务范围,我…

零基础学Java——基础part01

java基础第一篇 今日任务: 1、什么是软件开发 2、人机交互 3、常用的dos命令(了解) 4、什么是计算机语言 5、Java三种技术架构(了解) 6、Java语言特性(跨平台原理) (了解) 7、Java开发环境搭…

模拟运行600万年 数据0损坏!Solidigm把QLC闪存玩到了极致

不可否认的是,SLC、MLC、TLC、QLC、PLC、HLC……闪存技术一路走下来,整体的可靠性、寿命指标是逐步走低的,这也是NAND闪存架构天然属性所决定的。 当然,这不代表QLC、PLC闪存的就难堪大用,关键是看如何设计与优化&…

Carla自动驾驶仿真四:pygame渲染Camera画面及车辆控制(代码详解)

文章目录 前言一、依赖库安装1、pygame安装2、numpy安装 二、Pygame渲染Carla Camera画面1、连接Carla并初始化TrafficManager2、生成自动驾驶车辆并设置交通行为3、创建初始化pygame surface对象的函数4、创建pygame处理Carla图像的回调函数5、创建pygame键盘控制车辆运动的函…

软件设计师 试题二做题技巧

问题一:去需求分析中找相应的联系类型 问题二先看缺少的属性是不是er图中的实体,如果是实体文中就会有相关的信息,如果没有就对应的去图中找,转化为关系模式对应的联系也要转化为关系模式 如果是一对一就把联系归并到任意一方实…

JS 实现拖拽元素的功能

JS 实现拖拽元素的功能 这篇笔记比较短&#xff0c;主要过一遍 draggable 的事件。 首先简单看一下 HTML 实现&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Comp…

【小程序修改说明】分享朋友的,请忽略!

一、把js文件夹复制到根目录&#xff0c;跟pages同一目录 二、把下面的代码放到app.wxss最下面 代码 import "/js/font-awesome.wxss"; import "/js/font-awesome_small.wxss"; 三、ywym.wxml修改 1、ywym.wxml的最上边加上如下代码 <navigator url&…

【Linux】线程详解之线程控制

文章目录 POSIX线程库创建线程线程ID及进程地址空间布局线程等待pthread_join 线程终止pthread_exit函数pthread_cancel函数 线程分离理解pthread库 POSIX线程库 POSIX线程&#xff08;英语&#xff1a;POSIX Threads&#xff0c;常被缩写为Pthreads&#xff09;是POSIX的线程标…

若依源码解析:DataScopeAspect实现数据范围的控制

文章目录 源代码使用场景界面操作SysDeptServiceImplSysUserServiceImplSysUserMapperDataScope定义 代码解析Aspect和Component不同的数据权限类型Before通知处理数据范围的方法 源代码 Aspect Component public class DataScopeAspect {/*** 全部数据权限*/public static fi…

Python潮流周刊#2:Rust让Python再次伟大

△点击上方“Python猫”关注 &#xff0c;回复“1”领取电子书 这里记录每周值得分享的 Python 及通用技术内容&#xff0c;部分为英文&#xff0c;已在小标题注明。&#xff08;本期标题取自其中一则分享&#xff0c;不代表全部内容都是该主题&#xff0c;特此声明。&#xff…

【Linux Network】I/O多路转接之select

目录 1. 初识select 1.1 select函数原型 1.2 理解select执行过程 1.3 socket就绪条件 1.4 select的特点 1.5 select优缺点 2. 基于select的多人聊天程序 server源代码&#xff1a; client的登录&#xff1a; 结果演示&#xff1a; Linux Network&#x1f337; 1. 初识select 系…

C++初阶--C++入门之基础学习

0.前言 C是一门非常好的编程语言&#xff0c;但可能在学习C的过程中会遇到很多困难。人们常说 “一个人走得很快&#xff0c;一群人会走的更远”&#xff0c; 所以就让我们一起攻坚克难&#xff0c;一起征服C吧&#xff01;从本章开始&#xff0c;我们将开始C的基础学习&#x…

Linux简介及基础操作

1.Linux的作用&#xff1a; 商业服务器基本都是linux的、开源软件都先支持linux、大数据分析&#xff0c;机器学习首选linux、整个互联网地基基本由linux支撑起来。如&#xff1a; 生活中的手机是基于linux二次开发的&#xff0c;还有路由器也是基于linux开发的。 2.Linux是什…

acwing提高--多源BFS+最小步数模型+双端队列广搜

多源BFS 1.矩阵距离 题目https://www.acwing.com/problem/content/description/175/ #include<bits/stdc.h> using namespace std; #define x first #define y second typedef pair<int,int> PII; const int N1010; char g[N][N]; int dist[N][N]; PII q[N*N];…

【轻量化网络系列(2)】MobileNetV2论文超详细解读(翻译 +学习笔记+代码实现)

前言 上一篇我们介绍了MobileNetV1&#xff0c;主要是将普通Conv转换为dw和pw&#xff0c;但是在dw中训练出来可能会很多0&#xff0c;也就是depthwise部分得到卷积核会废掉&#xff0c;即卷积核参数大部分为0&#xff0c;因为权重数量可能过少&#xff0c;再加上Relu激活函数…

稳定币是个好生意

* * * 原创&#xff1a;刘教链 * * * 本月早些时候&#xff0c;市值第一的稳定币发行商Tether公布了其一季度的储备和盈利数据[1]。不能说是亮眼&#xff0c;只能说是非常亮眼。就看几个亮点吧&#xff1a; 1. 一季度净利润14.8亿美元&#xff0c;是2022年四季度的两倍多&…

关于Java中的抽象类注意事项

文章目录 &#x1f3c6;文章导读&#x1f342;抽象类的定义&#x1f342;抽象类的特性&#x1f342;总结&#xff1a;面试题普通类和抽象类有哪些区别&#xff1f;抽象类能使用final继承吗&#xff1f; &#x1f3c6;文章导读 在本篇文章中&#xff0c;对抽象类进行了一个详细的…