第 2 课 ROS 系统安装和环境搭建

第 2 课 ROS 系统安装和环境搭建

1.版本选择

不同的 Ubuntu 安装的 ROS 版本不同,其中 Ubuntu18.04 的 ROS 对应版本为Melodic。

Ubuntu版本ROS版本
Ubuntu16.04Kinetic
Ubuntu18.04Melodic
Ubuntu20.04Noetic

2.检查 Ubuntu 的软件和更新源

  1. 找到系统中的“软件和更新”。
    在这里插入图片描述
  2. 确保勾上互联网下载的选项,下载源更换成国内的,以阿里云为例。
    在这里插入图片描述

3.设置 ROS 的下载源

3.1 设置国内下载源

打开命令行终端,输入指令:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

按下回车,接着输入虚拟机的密码“ubuntu”(此密码为用户自行设置的,我们这里的密码为 ubuntu)。
在这里插入图片描述

3.2 设置公匙

输入指令

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

在这里插入图片描述

3.3 更新软件包

输入指令sudo apt update
在这里插入图片描述

4. 安装 ROS

打开命令行终端,输入指令

sudo apt install ros-melodic-desktop-full

等待下载安装完成,根据网络状况不同,安装过程大概要 10 分钟。
在这里插入图片描述

5. 设置环境变量

打开命令行终端,依次输入指令

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

完成环境变量配置。
在这里插入图片描述

6. 安装 rosdep

输入指令

sudo apt-get install python3-rosdep

按下回车,安装 rosdep;出现安装确认提示,输入“Y”即可。
在这里插入图片描述

7. 初始化

  1. 输入指令cd /etc/ros/rosdep/sources.list.d进入“sources.list.d”文件夹。
    在这里插入图片描述
  2. 输入指令sudo gedit 20-default.list,编辑此文件。
    在这里插入图片描述
  3. 将原文件中的内容替换为以下内容(直接复制、粘贴,不需要换行,也不要手动输入)。
# os-specific li# os-specific listings first yaml
https://gitee.com/wybros/rosdistro/raw/master/rosdep/osx-homebrew.yaml osx # generic yaml
https://gitee.com/wybros/rosdistro/raw/master/rosdep/base.yaml yaml
https://gitee.com/wybros/rosdistro/raw/master/rosdep/python.yaml yaml
https://gitee.com/wybros/rosdistro/raw/master/rosdep/ruby.yaml gbpdistro
https://gitee.com/wybros/rosdistro/raw/master/releases/fuerte.yaml fuerte # newer distributions
(Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro
index.yaml instead
  1. 修改过程中,终端会出现警告,属于正常现象,不必理会
    在这里插入图片描述
  2. 替换完成后,直接点击保存再关闭文件。
    在这里插入图片描述
  3. 输入指令“cd /usr/lib/python2.7/dist-packages/rosdep2/”,进入到“rosdep2”目录下
    在这里插入图片描述
  4. 输入指令“sudo gedit gbpdistro_support.py”按下回车,若提示有输入虚拟机密码的提示,我们输入“ubuntu”(此密码为用户自行设置的,我们这里的密码为 ubuntu),按下回车,即可打开“gbpdistro_support.py”文 件,找到“FUERTE_GBPDISTRO_URL”代码。
    在这里插入图片描述
    在这里插入图片描述
  5. 将“https://raw.githubusercontent.com/ros/rosdistro/”修改为https://gitee.com/wybros/rosdistro/raw/,(只修改下图红框所示内容,后续内容无需更改)修改完成后点击保存,关闭即可
    在这里插入图片描述
  6. 接着输入指令sudo gedit rep3.py,打开“rep3.py”文件,找到“REP3_TARGETS_URL”代码。
    在这里插入图片描述
    在这里插入图片描述
  7. 将“https://raw.githubusercontent.com/ros/rosdistro/”修改为“https://gitee.com/wybros/rosdistro/raw/”,(只修改下图红框所示内容,后续内容无需更改)修改完成后点击保存,关闭即可。
    在这里插入图片描述
  8. 接着输入指令sudo gedit sources_list.py,打开“sources_list.py”文件,找到“DEFAULT_SOURCES_LIST_URL”代码。
    在这里插入图片描述
    在这里插入图片描述
  9. 将“https://raw.githubusercontent.com/ros/rosdistro/”修改为
    https://gitee.com/wybros/rosdistro/raw/,(只修改下图红框所示内容,后续内容无需更改)修改完成后点击保存,关闭即可。
    在这里插入图片描述
  10. 输入指令cd /usr/lib/python2.7/dist-packages/rosdistro/,进入“rosdistro”目录下。
    在这里插入图片描述
  11. 输入指令sudo gedit __init__.py,进入“init.py”文件,找到“DEFAULT_INDEX_URL”代码。
    在这里插入图片描述
    在这里插入图片描述
  12. 将“https://raw.githubusercontent.com/ros/rosdistro/”修改为
    https://gitee.com/wybros/rosdistro/raw/,(只修改下图红框所示内容,后续内容无需更改)修改完成后点击保存,关闭即可。
    在这里插入图片描述

8.更新

打开新的命令行终端,输入指令rosdep update更新。
在这里插入图片描述
出现如下信息,则代表更新成功了。
在这里插入图片描述
若出现下图读取超时的提示,可能是网络原因,用户可多输入几次rosdep update尝试更新;若还是更新不了,用户可检查“1.7 初始化”的内容,确保修改的内容无误,后再次输入“rosdep update”进行更新。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python+Django+MySQL的图书馆管理系统【附源码,运行简单】

PythonDjangoMySQL的图书馆管理系统【附源码,运行简单】 总览 1、《图书馆管理系统》1.1 方案设计说明书设计目标需求分析工具列表 2、详细设计2.1 登录2.2 注册2.3 程序主页面2.4 图书新增界面2.5 图书信息修改界面2.6 其他功能贴图 3、下载 总览 自己做的项目&am…

mysql从入门到放弃之数据库体系结构与管理

文章目录 前言一、体系结构1、mysql c/s结构介绍2、mysql实例组成3、mysqld程序运行原理3.1、mysqld守护进程结构3.2、 引入sql语句结构化的查询语言3.3、探索一条SQL语句的执行过程 二、mysql逻辑存储结构三、mysql物理存储结构3.1、innodb存储引擎的段、区、页之间的关系 四、…

YZ虚拟资源下载源码-支持对接公众号-对接支付

这款系统内置的模板是电脑系统下载站的类型,当然你也可以用作其他类型,例如软件下载,其他类型的资源下载,知识付费下载等,改下文字内容即可。 支持商城系统,后台可配置支付。青狐修改增加了很多可用性。 …

C++学习笔记(十九)

一、vector容器 1. vector基本概念 功能:vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展:并不是在原空间之后续接新空间&#xff…

VMware 安装及创建一个 CentOS Stream 的详细指南

文章目录 1. 简介2. 下载和安装1)通过官网安装2)通过电脑管家安装 3. 下载操作系统镜像包4. 创建虚拟机结语 1. 简介 在过去,服务器通常是运行单一操作系统和应用程序的物理设备。这就导致了硬件资源浪费和管理复杂性的增加。为了解决这些问…

注册中心--zookeeper 安装并启动

zookeeper 安装/启动 注册中心--zookeeper安装步骤zookeeper常用命令 注册中心–zookeeper zookeeper官方下载地址 最早由雅虎开发,用来解决分布式系统中的一致性问题。功能:包括配置管理、集群的扩容和缩容、分布式锁等等。 安装步骤 1)…

C++学习笔记(二十八):c++ 静态库及动态库的使用

静态库的使用 库的使用会很大程度减少我们的工作,本节对c中静态库和动态库的使用进行简单的介绍。静态链接库意味着这个库会被放到可执行文件中,在生成的exe中。动态链接库是在程序运行时链接的,可以在程序运行时调用加载库函数的方法来实现&…

Java项目:07 Springboot的客户管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 springboot客户管理系统 功能模块:登录修改密码客户列表充值列表消费记录客户类型 环境:IDEAjdk1.8Tomcat9MySQL5.7maven3.6…

基于Matlab/Simulink开发自动驾驶的解决方案

文章目录 处理自动驾驶数据 仿真自动驾驶场景 设计感知算法 设计规划和控制算法 生成代码和部署算法 集成和测试 参考文献 使用 MATLAB/Simulink开发自动驾驶,能够深入建模真实世界的行为、减少车辆测试并验证嵌入式软件的功能,从而推进自动驾驶感…

linux安装系统遇到的问题

这两天打算攻克下来网络编程,发现这也确实是很重要的一个东西,但我就奇了怪了,老师就压根没提,反正留在我印象的就一个tcp/ip七层网络。也说正好,把linux命令也熟悉熟悉,拿着我大一课本快速过过 连接cento…

AI大模型学习笔记一

一、商业观点:企业借助大模型获得业务增长可能 二、底层原理:transformer 1)备注 ①下面每个步骤都是自回归的过程(aotu-regressive):已输出内容的每个字作为输入,一起生成下一个字 ②合起来就…

服务器IP如何隐藏

说到 IP 地址,它足以作为服务器的定位标志,算是在互联网上的名片。因此,当一些黑客攻击服务器时,IP 地址便会成为首要目标。为保护服务器避免受到潜在的攻击和侦察,隐藏服务器的真实 IP 地址是一项重要的措施。 服务器…

花了三天的时间做了一个多功能 AI 助手

嗨!我是团子,大家新年快乐呀~ 前几天看到一些好朋友在朋友圈晒自己的年度总结,立新年 Flag,看到大家一年满满的收获,再看看自己,不由得想再看看人家,然后再看看自己,然后再看看人家…

Android-基础

Activity生命周期 1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。 2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当…

seata分布式事务(与dubbo集成)

1.seata是什么? Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 2.seata的注解 GlobalTransactional:全局事务注解,添加了以后可实现分布式事务的回滚和提交,用法与spring…

数据分析-Pandas如何重塑数据表

数据分析-Pandas如何重塑数据表 数据表,时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。数据分析过程中重新调整,重塑数据表是很重要的技巧,此处选择Titanic数据&…

FreeRTOS 学习相关笔记 附C语言内容补充

学习视频为【正点原子】手把手教你学FreeRTOS实时系统 文章目录 RTOS 入门裸机RTOSFreeRTOS任务调度方式任务状态 FreeRTOS 移植系统配置文件 API函数任务创建和删除动态方式创建任务静态方式创建任务删除任务 任务挂起和恢复函数调度器挂起与恢复临界区任务调度器的挂起和恢复…

anoconda 安装报错

表现形式:Output folder: D:\anoconda\Lib Extract: _nsis.py Extract: _system_path.py Output folder: D:\anoconda........................ 解决办法: 网址:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Sour…

Java循环语句

1:for循环结构 循环结构有三种语句,分别是: for循环 while循环 do…while循环 这三种循环可以做相同的事情,当然它们也有小的区别 1.1 for循环结构 这段代码的作用,是用来展示手机信息1000次。 还提到了这里的几…

Rust-trait

Rust语言中的trait是非常重要的概念。 在Rust中,trait这一个概念承担了多种职责。在中文里,trait可以翻译为“特征”“特点”“特性”等。 成员方法 trait中可以定义函数。用例子来说明,我们定义如下的trait: 上面这个trait包含了一个方法…