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

文章目录

  • 方法一:一键安装(推荐)
  • 方法二:逐步安装(常规安装方式)
    • 1.版本选择
    • 2.检查 Ubuntu 的软件和更新源
    • 3.设置 ROS 的下载源
      • 3.1 设置国内下载源
      • 3.2 设置公匙
      • 3.3 更新软件包
    • 4. 安装 ROS
    • 5. 设置环境变量
    • 6. 安装 rosdep
    • 7. 初始化
    • 8.更新

  本节课适用于Jetson Nano 官方镜像下从0 开始搭建ROS 环境,这里提供两种ROS 系
统的安装方式,“方法一”为一键安装,只需要一条指令即可自动安装整个ROS 系统;“方
法二”则需要设置下载源配置、设置环境变量等步骤。
  如果你是初次接触ROS 的用户,建议选择“方法一”一键即可快速安装,在后续根据
个人需求可选择“方法二”进行体验。

方法一:一键安装(推荐)

  打开命令行终端。在终端输入指令“wget http://fishros.com/install -O fishros && . fishros”,按下回车,然后输入密码。
在这里插入图片描述
接下来输入数字1,选择一键安装ROS。
在这里插入图片描述
在首次安装时需要换源并清理第三方源,所以输入数字1选择更换系统源再安装。
在这里插入图片描述
输入数字2选择更换系统源并清理第三方源。
在这里插入图片描述
输入数字1 选择安装melodic(ROS1)版本。
在这里插入图片描述
输入数字1选择安装melodic(ROS1)桌面版,等待安装成功即可。
在这里插入图片描述

方法二:逐步安装(常规安装方式)

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”进行更新。
在这里插入图片描述

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

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

相关文章

(每日持续更新)jdk api之FileFilter基础、应用、实战

博主18年的互联网软件开发经验,从一名程序员小白逐步成为了一名架构师,我想通过平台将经验分享给大家,因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验,晚上进行用心精简、整理、总结、定稿&…

鸿蒙Harmony-PersistentStorage--持久化存储UI状态储详解

用简单的心境,对待复杂的人生,方能看淡得失,从容入世,潇洒自如,心变得简单了,世界也就简单了 目录 一,定义 二,限制条件 三,使用 一,定义 LocalStorage和App…

midjournery教程(可以在微信中免费使用)

图片比例 9:16 --ar 9:16 图片风格化 --s 1000 --stylize 1000 版本 Midjourney 定期发布新模型版本以提高效率、一致性和质量。默认为最新型号,但可以使用--version或--v参数或使用/settings命令并选择型号版本来使用其他型号。不同的模型擅长处理不同类型的图…

【ASP.NET Core 基础知识】--中间件--内置中间件的使用

ASP.NET Core 中包含很多内置的中间件,我们不可能对每一个内置的中间件进行一一讲解,并且中间件的使用步骤大致一样,因此本文讲解几个常用的内置中间件以及使用中间件的步骤,希望读者们可以举一反三。 一、内置中间件的介绍 1.1…

爬虫-6-数据提取-beautifulsoup4

#声明:本文仅供学习。 (●—●)

12.3在应用层使用SPI总线

在SPI总线驱动框架中提供了一个spidev 的字符设备驱动,在应用层可以通过它来访问SPI总线。 应用层访问SPI总线的步骤 编写spidev设备树节点,在SPI总线的设备树节点下添加spidev设备的树节点,设备树示例如下所示: spidev0: spid…

沉浸式webview输入框被输入法遮挡了怎么办?!

还是那个倒霉的双十一需求,测试时发现发弹幕的输入框被系统输入法挡住了,这个问题在之前UC内核的浏览器时没问题啊。经过各种对比定位,发现是因为这次需求还有个沉浸式的实现,就是这个实现导致输入框无法被弹起。所幸看到了Androi…

c++字符串拼接(对标C语言的sprintf)

C语言的sprintf 我们在一些场景下需要先将字符串拼接起来再使用。 如: 我们要输出一个数组中的数据,输出的格式为--第几个数据为什么? 在这种情况下每次输出的字符串都是不一样的,我们可以通过循环来不断增加i的值,通…

“华为杯“第四届中国研究生数学建模竞赛-D题:邮路规划与邮车调度

目录 摘 要: 1.问题的重述 2.模型的假设与符号说明 2.1 针对本问题,本文做出如下假设 2.2 符号说明 3.问题的数学模型 4.问题的求解 4.1 问题一的求解 4.1.1 最少邮车数的求法 4.1.2 邮路规划及路径选择 4.1.3 问题的求解结果 4.2 问题二的求…

隧道应用3-Cobalt Strike正反向连接多层内网

Cobalt Strike 正向连接多层内网: teamserver 不允许访问 B ,但是服务器上A有权限( A 与 B 在同一网段),若 A 服务上已经有了 cs 的后门,则可以通过 cs 的正向连接去连接 B ,在 teamserver 通…

Java 怎么判断对象是否可以被回收?

Java 怎么判断对象是否可以被回收? 在 Java 中,对象的垃圾回收是由垃圾回收器(Garbage Collector)负责的。判断对象是否可以被回收通常是通过对象的引用计数、可达性分析等机制来完成的。以下是一些判断对象是否可以被回收的方法…

datavrap可视化设计器使用手册

datavrap使用手册 一、产品简介 datavrap是一个动态数据可视化设计器,通过简单配置生成可视化视频,图片和gif。 站长:B站UP,夹克mnnm 这个产品的灵感是在做B站视频时,觉得每次通过修改代码录屏实现视频制作太过于繁琐&…

基于Matlab/Simulink的MIL仿真验证解决方案

文章目录 需求追溯 虚拟环境 模型检查 仿真验证 测试报告 参考文献 针对模型开发阶段的ECU算法,可以很直接地将其与虚拟车辆模型连接起来,通过MIL对其进行验证和确认。可以在开发过程的早期检测到设计错误和不正确的需求,也有助于安全地…

浅析爱泼斯坦事件 —— 弱电控制强电原理

据网络文字与视频资料,爱泼斯坦事件是犹太精英阶层,为了掌控美国国家机器为犹太利益集团服务,而精心设下的一个局。本文先假设这个结论成立,并基于此展开讨论。 我们知道,弱电管理强电是电气工程中的一门专门学问&…

SouthernBiotech抗荧光淬灭封片剂

荧光淬灭又称荧光熄灭或萃灭,是指导致特定物质的荧光强度和寿命减少的所有现象。引起荧光淬灭的物质称为荧光淬灭剂。SouthernBiotech专门开发的Fluoromount-G系列荧光封片剂是以甘油为基础,加入抗荧光淬灭剂,可明显降低荧光淬灭现象&#xf…

【工具】tmux简单用法

tmux 是一个终端复用工具,允许你在单个终端窗口中运行多个终端会话,并在它们之间切换。它提供了分割窗格、多窗口和会话管理等功能,使得在终端中更加高效地工作。 以下是一些 tmux 的基本概念和简单应用: 会话 (Session): 一个 t…

天津python培训学校 Python有怎样的前景?

很多人以为Python之所以变得火热的原因是人工智能和大数据的兴起,这并非是全部的原因,Python是一门很适合人工智能领域的编程语言,人工智能目前虽然还处于前期阶段,但是对人工智能方面的人才确在不断增加,能够提供的岗…

mysql数据库优化

数据库的性能调优和优化是指通过优化数据库结构、SQL语句的编写以及服务器硬件和操作系统等方面的配置,来提高数据库的响应速度和稳定性,以满足业务需求。 结合实际需求,从以下四个方面进行讲解。 一、数据库设计优化 二、SQL语句优化 三、…

为什么很多公司选择不升级JDK版本,仍然使用JDK8?

在讨论为什么许多公司选择不升级JDK版本,而继续使用JDK 8时,我们需要从多个角度来分析这个问题。以下是根据您提供的背景信息进行的一些分析和真实案例。 本文已收录于,我的技术网站 ddkk.com,有大厂完整面经,工作技术…

[易语言]易语言调用C++ DLL回调函数

易语言适合用于数据展示,数据的获取还是VC来的快、方便哈。 因此我一般使用VC编写DLL,使用易语言编写界面,同一个程序,DLL和EXE通讯最方便的就是使用接口回调了。 废话少说,进入主题。 1. VC编写DLL 为了DLL能够调…