超详细讲解在Ubuntu 20.04上安装ROS Noetic Ninjemys并测试

news2024/11/17 5:22:57

文章目录

  • 前言
  • 安装
    • STEP-1: 配置Ubuntu软件仓库
    • STEP-2: 设置sources.list
    • STEP-3: 设置密钥
    • STEP-4: 更新Ubuntu软件包确保安装索引是最新的
    • STEP-5: 执行安装命令
    • STEP-6: 配置ROS环境
  • 测试ROS

前言

ROS是Robot Operating System的缩写, 即机器人操作系统, ROS是一组软件库和工具,可帮助您构建机器人应用程序, 从驱动程序到最先进的算法, 以及强大的开发工具, ROS拥有您下一个机器人项目所需的一切, 而且都是开源的. ROS由柳树车库(Willow Garage)斯坦福人工智能实验室(Stanford Artificial Intelligence Laboratory)联合开发的, 目前最新的长期支持版是(截至2023年7月2日)ROS Noetics Ninjemys。ROS Noetics Ninjemys适配的最佳操作系统就是Ubuntu 20.04. 因此, 建议需要安装ROS的你直接安装Ubuntu 20.04 + ROS Noetic Ninjemys这个组合即可!🚀🚀🚀

在这里插入图片描述

官方建议的安装组合是: Ubuntu 20.04 + ROS Noetic Ninjemys⭐️⭐️, Ubuntu 18.04 + ROS ROS Melodic Morenia, 其中ROS Kinetic Kame已不再支持, 不推荐安装.

在这里插入图片描述

ROS的安装在其官网有很详细的教程, 但是很不幸的是我们国人不太容易获取到官网信息. 因此结合了官网安装教程和博主自己的安装经验整理出了下面的安装教程以供参考.

有条件的同学可自行前往ROS官网, 查阅相关教程和学习资料, 下方给出了几个常用的ROS官方网页:

  • ROS官网: https://www.ros.org/
  • ROS中文文档: http://wiki.ros.org/cn
  • ROS安装中文教程: http://wiki.ros.org/cn/noetic/Installation/Ubuntu
  • ROS使用中文教程: http://wiki.ros.org/cn/ROS/Tutorials

安装

ROS的安装大致可分为以下6个步骤:

Created with Raphaël 2.3.0 配置Ubuntu软件仓库 设置source.list 设置密钥 更新Ubuntu软件包确保安装索引是最新的 执行安装命令 配置ROS环境

STEP-1: 配置Ubuntu软件仓库

配置你的Ubuntu软件仓库(Software & Updates)以允许使用“restricted”“universe”和“multiverse”存储库, 即确保勾选上community-maintained free and open-source software (universe)Software restricted by copyright or legal issues (multiverse)。然后, 我们需要在设置一下软件下载源, 即设置Download from, 选择国内的下载源.

在这里插入图片描述
↓ \downarrow
在这里插入图片描述
↓ \downarrow
在这里插入图片描述
↓ \downarrow
在这里插入图片描述
↓ \downarrow
在这里插入图片描述

STEP-2: 设置sources.list

将ROS的安装源写入到/etc/apt/sources.list.d/ros-latest.list中, 确保后面安装指令可以正常安装来自packages.ros.org的软件. (选择下面安装源, 在终端中执行对应写入指令即可, 任选一个即可.)
如下:
在这里插入图片描述

可在下面网址查看ROS支持的源: http://wiki.ros.org/ROS/Installation/UbuntuMirrors

国内镜像源: 中国科技大学源:

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'

国内镜像源: 清华大学源:

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 sh -c '. /etc/lsb-release && echo "deb http://mirrors.bfsu.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

国内镜像源: 上海交通大学源:

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

国内镜像源: 浙江大学源:

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

ROS官方安装源(国内用户不推荐😥😥)

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

STEP-3: 设置密钥

在终端执行下面命令即可:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

在这里插入图片描述

若无法连接到密钥服务器,可以尝试替换上面命令中的 hkp://keyserver.ubuntu.com:80 为 hkp://pgp.mit.edu:80 。

你也可以使用curl命令替换apt-key命令,这在使用代理服务器的情况下比较有用:

curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -

STEP-4: 更新Ubuntu软件包确保安装索引是最新的

依次执行下面终端指令, 确保Debian软件包索引是最新的:

sudo apt update
apt list --upgradable
sudo apt upgrade

在这里插入图片描述
↓ \downarrow
在这里插入图片描述
↓ \downarrow
在这里插入图片描述

STEP-5: 执行安装命令

根据自身需要选择需要安装的ROS版本.

  • 完整桌面版安装(Desktop-Full,推荐🚀🚀🚀):除了桌面版的全部组件外,还包括2D/3D模拟器(simulator)和2D/3D 感知包(perception package)。

在这里插入图片描述

sudo apt install ros-noetic-desktop-full
  • 桌面版(Desktop):包括了ROS-Base的全部组件,还有一些工具,比如rqt和rviz。
sudo apt install ros-noetic-desktop
  • ROS-Base(仅含骨架):ROS packaging,build,和communication库。没有图形界面(GUI)工具。
sudo apt install ros-noetic-ros-base

在ROS中还有更多可用的软件包。你可以直接安装一个特定的软件包。

sudo apt install ros-noetic-PACKAGE

例如,

sudo apt install ros-noetic-slam-gmapping

要查看或搜索所有可用的软件包,请参见ROS Index或使用:

apt search ros-noetic

STEP-6: 配置ROS环境

在终端中使用ROS时需要提前使用一下命令source一下ROS的setup.bash脚本, 才能正常使用ROS指令。

source /opt/ros/noetic/setup.bash

如果不想每一次打开终端, 想要使用ROS都要提取source一下setup.bash脚本, 则可以依次执行下面命令在每次启动新的shell窗口时自动source这个脚本:

Bash

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

如果同时安装了好几个ROS发行版,~/.bashrc只会生效你当前使用的这个版本的setup.bash。

测试ROS

依次打开三个终端, 分别执行下面三条指令. 出现如下画面, 并且可以使用上下左右键控制小乌龟则说明ROS安装成功. (PS: ROS会随机选择一种乌龟样式, 因此你的乌龟可能和现在的画风不一致, 这并不表示安装失败.)

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

在这里插入图片描述


收集整理和创作不易, 若有帮助🉑, 请帮忙点赞👍➕收藏❤️, 谢谢!✨✨🚀🚀

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

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

相关文章

LR录制https协议脚本前配置

LR录制https安全协议脚本前的设置 在IE中添加安全证书 打开IE浏览器,选择“工具—Internet选项—内容”,点击“证书”导入相应的证书,如下图 在LR中配置证书 获取pem格式证书 因为loadrunner只支持pem格式的证书,所以要将证书…

uniapp监听手机侧滑返回事件。

这篇文章是应一个粉丝的需求更新的!你们看我多宠粉! 若在App首页,点击手机物理返回键,此时无返回页面可关闭,uni-app默认会提示“再按一次退出应用”;若想自定义退出信息,如修改为:…

Arthas (阿尔萨斯)arthas-boot 方式安装及使用教程

目录 一、软件介绍二、下载教程三、安装教程四、使用教程 一、软件介绍 Arthas 地址:https://github.com/alibaba/arthas 官方文档:https://alibaba.github.io/arthas Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类…

ProGuard 进阶系列(四)访问者模式

在进行后面的内容分析之前,不得不讲到访问者模式,这是 GOF 23 个设计模式中最难的几个模式之一。如果能够很好的理解访问者模式, 后续源码解读会相对容易一些。本文将结合 ProGuard 的部分源码,理解分析访问者模式的用途及使用场景…

单相逆变原理验证仿真

为了用全桥控制一个电感中的电流跟踪指令电流,simulink图如下图1: 图1 前向通道传递函数,闭环伯德图如下: s tf(s); %LC及并联电阻R的值 L1*10^-3; R10; %调制限号到占空比的传递函数,dVcont/Vramp -> d/Vcont 1/Vramp1Kcd …

JavaWeb 笔记——1

JavaWeb 笔记-1 初始JavaWeb什么是JavaWeb 一、JDBC1.1、JDBC简介1.2、API详解-DriverManager1.3、API详解-Connection1.4、API详解-Statement1.5、API详解-ResultSet1.6、API详解-PreparedStatement1.6.1、API详解-PreparedStatement-SQL注入演示1.6.2、API详解-PreparedState…

NR PDCP(二) format/parameters

这篇主要是PDCP PDU,PDCP Formats及其参数的含义, 收发过程中用到的变量,常量和定时器的总结,都是概念性描述。 PDU 和RLC 类似,PDCP PDU 也分为data pdu 和control PDU。PDCP data PDU 的data field对应的是user pla…

FPGA USB FX2 ov5640摄像头视频采集 驱动CY7C68013A实现 提供2套工程源码和技术支持

目录 1、前言2、我这儿已有的 FPGA USB 通信方案3、CY7C68013A芯片解读和硬件设计FX2 简介SlaveFIFO模式及其配置 4、工程详细设计方案5、vivado工程6、上板调试验证7、福利:工程代码的获取 1、前言 目前USB2.0的实现方案很多,但就简单好用的角度而言&a…

SpringBoot的缓存管理

缓存是分布式系统中的重要组件,主要解决数据库数据的高并发访问问题。在实际开发中,尤其是用户 访问量较大的网站,为了提高服务器访问性能、减少数据库的访问压力、提高用户体验,使用缓存显得 尤为重要。Spring Boot对缓存提供了良…

js将后台返回的数据转化为树形结构(扁平数组转树状结构)

前言 做项目使常遇到需要将后台返回的数据,转换为树状结构给用户展现,例如: 这也是前端面试常考的算法题,一起来检测一下吧。 步骤 准备一个空的树对象。遍历列表中的每个元素。对于每个元素,根据该元素的父级ID找到…

Linux常用命令——fdisk命令

在线Linux命令查询工具 fdisk 查看磁盘使用情况和磁盘分区 补充说明 fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝…

ERP重构-SLA子分类账-分布式实现方案

背景 ERP中的GL总账模块,明细数据来源于各个业务模块如库存、成本、应收、应付、费控、资产等,统称为子模块,生成的账叫做子分类账。然而记账的业务逻辑各式各样,但是最终输出都是来源、类型、期间、科目、借贷金额等等关键信息。…

Java-数据结构(二)-Map:HashMap、TreeMap、LinkedHashMap

目录 一、 引言二、问题2.1 什么是Map2.2 使用Map的好处2.3 Map的底层原理2.4 Key和Value的含义2.5 Key值为什么不能重复2.6 Key值和Hash的关系 三、 HashMap3.1 初始化HashMap3.2 添加和获取元素3.3 遍历HashMap3.4 删除元素3.5实现原理①HashMap的put()方法②HashMap的get()方…

【海量数据挖掘/数据分析】 之 贝叶斯分类算法(朴素贝叶斯分类、贝叶斯分类计算流程、拉普拉斯修正、贝叶斯分类实例计算)

【海量数据挖掘/数据分析】 之 贝叶斯分类算法(朴素贝叶斯分类、贝叶斯分类计算流程、拉普拉斯修正、贝叶斯分类实例计算) 目录 【海量数据挖掘/数据分析】 之 贝叶斯分类算法(朴素贝叶斯分类、贝叶斯分类计算流程、拉普拉斯修正、贝叶斯分类…

无java环境运行jar

1、编写简单java程序。 例: public static void main(String[] args) {if(args.length>0)System.out.println("Params is:"args[0]);System.out.println("Hello word ! I am demo,,,&#xff0c…

软考高级网规考试笔记(涉及表格用图片代替_9万字左右)

作者:BSXY_19计科_陈永跃_23年7月更 BSXY_信息学院_v:CwJp0403 注:未经允许禁止转发任何内容 笔记说明: 目前还只有笔记,其他资源将会在近期更新,(笔记5.5即可,不诚勿加可以去其他地方自找找看&…

Quartz任务调度笔记

一、概念 1.1简介 Quzrtz是OpenSymphony开源组织在Job scheduling领域的开源项目 特点:Quartz具有丰富特性的"任务调度库",能够集成于任何的Java应用,小到独立的应用,大到电子商业系统。quartz能够创建亦简单亦复杂的调…

DAY35:贪心算法(二)分发饼干+摆动序列

文章目录 455.分发饼干思路两个for循环嵌套的写法为什么这种写法必须要有visited数组debug测试逻辑问题:没有进行计数逻辑问题:找到了result3个孩子 一层for循环的写法为什么这种写法一定要把小孩数组放在外面 376.摆动序列(逻辑问题&#xf…

02_04实时调度类及SMP多核处理器的实时操作系统体系结构

上一篇文章说的是普通进程的调度但同时还有实时进程在linux上面进行运行 这边来看看实时进程在linux里面怎么调度 同时linux操作系统对实时任务的处理方式和设计思想 实时调度类 Linux进程分为两大类:实时进程和普通进程。 实时进程与普通进程根本不同之处,如果系…

ModuleNotFoundError: No module named ‘transformers_modules.chatglm2-6b‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…