ubuntu安装ROS

news2024/12/29 2:18:32

进官网,选版本,操作系统

ROS: Home

开始安装:

noetic/Installation/Ubuntu - ROS Wiki

Installation

Configure your Ubuntu repositories

Configure your Ubuntu repositories to allow "restricted," "universe," and "multiverse." You can follow the Ubuntu guide for instructions on doing this.

Setup your sources.list

Setup your computer to accept software from packages.ros.org.

  • sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

Mirrors

Source Debs are also available

选择清华的镜像

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

Set up your keys

curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

报错了:

~$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
[sudo] password for wangzhao:
xxx@RedmiBook-14:~$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

Command 'curl' not found, but can be installed with:

sudo snap install curl  # version 7.76.1, or
sudo apt  install curl  # version 7.68.0-1ubuntu2.5

See 'snap info curl' for additional versions.

gpg: no valid OpenPGP data found.

按照提示安装curl,再来一遍

所有国内的都试遍了,都不行。。。。

最后是日本的可以:

sudo sh -c 'echo "deb http://packages.ros.org.jsk.imi.i.u-tokyo.ac.jp/ros/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://ros.jsk.imi.i.u-tokyo.ac.jp/jsk.key -O - | sudo apt-key add -

 ~$ wget http://ros.jsk.imi.i.u-tokyo.ac.jp/jsk.key -O - | sudo apt-key add -
--2021-06-28 22:17:21--  http://ros.jsk.imi.i.u-tokyo.ac.jp/jsk.key
Resolving ros.jsk.imi.i.u-tokyo.ac.jp (ros.jsk.imi.i.u-tokyo.ac.jp)... 133.11.216.230
Connecting to ros.jsk.imi.i.u-tokyo.ac.jp (ros.jsk.imi.i.u-tokyo.ac.jp)|133.11.216.230|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://packages.ros.org.jsk.imi.i.u-tokyo.ac.jp/jsk.key [following]
--2021-06-28 22:17:23--  http://packages.ros.org.jsk.imi.i.u-tokyo.ac.jp/jsk.key
Resolving packages.ros.org.jsk.imi.i.u-tokyo.ac.jp (packages.ros.org.jsk.imi.i.u-tokyo.ac.jp)... 133.11.216.230
Reusing existing connection to ros.jsk.imi.i.u-tokyo.ac.jp:80.
HTTP request sent, awaiting response... 200 OK
Length: 2448 (2.4K)
Saving to: ‘STDOUT’

-                   100%[===================>]   2.39K  --.-KB/s    in 0s      

2021-06-28 22:17:26 (66.0 MB/s) - written to stdout [2448/2448]

OK

那继续吧。

这步也可以直接用

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-noetic-desktop-full

漫长的安装过程,可以干点别的。

装完以后,设置环境

You must source this script in every bash terminal you use ROS in.

source /opt/ros/noetic/setup.bash

 安装依赖库

Dependencies for building packages

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

Initialize rosdep

rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS. If you have not yet installed rosdep, do so as follows.

sudo apt install python3-rosdep
sudo rosdep init

 ~$ sudo rosdep init
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其实可以ping通,不过没什么用。
这个问题很大,网上的方法很多。简单点的:
sudo nano /etc/hosts
在文件末尾添加

199.232.68.133 raw.githubusercontent.com

(也有人在 /etc/hosts文件的末尾添加
199.232.68.133 raw.githubusercontent.com)
保存退出。我的ubuntu20,这样设置就解决了。

$ sudo rosdep init
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run

    rosdep update

但是rosdep update,还是没有过:

~$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml]:
    <urlopen error [Errno 104] Connection reset by peer> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml)

最后一个办法,自己下载rosdistro,本地init。

首先去github.com/ros/rosdistro把包下载下来。

修改这个包中rosdep/source.list.d/下的文件20-default.list,将这个文件中指向raw.githubusercontent.com的url地址全部修改为指向本地文件的地址:

# os-specific listings first
yaml file:///home/username/rosdistro-master/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/username/rosdistro-master/rosdep/base.yaml
yaml file:///home/username/rosdistro-master/rosdep/python.yaml
yaml file:///home/username/rosdistro-master/rosdep/ruby.yaml
gbpdistro file:///home/username/rosdistro-master/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

记得替换/etc/ros/rosdep/sources.list.d下的20-default.list文件,如果没有/etc/ros/rosdep/sources.list.d就新建路径。

修改python中的默认的url的地址,

/usr/lib/python3/dist-packages/rosdep2/main.py

def command_init(options):
    try:
        data = download_default_sources_list()
    except URLError as e:
        print('ERROR: cannot download default sources list from:\n%s\nWebsite may be down.' % (DEFAULT_SOURCES_LIST_URL))
        return 4
    except DownloadFailure as e:
        print('ERROR: cannot download default sources list from:\n%s\nWebsite may be down.' % (DEFAULT_SOURCES_LIST_URL))

download_default_sources_list函数在/usr/lib/python3/dist-packages/rosdep2 文件夹下面的sources_list.py文件里

DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'

修改以下两个文件里面的代码:

/usr/lib/python3/dist-packages/rosdep2/rep3.py
/usr/lib/python3/dist-packages/rosdistro/__init__.py

/usr/lib/python3/dist-packages/rosdep2/rep3.py

# location of targets file for processing gbpdistro files
REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'

# seconds to wait before aborting download of gbpdistro data

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

# index information

DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'

def get_index_url():

然后:

~$ sudo rosdep init
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run

    rosdep update

rosdep update

~$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit file:///home/xxx/rosdistro-master/rosdep/osx-homebrew.yaml
Hit file:///home/xxx/rosdistro-master/rosdep/base.yaml
Hit file:///home/xxx/rosdistro-master/rosdep/python.yaml
Hit file:///home/xxx/rosdistro-master/rosdep/ruby.yaml
Hit file:///home/xxx/rosdistro-master/releases/fuerte.yaml
Query rosdistro index file:///home/xxx/rosdistro-master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Skip end-of-life distro "dashing"
Skip end-of-life distro "eloquent"
Add distro "foxy"
Add distro "galactic"
Skip end-of-life distro "groovy"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Skip end-of-life distro "jade"
Skip end-of-life distro "kinetic"
Skip end-of-life distro "lunar"
Add distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /home/xxx/.ros/rosdep/sources.cache

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

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

相关文章

银行金融科技岗笔试题资料大总结

程序员进银行科技岗——简单总结_银行程序员 无水印&#xff0c;可直接打印使用。 中国银行 通用资料 视频资料

IPV6(IPV6,RIPng的配置以及手工配置IPV4隧道)

目录 实验一&#xff1a;IPv6的基本配置 实验二&#xff1a;RIPng基本配置 RIPng RIPng的工作机制 实验三&#xff1a;手工配置IPV4隧道 实验一&#xff1a;IPv6的基本配置 案例如下&#xff1a; 各部分配置如下 配置路由器RTA <Huawei>sys Enter system view, …

【论文笔记】DiffusionTrack: Diffusion Model For Multi-Object Tracking

原文链接&#xff1a;https://arxiv.org/abs/2308.09905 1. 引言 多目标跟踪通常分为两阶段的检测后跟踪&#xff08;TBD&#xff09;和一阶段的联合检测跟踪&#xff08;JDT&#xff09;。TBD对单帧进行目标检测后&#xff0c;使用跟踪器跨帧关联相同物体。使用的跟踪器包括使…

【STM32基础 CubeMX】外部中断

文章目录 前言一、中断是什么二、使用CubeMX配置你的第一个中断三、代码分析CubeMX四、中断函数按键中断点灯示例代码总结 前言 当涉及到STM32基础的外部中断时&#xff0c;我们进入了一个引人入胜的领域&#xff0c;它允许微控制器与外部世界进行互动并实时响应各种事件。外部…

【论文阅读】通过3D和2D网络的交叉示教实现稀疏标注的3D医学图像分割(CVPR2023)

目录 前言方法标注3D-2D Cross Teaching伪标签选择Hard-Soft Confidence Threshold Consistent Prediction Fusion 结论 论文&#xff1a;3D Medical Image Segmentation with Sparse Annotation via Cross-Teaching between 3D and 2D Networks 代码&#xff1a;https://githu…

2023年中国艺术涂料市场发展历程及趋势分析:艺术涂料市场规模将进一步扩大[图]

艺术涂料是一种用于绘画和装饰&#xff0c;具有各种纹理或通过涂装手段后具有高装饰性的新型涂料。由于具有高度饱和的颜色、良好的遮盖力和可塑性&#xff0c;呈现立体装饰效果好、色彩搭配适当、风格独具特色的特点&#xff0c;而使得涂装出的饰面自然贴合、更加美观漂亮&…

Centos7环境下安装MySQL8详细教程

目录 一、Xftp7下载二、MySQL8安装包的下载三、将MySQL8安装包上传至服务器四、解压mysql8安装包五、rpm包的安装六、依次安装下列文件七、对MySQL进行初始化和授权八、查看数据库初始密码九、启动MySQL服务十、使用初始密码登录MySQL关于MySQL的卸载 一、Xftp7下载 关于Xftp7…

力扣 -- 718. 最长重复子数组

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:int findLength(vector<int>& nums1, vector<int>& nums2) {int m nums1.size();int n nums2.size();//多开一行&#xff0c;多开一列vector<vector<int>> dp(m 1, ve…

华为云云耀云服务器L实例评测 | 搭建企业级 Registry 服务器 Harbor

文章目录 您需要了解Harbor介绍Harbor特性和优势系统设置关闭防火墙安装Docker安装Docker Compose配置镜像加速器 Habor安装传包并解压配置Harbor安装Horbor登录Harbor 测试创建项目推送镜像拉取镜像 您需要了解 本次搭建采用 华为云耀云服务器 &#xff0c;一键部署、快速搭建…

Visual Studio 代码显示空格等空白符

1.VS2010: 快捷键&#xff1a;CtrlR,W 2.VS2017、VS2019、VS2022&#xff1a; 工具 -> 选项 -> 文本编辑器 -> 显示 -> 勾选查看空白

RWA分析通过10个问题。不要让数字和视觉欺骗您!(文章很长,请仔细阅读)

已经有30个小伙伴加入我们的星球了&#xff0c;如果你不介意的话&#xff0c;可以加入 我的知识星球主要分享 1. 分享区块链各种有价值的内容 2. 一起攻读一些有用的书籍 3. 财富密码&#xff08;不敢保证&#xff09; 4. 一些自我的感悟 1.什么是现实世界资产&#xff08;RWA&…

【Flutter】Flutter Web 开发 如何从 URL 中获取参数值

【Flutter】Flutter Web 开发 如何从 URL 中获取参数值 文章目录 一、前言二、Flutter Web 中的 URL 处理三、如何从 URL 中获取参数四、实际业务中的用法五、完整示例六、总结 一、前言 大家好&#xff01;我是小雨青年&#xff0c;今天我想和大家分享一下在 Flutter Web 开发…

【C++历险记】国庆专辑---探索多态迷宫的代码之旅!

本篇目录 一、什么是多态&#xff1f;二、多态的定义及其实现2.1多态构成的条件2.2虚函数2.3虚函数的重写2.3.1析构函数的重写 2.4C11 override 和 final2.5重载、覆盖(重写)、隐藏(重定义)的对比2.6为什么不能是子类的指针或者引用呢&#xff1f;2.7为什么不能是父类对象呢&am…

【大家的项目】NFS FUSE: 为什么我们用Rust实现了自己的NFS服务器

乐观地看FUSE 我喜欢文件。每个计算机系统都理解文件。每个程序都知道如何读取和写入文件。这是一个真正通用的API。因此&#xff0c;我喜欢FUSE的想法。FUSE的名字来源于Filesystem in Userspace&#xff0c;也就是“用户态文件系统”&#xff0c;是一套允许用户模式程序定义文…

gwas数据根据eaf Z 和N 求beta和se

https://www.nature.com/articles/s41590-023-01588-w#Sec10

基于Java的汽车票网上预订系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【计算机网络】应用层协议原理

文章目录 网络应用程序体系结构客户-服务器体系结构P2P体系结构 进程通信客户和服务器进程进程与计算机网络之间的接口进程寻址 可供应用程序使用的运输服务可靠数据传输吞吐量定时安全性 因特网提供的运输服务TCP服务面向连接的服务可靠数据传输服务TCP安全 UDP服务因特网运输…

Redis实现API访问频率限制

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

phpstudy_pro高效率建一个属于自己的网站

1.下载phpStudy_32 2.下载wordpress-6.3-zh_CN 安装好phpstudy后启动phpstudy中对应的服务&#xff0c;并在网站中配置好对一个的应用的路径 ps:根目录中的路径是你想要通过phpstudy部署应用的路径 这里以wordpress为例 将下载wordpress的压缩包解压后&#xff0c;需要修改…

Python海洋专题六之Cartopy画地形水深图

Python海洋专题六之Cartopy画地形水深图 海洋与大气科学 上期读取nc水深文件&#xff0c;并出图 但是存在一些不完美&#xff0c;本期修饰 本期内容 1&#xff1a;使用Cartopy画出范围图 导入函数包 import matplotlib.pyplot as plt import cartopy.crs as ccrs import c…