ROS 机器人操作系统:Ubuntu 安装 ROS Noetic
本文介绍如何在 Ubuntu 20.04 安装 ROS Noetic 软件包,并进行简单的测试。
安装步骤
1、配置 Ubuntu 软件仓库
配置 Ubuntu 软件仓库支持 “restricted” “universe” 和 “multiverse” 来源,最简单的方法是在「软件和更新」配置窗口进行勾选,如下图所示。
扩展阅读:Ubuntu 软件源、Ubuntu Repositories
2、设置 sources.list
执行下面命令,设置从官方源(packages.ros.org)下载 ROS 软件包
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
国内的开发者可自行替换合适的软件源,例如修改为清华源
sudo sh -c 'echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
3、设置密钥
密钥的设置需要用到 curl 命令,如果你的系统还没有该命令,请先执行下面命令安装。
sudo apt install curl
然后设置密钥
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
国内开发者可以使用下面命令替代
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
4、开始安装
安装桌面完整版的 ROS Noetic
sudo apt update
sudo apt install ros-noetic-desktop-full
这一步需要一些时间,你可以先去喝一杯茶哦!
5、设置环境变量
安装完成后,需要在你想使用 ROS 的 Bash 终端执行下面命令,以初始化 ROS Noetic 的环境变量。
source /opt/ros/noetic/setup.bash
为了方便使用,可以将其添加到用户的 .bashrc 脚本,这样就可以在每次打开 Bash 终端的时候自动完成设置。
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
如果是用 zsh 的小伙伴,则用下面命令替代
echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc
6、安装依赖
到目前为止,你已经安装了运行核心 ROS 包所需的程序。不过为了便于创建和管理你自己的 ROS 工作区,满足日后安装各种工具和软件的需求,建议执行下面命令以安装依赖。例如,rosinstall 是一个经常使用的命令行工具,它使你能够通过一个命令轻松地为 ROS 包下载许多源码树。
想象一下,假设有一个机器人应用程序,它包含了 100 多个程序包,而用户需要在计算机中配置这些包,那么仅仅为这些包安装依赖包就是一件非常困难的事情。在这种情况下,rosinstall 这样的工具就会非常有用!只需要一条指令,便可以完成所有包的安装。
要安装这个工具和其他依赖项来构建 ROS 包,请执行命令:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
7、初始化 rosdep
在使用其他 ROS 工具之前,还需要初始化 rosdep。Rosdep 工具对于安装 ROS 包的依赖包非常有用,一个 ROS 包可能需要若干个依赖包才能正常工作,Rosdep 会检查依赖包是否可用,如果不可用,它将自动安装这些依赖包。
如果你还没有安装 rosdep,请执行下面命令进行安装(其实上一步已经安装了)。
sudo apt install python3-rosdep
现在,你可以初始化 rosdep 了
sudo rosdep init
rosdep update
8、检查是否安装成功
最后,我们可以使用 rosversion -d
命令验证 ROS 的安装是否正确,如下:
$ rosversion -d
noetic
测试
打开一个新的 Bash 终端,测试 roscore 是否能正常启动
roscore
注意:如果没有配置自动初始化 ROS 环境,则每次开启 Bash 终端都需要执行以下命令。
source /opt/ros/noetic/setup.bash
新开启一个 Bash 终端,执行以下命令启动一个小乌龟模拟器:
rosrun turtlesim turtlesim_node
再开启一个 Bash 终端,在该终端控制小乌龟移动,执行以下命令:
rosrun turtlesim turtle_teleop_key
提示:鼠标必须聚焦在这个终端,按下方向键时乌龟才会移动。
更多测试示例请参考 ROS Tutorials
ROS 机器人操作系统:Ubuntu 安装 ROS Noetic相关推荐
- ROS机器人操作系统——如何将ROS与STM32连接(十六)
ROS机器人操作系统 文章目录 ROS机器人操作系统 前言 一.两种控制器的功能 二.硬件连接 总结 前言 前面学习了ROS的基本操作,仅仅只使用这个操作系统并没有什么用处,还需要讲他与硬件相结合从而 ...
- ROS机器人操作系统——创建工作空间与功能包(四)
ROS机器人操作系统 文章目录 ROS机器人操作系统 前言 一.工作空间 1.创建工作空间 2.编译工作空间 3.设置环境变量 4.检查环境变量 二.功能包 1.创建功能包 2.编译功能包 总结 前言 ...
- Ubuntu安装ros rotors 以及中间出现的问题的解决办法
Ubuntu安装ros rotors 以及中间出现的问题的解决办法 下文列出了我的问题 在文档末尾,自行查看 安装ubuntu 这个网上的教程很多 我使用的是vmware安装,基本上就是连点 我所使用 ...
- ubuntu安装ROS melodic(最新、超详细图文教程)
Ubuntu 安装 ROS ROS安装 准备 方法一(推荐)使用小鱼ROS一键安装 方法二 使用官方教程 配置rosdep 方法一(推荐)使用小鱼ROS一键安装 方法二 通过修改文件 ROS简介: R ...
- ROS机器人操作系统底层原理及代码剖析
0 目的 本文介绍ROS机器人操作系统(Robot Operating System)的实现原理,从最底层分析ROS代码是如何实现的. 1 序列化 把通信的内容(也就是消息message)序列化是通信 ...
- ROS机器人操作系统学习笔记(一)--基本概念
ROS机器人操作系统学习教程(一)–基本概念 1. 基本概念 1.1 ROS背景 机器人操作系统(Robot Operating System, ROS)是一个应用于机器人上的操作系统,它操作方便.功 ...
- Windows使用ROS机器人操作系统全面资料汇总
0 摘要: 本文以Win10系统中安装使用ROS1Melodic和ROS2Dashing为基础,并通过开源硬件设备Arduino与ROS的通信为示例,具体介绍机器人操作系统ROS1和ROS2的细节.部 ...
- ROS 机器人操作系统进阶实战
ROS(Robot Operating System) 是一个开源的机器人操作系统,目的是提供开发平台.工具及生态给开发人员,可以让开发人员快速开发.本课程通过精心设计的案例,分析技术要点.理解运行原 ...
- ROS机器人操作系统教学与应用的思考
首先,非常感谢睿慕课提供这样一个宝贵的机会(大会相关报道:19日,20日),讲稿内容是关于我们如何利用互联网.大数据并结合学生认知规律等认真上好一门机器人课程的故事.大会视频介绍链接,具体内容如下: ...
- 入门ROS机器人操作系统——准备工作
近期入门学习ROS机器人操作系统,有时间记录一下踩坑过程,给后来者提供参考,也方便自己后期查阅. 首先,分享几个软件安装包: 1. 虚拟机VMware16 链接:https://pan.baidu.c ...
最新文章
- 100W无线充电方案文献调研 - 信息HUB
- 一篇文章告诉你:荣耀10 GT为什么叫全能旗舰
- SDNE: 阿里应用深度学习进行图嵌入,构造凑单算法模型
- oracle 磁盘挂载格式化,Linux简单磁盘挂载
- context元素大概解说
- 大数据学习之路——新闻大数据的增值应用
- python求一个数的因子_求一个整数的所有素数因子的思路是什么?
- 现实世界的Windows Azure:采访Definition 6首席技术官Paul Hernacki
- Linux - yum安装步骤
- Chrome谷歌浏览器离线安装包下载
- Juniper Junos DoS漏洞CVE-2017-2345 10.2及相关产品和平台均受影响
- linux卸载phpstudy_phpStudy Linux 面板安装教程
- 教麦叔了解EMC、EMI、EMS的区别
- Python之编写登录接口
- 电商物流快递意外延误创意海报设计PSD格式,用心良苦
- IT服务外包的必要性
- 【五一创作】iSH修改hostname(主机名)【美化】【短篇技术类文章】
- 保存照片和视频到相册显示
- ug安装lmtools显示未连接服务器,服务器(LMTOOLS)设置教程
- 去除bootstrap的table样式中单元格边框线