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

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

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

相关文章

SpringBoot Redis入门(四)——Redis单机、哨兵、集群模式

单机模式:单台缓存服务器,开发、测试环境下使用;哨兵模式:主-从模式,提高缓存服务器的高可用和安全性。所有缓存的数据在每个节点上都一致。每个节点添加监听器,不断监听节点可用状态,一旦主节点…

主流人工智能AI工具测评

主流人工智能AI工具测评 主流的人工智能AI工具ChatGPT ——OpenAI研发CHAT_BISON——Google研发Qwen通义千问 ——阿里云研发文心一言——百度研发 根据10个问题分析人工智能的回答女朋友生气了怎么哄千元机性价比推荐小米13 和 vivo iQOO 11s哪个好计算机专业毕业论文护士年终…

kafka-ui通过docker部署

创建docker-compose.yaml services:kafka-ui:container_name: kafka-uiimage: provectuslabs/kafka-ui:latestports:- "8080:8080"environment:DYNAMIC_CONFIG_ENABLED: "true"volumes:- ~/kui:/etc/kafkauiextra_hosts:- "kafka1:10.10.33.30"…

web前端第二次作业

1&#xff0c;计算用户指定的数值内的奇数和 效果运行图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>计算用户指定的数值内的奇数和</title> </head>…

使用 Haproxy 搭建Web群集

本章主要学习&#xff1a; 熟悉 Haproxy 功能以常用群集配置调度算法学会Haproxy 常用配置学会 Haproxy 参数优化 简介 在前面已经学习了使用Nginx&#xff0c;LVS 做负载均衡群集&#xff0c;他们都具有各自的特点&#xff0c;本章将要介绍另一款比较流行的群集调度工具 Hap…

CMU15-445-Spring-2023-Project #3 - 前置知识(lec10-14)

Lecture #10_ Sorting & Aggregation Algorithms Query Plan 数据库系统会将 SQL 编译成查询计划。查询计划是一棵运算符树。 Sorting DBMS 需要对数据进行排序&#xff0c;因为根据关系模型&#xff0c;表中的tuple没有特定的顺序。排序使用 ORDER BY、GROUP BY、JOIN…

虚拟机 以及 Centos 7的 安装全过程

目录 安装VMwere Workstion 虚拟机的操作过程 CentOS 7 安装过程 install CentOS 7 安装操作系统 安装VMwere Workstion 虚拟机的操作过程 更改安装位置 到下面图片中的这一个步骤&#xff0c;可以点击许可证&#xff0c;输入密钥就可以使用了&#xff0c; 密钥可以去某度或…

阿里云有哪些优势?为什么选择阿里云?

为什么选择阿里云&#xff1f;阿里云服务器有哪些优势&#xff1f;阿里云全球第三&#xff0c;国内第一云&#xff0c;阿里云服务器网aliyunfuwuqi.com分享云服务器ECS在丰富ECS实例架构、弹性灵活、稳定可靠、便捷易用、安全保障和成本优化多方面优势&#xff1a; 阿里云服务…

Nvidia-docker的基础使用方法

安装&#xff1a; 安装nvidia-docker&#xff1a; distribution$(. /etc/os-release;echo $ID$VERSION_ID)curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.l…

代码随想录 Leetcode344. 反转字符串

题目&#xff1a; 代码(首刷自解 2024年1月16日&#xff09;&#xff1a; class Solution { public:void reverseString(vector<char>& s) {int n s.size();int left 0, right n - 1;while (left < right) {char tep s[left];s[left] s[right];s[right] te…

MetaGPT入门(一)

本文在Win11操作系统下进行&#xff0c;工具pycharm 一、环境准备 1.建议使用conda虚拟环境 安装anaconda参考&#xff1a;Windows10下Anaconda的安装_windows anaconda 路径-CSDN博客 打开Anaconda Powershell Prompt命令窗口&#xff0c;输入下面命令&#xff0c;创建3.1…

HNU-编译原理-实验1-利用FLEX构造C-Minus-f词法分析器

编译原理实验1利用FLEX构造C-Minus-f词法分析器 计科210X 甘晴void 202108010XXX 实验要求 详细的实验项目文档为 https://gitee.com/coderwym/cminus_compiler-2023-fall/tree/master/Documentations/lab1 学习和掌握词法分析程序的逻辑原理与构造方法。通过 FLEX 进行实…

反向代理的本质是什么?

反向代理是一种网络架构模式&#xff0c;通常用于提供静态内容、处理安全、负载均衡和缓存等任务。在这种架构中&#xff0c;客户端发送的请求首先到达反向代理服务器&#xff0c;然后由反向代理服务器将请求转发给后端的实际服务器。反向代理服务器可以处理和修改请求和响应&a…

ThinkPHP5.0.0~5.0.23RCE 漏洞分析及挖掘思路

前言 本节我将分析thinkphp5.0.x 版本的RCE漏洞&#xff0c;根据漏洞的研究模拟挖掘此漏洞的思路 本次分析框架下载&#xff0c;由于官方已经下架了相关的下载接口&#xff0c;这里我们用三方下载 一份v5.0.22版本的升级中...https://www.codejie.net/5828.html 附赠 thinkp…

资源调度-HPA:基于负载指标自动水平扩容缩容Pod

Pod 自动扩容&#xff1a;可以根据 CPU 使用率或自定义指标&#xff08;metrics&#xff09;自动对 Pod 进行扩/缩容。 控制管理器每隔30s&#xff08;可以通过–horizontal-pod-autoscaler-sync-period修改&#xff09;查询metrics的资源使用情况 支持三种metrics类型 预定义…

RabbitMQ交换机(1)

1.交换机Exchange RabbitMQ消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。实际上&#xff0c;通常生产者甚至都不知道这些消息传递传递到了哪些队列中。 相反&#xff0c;生产者只能将消息发送到交换机(exchange)&#xff0c;交换机工作的内容非常简单&am…

MySQL-多表联合查询

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…

Java面试基础|数据结构 -实时更新

1.HashMap和ConcurrentHashMap介绍 核心是一个Node数组&#xff0c;数据结构与hashMap相似 使用CAS操作来实现无锁的更新&#xff0c;提高了并发性。当更新节点时&#xff0c;它会使用CAS来替换节点的值或链接&#xff0c;如果CAS失败&#xff0c;表明有其他线程也在进行修改&a…

使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第十九章到第二十一章

十九、碰撞检测 原文&#xff1a;inventwithpython.com/invent4thed/chapter19.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 碰撞检测涉及确定屏幕上的两个物体何时相互接触&#xff08;即发生碰撞&#xff09;。碰撞检测对于游戏非常有用。例如&#xff0c;如…

K8S之configMapsecret

job 第一个是初始化尝试&#xff0c;初始化尝试失败之后&#xff0c;会再重试两次。 配置资源管理: Secret Configmap*:1.2加入的新特征 1.18 Secret: 保存密码&#xff0c;token,敏感的k8s资源 这类数据可以存放在镜像当中&#xff0c;但是防止secret当中可以更方便的控…