Ubuntu 的 ROS 操作系统安装与测试

引言

在这里插入图片描述


学习目标

在这里插入图片描述


学习内容

1 配置ROS Noetic的安装源

ROS官方提供了Noetic版本的软件包,适用于多种Ubuntu平台,用户无需从源码构建,直接安装即可使用。以下是安装过程:

1.1 配置Ubuntu仓库

在安装ROS之前,需要将Ubuntu软件仓库设置为允许“restricted”、“universe”和“multiverse”。具体操作请参考 Ubuntu官方指南。

1.2 设置sources.list。

配置系统以接受ROS软件包:

# 设置ROS的软件源列表
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
1.3 设置密钥

安装curl(如果未安装),并添加ROS仓库的密钥:

# 安装curl工具
sudo apt install curl# 添加ROS仓库的密钥
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

2 安装ROS Noetic

2.1 确保包索引为最新
# 更新包索引
sudo apt update
2.2 根据需求选择安装的ROS版本

2.2.1 桌面完整版安装(推荐):包括桌面版所有内容,外加2D/3D仿真器和感知包。

# 安装完整版,包含核心工具和2D/3D仿真器(推荐)
sudo apt install ros-noetic-desktop-full

2.2.2 桌面版安装:包括ROS-Base所有内容,外加rqt和rviz等工具。

# 或者只安装桌面版,包含基础工具如rqt和rviz
sudo apt install ros-noetic-desktop

2.2.3 基础版安装(精简版):包含ROS打包、构建和通信库,不包含GUI工具。

# 安装ROS-Base版本,只包含最基础的ROS功能
sudo apt install ros-noetic-ros-base
2.3 如需安装特定包
# 如需安装特定包(例如slam-gmapping)
sudo apt install ros-noetic-slam-gmapping

3 环境设置

3.1 环境配置

每次在终端中使用ROS时,都需要source环境配置文件:

# source环境配置文件
source /opt/ros/noetic/setup.bash
3.2 简化操作

为了简化操作,可以将其添加到.bashrc文件中,使其在每次新终端启动时自动source:

# 在.bashrc中加入ROS的环境变量设置,使其每次启动终端时自动加载
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc# 更新.bashrc文件使其生效
source ~/.bashrc

4 安装构建包的依赖

4.1 安装工具

为了创建和管理自己的ROS工作空间,需要安装一些工具:

# 安装构建所需的工具
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
4.2 初始化rosdep

初始化rosdep以便安装系统依赖:

# 初始化rosdep并更新
sudo rosdep init
rosdep update

5 验证安装

安装完成后,验证安装的ROS系统是否可以正常使用。

5.1 检查ROS版本
# 检查ROS版本
rosversion -d

输出安装的ROS版本,本文安装为 noetic,如果输出正确版本说明ROS已经成功安装。

5.2 检查ROS环境
# 检查ROS环境
echo $ROS_PACKAGE_PATH
  • 如果ROS环境配置正确,会显示相关路径。
  • 如果没有输出,可能需要重新执行 source /opt/ros/noetic/setup.bash 或将其添加到 ~/.bashrc 文件中。
5.3 运行ROS核心
# 运行ROS核心
roscore

如果ROS核心启动成功,终端会显示类似以下的信息,表示ROS系统已启动。按 Ctrl+C 停止。

... logging to /home/jack/.ros/log/... 
started roslaunch server http://172.0.0.1:11311/
ros_comm version 1.15.10
5.4 运行ROS示例节点(验证ROS通信机制)

ROS提供了一些示例节点,可以用来验证安装:

# 接收消息
rosrun rospy_tutorials listener.py

然后在另一个终端运行:

# 发布消息
rosrun rospy_tutorials talker.py

若两个节点能够正常通信并在终端显示传输的消息,则说明ROS 2已经正确安装并配置完毕。


小结

  • 在本次学习中,我们详细介绍了如何在Ubuntu上安装ROS Noetic并进行环境配置,以便用户能够顺利搭建起支持机器人开发的工作环境。
  • 主要步骤包括配置Ubuntu仓库、设置ROS软件源、安装所需密钥、选择合适的ROS版本(如desktop-full或ros-base)进行安装、环境变量配置以及安装构建包依赖。
  • 最后通过验证安装确保ROS配置成功,为后续的机器人控制和算法开发奠定基础。

欢迎大家评论留言!!!


友情提示:

  • 专栏:Turtlebot3 PC端ROS环境搭建与仿真
  • 下一节:Ubuntu 的 ROS 2 操作系统安装与测试

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

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

相关文章

计算机组成原理——编码与纠错(汉明编码)

校验码放在2^x次方的位置——即1,2,4——将检测位按序排列p3p2p1 汉明编码从左到右数某个位置位1(位数),就表示第几组 奇偶校验 例题 纠错过程 汉明编码的最小距离是3

fabric操作canvas绘图(1)共32节

对于前端而言,离不开canvas就像鱼离不开水,前端canvas神器fabric你值得拥有!接下来我们就来一步步揭开她的面纱。 一、fabric的理解 用原生的canvas来实现,代码量会比较大,而且还要处理很多细节,而Fabric…

C++ 内存分布及 new , delete 分配问题( ~~~ 面试重要 ~~~)

文章目录 前言一、内存分布二、new 、delete 分配问题总结 前言 本篇文章笔者将会对 C 中的内存问题简单的讲解 , 同时对 new , delete 的面试题进行重点讲解. 一、内存分布 ● C语言和C 分布情况是一样的, 如下 : ● 栈 ○ 栈 的管理是由编译器自动管理 , 不需要我们人为做…

数据结构-哈夫曼树

一.什么是哈夫曼树 不同搜索树的效率是不一样的,根据不同的频率构造效率比较好或者最好的搜索树就是哈夫曼树 二.哈夫曼树的定义 将带权路径的长度降低最低 每个叶子节点到根节点的距离乘权值,再全都加起来就得到了WPL值 第一颗二叉树:从上到下计算 5x14x23x32x41…

双11精选网络安全书单:打造数字世界的钢铁长城!

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 🌟双11火热来袭,网络安全书单推荐🚀 随着数字化浪潮的汹涌澎湃,网络安全已经成为了每个从业者不可回避的重要议…

WebGUI之Gradio:Gradio 5的简介、安装和使用方法、案例应用之详细攻略

WebGUI之Gradio:Gradio 5的简介、安装和使用方法、案例应用之详细攻略 目录 Gradio 5的简介 1、Gradio的适用场景 2、Gradio 5 的主要改进包括: Gradio 5的安装和使用方法 1、安装和使用方法 2、使用方法 2.1、文本内容 (1)、简单的输入/输出组件…

初始Python篇(5)—— 集合

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 集合 相关概念 集合的创建与删除 集合的操作符 集合的相关操作方法 集合的遍历 集合生成式 列表、元组、字典、集合的…

探索Python的Shell力量:Plumbum库揭秘

文章目录 探索Python的Shell力量:Plumbum库揭秘第一部分:背景介绍第二部分:Plumbum是什么?第三部分:如何安装Plumbum?2. 创建管道3. 重定向4. 工作目录操作5. 前台和后台执行 第五部分:场景应用…

大模型时代,算法岗到底哪个最有前景?什么样的算法工程师更吃香?

毫无疑问,全栈型的算法工程师将更为抢手,如果你精通大模型从训练到应用的整个流程,你走到哪里都不怕。 但往往人的精力有限,如果从数据、预训练、微调、对齐、推理、应用几个方面来看的话,个人觉得 “预训练>数据&…

Linux系统之sleep命令的基本使用

Linux系统之sleep命令的基本使用 一、sleep命令介绍二、sleep的使用帮助2.1 查看帮助信息2.2 基本语法 三、sleep命令的基本使用3.1 指定暂停时间长度3.2 结合多个时间单位 四、在脚本中应用五、注意事项 一、sleep命令介绍 sleep命令是一个在Unix和类Unix操作系统中常见的命令…

《Java核心技术 卷I》Swing处理2D图形

处理2D图形 Java1.0开始,Graphics类就包含绘制直线、矩形和椭圆等方法,但是绘制图形的操作能力有限,我们将使用Java2D的图形库。想绘制需要获得Graphics2D类的一个对象,是Graphics的子类。paintCompoent方法接收一个2D类对象&…

MySQL:客户端工具创建数据库

MySQL 是一个开源的关系型数据库管理系统(RDBMS),用于存储、管理和检索数据。MySQL是基于SQL语言的,它具有高效、可靠、易用的特点。 客户端工具 这个mysqld.exe就在计算机安装的数据可服务,启动之后,mys…

【Python】计算机视觉应用:OpenCV库图像处理入门

计算机视觉应用:OpenCV库图像处理入门 在当今的数字化时代,计算机视觉(Computer Vision)已经渗透到各行各业,比如自动驾驶、智能监控、医疗影像分析等。而 Python 的 OpenCV 库(Open Source Computer Visi…

万字长文详解JavaScript基础语法--前端--前端样式--JavaWeb

🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 今天毛毛张带来的前端教程的第三期:JavaScript 文章目录 4.JavaScript4.1 JS简介4.1.1 JS起源4.1.2 JS 组成部分4.1.3 JS的引入方式 4.2 JS的数据类型和运…

医学图像算法之基于Unet的视网膜血管分割

第一步:准备数据 视网膜血管分割数据比较少,但效果好,总共40张 第二步:搭建模型 UNet主要贡献是在U型结构上,该结构可以使它使用更少的训练图片的同时,且分割的准确度也不会差,UNet的网络结构…

深度剖析JUC中LongAdder类源码

文章目录 1.诞生背景2.LongAdder核心思想3.底层实现:4.额外补充 1.诞生背景 LongAdder是JDK8新增的一个原子操作类,和AtomicLong扮演者同样的角色,由于采用AtomicLong 保证多线程数据同步,高并发场景下会导致大量线程同时竞争更新…

Python(PySimpleGUI 库)

PySimpleGUI 是一个用于简化 GUI 编程的 Python 包,它封装了多种底层 GUI 框架(如 tkinter、Qt、WxPython 等),提供了简单易用的 API。PySimpleGUI 包含了大量的控件(也称为小部件或组件),这些控…

LangChain学习心得总结

大模型开发遇到的问题及langchain框架学习 背景: 1、微场景间跳转问题,无法实现微场景随意穿插 2、大模型幻读(推荐不存在的产品、自己发挥) 3、知识库检索,语义匹配效果较差,匹配出的结果和客户表述的…

Linux基础(十二)——文件与文件系统的压缩、打包和备份

文件与文件系统的压缩、打包和备份 1.压缩1.1 压缩方法及其后缀1.2 gzip1.3 bzip21.4 xz 2.打包3.XFS文件系统备份与还原4.镜像文件创建(mkisofs) 1.压缩 1.1 压缩方法及其后缀 我们知道在 Linux 下面的扩展名是没有什么很特殊的意义的, 不…

简简单单的UDP

前言 上一篇了解了TCP的三次握手过程,目的、以及如何保证可靠性、序列号与ACK的作用,最后离开的时候四次挥手的内容,这还只是TCP内容中的冰山一角,是不是觉得TCP这个协议非常复杂,这一篇我们来了解下传输层另外一个协…