Ubuntu20.04安装ROS Noetic (一篇博客走遍天)

2023-10-22 21:40

本文主要是介绍Ubuntu20.04安装ROS Noetic (一篇博客走遍天),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、版本选择
  • 二、下载步骤
    • 1. 设置ROS的下载源
      • 1.1 设置中科大源
      • 1.2 设置自己主机的公钥
      • 1.3 更新最新可用软件包列表
    • 2. 安装ROS
      • 2.1 ROS 桌面完全版本
      • 2.2 ROS 桌面版本
      • 2.3 ROS基础版本
      • 2.4 ROS额外功能包 DLC
    • 3. 设置环境变量
      • 3.1 bash
      • 3.2 zsh
      • 3.3 随心所欲切换环境
    • 4. 下载安装包的依赖
    • 5. rosdep初始化
      • 常见报错与解决方法
        • 报错:Website may be down
        • 报错:The read operation timed out
      • 成功安装
    • 6. rosdep update更新
      • 经典报错:更新超时read operation timed out
    • 7. 运行ROS功能包检验安装
  • 三、总结

前言

Ubuntu安装ROS教程众多,但是ROS版本和Ubuntu版本一直更新,ROS有对应的Ubuntu版本下载,版本不一样就会出现不一样的配置问题,甚至导致安装失败或者安装残缺,本文发布于 2022.10.12 保证实时性

一、版本选择

不同的Ubuntu安装的Ros版本不同。Ubuntu20.04对应的ros版本为ROS Noetic ROS安装官网
在这里插入图片描述

ROS版本Ubuntu版本
Melodic18.04
Noetic20.04

二、下载步骤

接下来的步骤参考ROS官网的安装步骤详解:Noetic官网

1. 设置ROS的下载源

因为ROS的官方源是外网下载,速度比较慢,这里推荐选择镜像mirrors下载

1.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'

1.2 设置自己主机的公钥

# 下载一个用来请求 Web 服务器的命令行工具
sudo apt install curl # if you haven't already installed curl# 从远程服务器下载公钥并添加
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

这里我遇到了一个问题,就是从远程服务器下载公钥时报错

在这里插入图片描述

这是因为http://raw.githubusercontent.com是墙外地址,无法访问

解决方法:

弄个梯子,或者从另一个网址获取密钥,如下

wget http://packages.ros.org/ros.key
sudo apt-key add ros.key

1.3 更新最新可用软件包列表

sudo apt update

2. 安装ROS

安装ROS有许多不同版本可以选择,官网也对其有详细的介绍

2.1 ROS 桌面完全版本

这个版本是包括ROS所有功能包,包括rqt,rviz,机器人通用库,2D / 3D模拟器,导航和2D / 3D感知等等的全套基础组件(新手强烈建议安装这个就好)

在这里插入图片描述

sudo apt install ros-noetic-desktop-full

2.2 ROS 桌面版本

这个版本是包括ROS的基础功能包,还有一个额外的常用工具,例如 rqt (ROS上位机)、rviz(一种ROS强大的仿真软件)

在这里插入图片描述

sudo apt install ros-noetic-desktop

2.3 ROS基础版本

这个版本是ROS最基础的功能包,有ROS的通信包,没有 GUI 可视化的工具

在这里插入图片描述

sudo apt install ros-noetic-ros-base

2.4 ROS额外功能包 DLC

同时ROS还支持安装特定的功能包,通过下面的ROS索引链接来找到想要下载的功能包ROS Index 软件包索引

在这里插入图片描述

sudo apt install ros-noetic-PACKAGE
sudo apt install ros-noetic-slam-gmapping
apt search ros-noetic

3. 设置环境变量

我们现在已经成功安装好ROS了,但是现在终端bash还无法识别ROS相关的命令

Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求

所以我们需要为ROS添加环境变量,与python是类似的,让我们的终端可以识别roscore等命令

注意!!!查看自己的终端类型,不同的终端有不同的配置文件,一般是bash

echo $0

3.1 bash

临时添加环境变量

source /opt/ros/noetic/setup.bash

上面的命令是临时只对当前终端的环境配置生效,如果我们新开一个终端就会失效,所以我们可以将激活环境变量的命令写入终端的配置文件里面,每次新启动终端就可以自动加载环境变量

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

3.2 zsh

临时添加环境变量

source /opt/ros/noetic/setup.zsh

永久添加环境变量

echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc

3.3 随心所欲切换环境

这里介绍一个非常好用的命令行命令 alias 他的功能是可以设置命令行命令的别名,以简写命令,提高操作效率(PS:也可以避免出现 sudo rm -rf /* 直接重开的情况)

具体用法:

在这里插入图片描述

参考~/.zshrc 文件给出的例子

4. 下载安装包的依赖

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

根据官网的介绍,为了更好构建ROS的工作空间,有很多多样化的工具都会不断更新发布,为了下载这些工具和依赖需要安装上述ROS功能包,强烈建议安装,例如 rosinstall 就是一个非常常用的命令行工具,让你只用一个命令就可以很快速简单下载很多ROS功能包源码

5. rosdep初始化

在使用很多ROS工具之前,你需要初始化rosdep,rosdep能够让你更快简单下载源码的系统依赖,针对本主机的系统适配,大家也可以注意到前面其实我们已经下载了 python3-rosdep

所以我们只需要对rosdep进行初始化和更新

sudo rosdep init

常见报错与解决方法

报错:Website may be down

第一种报错:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

在这里插入图片描述

原因

初始化的这一步将会从外国的网站raw.githubusercontent.com拉取一些信息和文件。这个网站现在被墙了,导致这一步出错。

解决方法

  1. 通过IPAddress.com首页,输入raw.githubusercontent.com查询到真实IP地址

在这里插入图片描述

  1. 修改/etc/hosts文件,终端输入以下命令并回车:sudo gedit /etc/hosts

  2. 添加以下内容保存即可

    185.199.108.133 raw.githubusercontent.com
    185.199.109.133 raw.githubusercontent.com
    185.199.110.133 raw.githubusercontent.com
    185.199.111.133 raw.githubusercontent.com

    这些步骤是让你的linux系统在访问raw.githubusercontent.com这个网站时,会自动根据给定的IP地址直接访问,不需要中转站,没有外网的限制,相当于绕过去了,这些IP地址设置在安装完ROS之后都可以删除

  3. 修改/etc/resolv.conf 文件,终端输入以下命令并回车sudo gedit /etc/resolv.conf

  4. 将原有的nameserver那一行注释,并添加以下两行后保存:

    nameserver 8.8.8.8 #google域名服务器
    nameserver 8.8.4.4 #google域名服务器

  5. 最后再执行**sudo rosdep init**

报错:The read operation timed out

第二种报错:
ERROR: Rosdep experienced an error: The read operation timed out
Please go to the rosdep page [1] and file a bug report with the stack trace below.

解决方法:在我们绕过外网之后,我们已经登录上网站,但是读取操作的时候超时了,我也是在找寻博客时发现,可以尝试让手机开热点让电脑连接,再次执行次 sudo rosdep init 命令,虽然我不太清楚其中的原理是什么,可以推荐大家去试试,我是试了之后成功的,我手机是电信的热点秒成!

成功安装

在这里插入图片描述

显示如上图信息,则rosdep初始化成功

6. rosdep update更新

rosdep update

经典报错:更新超时read operation timed out

解决方法:

最有效的方法:将更新所需要的文件下载放在本地文件夹,并修改执行更新的路径。在本地完成更新,避免向外国网站拉取信息和文件。

  1. 第一步:本地更新所需文件下载

CSDN博客作者已经将更新所需文件整理好上传云中(大家可以去观摩原文,文后有参考博客链接):
链接: https://pan.baidu.com/s/1PhTCqtvScV_XGf9ac0CcCg 提取码: w3ix

  1. 第二步:将下载的压缩包解压缩

    前往下载压缩包的当前目录下,终端输入

    unzip ros_github.zip  
    
  2. 第三步:将提取出的文件夹移动到/etc/ros文件夹下
    终端输入:

    sudo cp -r ../ros_github/ /etc/ros/
    注:ros_github/为你自己提取安放的路径

  3. 第四步:修改更新文件路径

    1. 修改index-v4.yaml路径,终端输入以下命令

    注意ROS安装的Python版本,我安装的是Python3,不同版本文件存在位置不同

    sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py
    

索引到文件68行,将URL更改为 file:///etc/ros/ros_github/index-v4.yaml

在这里插入图片描述

  1. 修改 /etc/ros/rosdep/sources.list.d/20-default.list文件,终端输入以下命令
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list

将原有内容全部注释,添加一下新的内容,让ROS update自动索引自己下载的文件

#os-specific listings first
yaml file:///etc/ros/ros_github/osx-homebrew.yaml osx
#generic
yaml file:///etc/ros/ros_github/base.yaml
yaml file:///etc/ros/ros_github/python.yaml
yaml file:///etc/ros/ros_github/ruby.yaml
gbpdistro file:///etc/ros/ros_github/fuerte.yaml fuerte
在这里插入图片描述

  1. 再次执行 rosdep update

安装成功界面

在这里插入图片描述

一般情况下,这次更新很迅速,因为都是索引本地文件安装更新,如果还是显示找不到文件,可以尝试关闭终端再次执行更新命令。(我的fuerte就有几次Hit不到,重复了几次才成功) 到此为止就成功安装ROS了。

7. 运行ROS功能包检验安装

  1. 在终端输入命令:roscore

因为我使用了alias别名 ros 来载入ROS环境,所以要多输入一个ros命令,如果需要常用ROS的话,建议不用别名才开启ROS环境,因为ROS需要开多个终端同时运行程序,一个终端代表一个节点,这样才能实现节点之间的通讯,不过也可以使用launch来一次性发布多个节点,先挖个坑之后填

  1. 运行经典小海龟

第一个终端输入 roscore

第二个终端输入 rosrun turtlesim turtlesim_node

第三个终端输入 rosrun turtlesim turtle_teleop_key
在这里插入图片描述

运行后可以通过方向键来控制小海龟的移动,效果图如上,本人艺术细胞不太好,随便画了一个奇奇怪怪的图案,大家安装ROS之后可以实操尝试画出更可爱的图形 n(≧▽≦)n

三、总结

以上就是Unbuntu20.04安装Ros的过程,本文是用来帮助那些没有linux||爬楼梯||方法的同学的。如果有||爬楼||方法,可以尝试开启后,直接执行 估计是一路通畅不会遇到什么问题的。

在安装ROS的过程中遇到很多问题,十分感谢参考博客的各位作者,文中关于ROS十分麻烦的外网访问超时,都从他们博客中得到可行性十分高的回答。他们的文章有可能出现的问题,我也相应做了一些补充,将安装的全流程记录于此,希望大家只用看一篇博客就可以安装好ROS,抛砖引玉帮助更多人走上ROS的学习之路

如果遇到本文没有提及的问题,可以留下你的评论,大家一起来解决问题,我会不定期更新这篇博客,保证其实时性,帮助更多人,将这篇博客变得更加全面的安装教程!!!

参考博客

ROS安装时:找不到有效的OpenPGP数据

ERROR: cannot download default sources list from: https://raw.githubusercontent.com

解决 rosdep update 问题

Ubuntu18.04安装ROS

这篇关于Ubuntu20.04安装ROS Noetic (一篇博客走遍天)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/263766

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud

mac安装brew 与 HomeBrew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh >> brew_install BREW_REPO="