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

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

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

相关文章

leetcode 2418. 按身高排序

题目 给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。 解题方法&#xff…

Kafka-RecordAccumulator分析

前面介绍过,KafkaProducer可以有同步和异步两种方式发送消息,其实两者的底层实现相同,都是通过异步方式实现的。 主线程调用KafkaProducer.send方法发送消息的时候,先将消息放到RecordAccumulator中暂存,然后主线程就…

SpringBoot教程(十七) | SpringBoot中ApplicationEvent用法

SpringBoot教程(十七) | SpringBoot中ApplicationEvent用法 对不起大家,昨天文章里的告别说早了,这个系列还不能就这么结束。 我们前面的文章中讲解过RabbitMQ的用法,所谓MQ就是一种发布订阅模式的消息模型。在Spring中其实本身也为我们提供…

如何十分钟快速看懂一篇英文CV论文?

已经2024年了,该出现一个写论文解读的AI Agent了。 大家肯定也在经常刷论文吧。 但真正尝试过用GPT去刷论文、写论文解读的小伙伴,一定深有体验——费劲。其他agents也没有能搞定的,今天我发现了一个超级厉害的写论文解读的agent &#xff…

快速上手的 AI 工具-文心一言

简介 最近正打得火热的AIGC概念,相信大家肯定也都多少接触到了,那么AIGC概念股到底是什么呢?我个人最近也看了一些平台如:文心一言、通义千问、讯飞星火、豆包等等!各位朋友也千万不要错过啦,真是各有各的特…

国考省考行测:语句排序,选择首句、选择尾句

国考省考行测:语句排序 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申论和行测的重要知识点 遇到…

MySQL之单表查询

素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varchar(10) NO…

二阶构造设计模式

目录 构造函数回顾 深入思考 实验 构造函数的真相 半成品对象 引入二阶构造设计模式 设计理念 二阶构造设计模式图 二阶构造示例 完整demo 小结 构造函数回顾 类的构造函数用于对象的初始化。构造函数与类同名并且没有返回值。构造函数在对象定义时自动被调用 深入…

《机器人学一(Robotics(1))》_台大林沛群 第4周 Quiz4

前两题主要是细心观察即可,第三题主要是使用勾股定理以及简单的反三角函数求解即可,长度与角度答案分别为80和30,不作赘述,主要阐述从第四题开始的解题过程。 目录 P4.P5 - P7.P8. P4. 根据上述推导过程编写代码如下: import num…

nn.BCEWithLogitsLoss中weight参数和pos_weight参数的作用及用法

nn.BCEWithLogitsLoss中weight参数和pos_weight参数的作用及用法 weight参数pos_weight参数 weight参数 上式是nn.BCEWithLogitsLoss损失函数的计算公式,其中w_n对应weight参数。 如果我们在做多分类任务,有些类比较重要,有些类不太重要&…

Java实现城市桥梁道路管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥梁4.2 新增城市桥梁4.3 编辑城市桥梁4.4 删除城市桥梁4.5 查询单个城市桥梁 五、免责说明 一、摘要 1.1 项目介绍 基于VueSpringBootMySQL的城市桥梁道路管理系统,支持…

项目压测优化实践思路

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术🔥如果感觉博主的文章还不错的…

Vue入门六(前端路由的概念与原理|Vue-router简单使用|登录跳转案例|scoped样式|混入(mixin)|插件)

文章目录 前要:前端路由的概念与原理1)什么是路由2)SPA与前端路由3)什么是前端路由4)前端路由的工作方式 一、Vue-router简单使用1)什么是vue-router2) vue-router 安装和配置的步骤① 安装 vue-router 包②…

【MATLAB源码-第112期】基于matlab的IDMA系统仿真,输出误码率和误块率,采用turbo编码。

操作环境: MATLAB 2022a 1、算法描述 IDMA(交织多址接入)系统详细描述 1. 基本原理: - IDMA是一种基于码分多址(CDMA)的通信技术,它通过为每个用户分配一个独特的交织模式来实现用户之间…

vue前端开发自学基础,动态切换组件的显示

vue前端开发自学基础,动态切换组件的显示&#xff01;这个是需要借助于&#xff0c;一个官方提供的标签&#xff0c;名字叫【Component】-[代码demo:<component :is"ComponetShow"></component>]。 下面看看代码详情。 <template><h3>动态…

eureka进行服务注册

1.引入依赖 在想要在eureka注册的服务的pom.xml文件中引入eureka客户端依赖 <!--eureka客户端依赖--> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> …

canvas创建图像数据,并在画布上展示

查看专栏目录 canvas示例教程100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

QT上位机开发(进度条操作)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 进度条是一个比较常见的控件。如果某个操作需要很长的时间才能完成&#xff0c;那么这个时候最好有一个进度条提示&#xff0c;这样比较容易平复一…

价值7500的在线授权网站源码支持IP+域名+双向授权全开源

PHP授权验证更新系统完整版&#xff0c;一键更新系统&#xff0c;一键卡密生成自助授权功能&#xff0c;域名ip双重验证功能等等 修复盗版检测&#xff0c;确保实时查看盗版 修复在线加密系统&#xff0c;一键加密 授权系统几乎所有的程序都能整合使用,包括您的app和计算机程序…

OpenCV——八邻域断点检测

目录 一、理论基础1、八邻域2、断点检测 二、代码实现三、结果展示四、参考链接 OpenCV——八邻域断点检测由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫。 一、理论基础 1、八邻域 图1 八邻域示意图 图…