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

news2024/11/28 7:38:07

引言

在这里插入图片描述


学习目标

在这里插入图片描述


学习内容

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.coloradmin.cn/o/2238109.html

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

相关文章

学习threejs,将多个网格合并成一个网格

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.Geometry 几何体1.2 …

vue3 基于element-plus进行的一个可拖动改变导航与内容区域大小的简单方法

1、先上个截图: 说明:拖动上面的分隔栏就可以实现,改变左右区域的大小。 2、上面的例子来自官网的: Container 布局容器 | Element Plus 3、拖动的效果来自: https://juejin.cn/post/7029640316999172104#heading-1…

7个常用的JavaScript数组操作进阶用法

文章目录 1、查找数组中的最大值方法一:使用 Math.max 和展开运算符方法二:使用 for 循环逐一比较 2、查找数组中的第二大值方法一:排序后取第二大值方法二:遍历找到第二大值 3、去除数组中的重复项4、合并两个有序数组并保持有序5、旋转数组…

前深度学习时代-经典的推荐算法

参考自《深度学习推荐系统》—— 王喆,用于学习记录。 1.协同过滤 “协同过滤”就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。 基于用户相似度进行推荐的协同过滤算法 UserCF 用户相似度…

FPGA学习笔记#6 Vitis HLS For循环的优化(2)

本笔记使用的Vitis HLS版本为2022.2,在windows11下运行,仿真part为xcku15p_CIV-ffva1156-2LV-e,主要根据教程:跟Xilinx SAE 学HLS系列视频讲座-高亚军进行学习 学习笔记:《FPGA学习笔记》索引 FPGA学习笔记#1 HLS简介及…

MTK6833/MT6833(天玑700)安卓核心板_联发科5G智能通讯模块安卓主板定制

天玑700定位主流级,让5G技术惠及所有人。 MT6833采用7nm制程工艺,旨在为大众市场带来先进的5G功能和体验,依托5G双载波聚合技术(2CC)及双5G SIM卡功能,实现优异的功耗表现及实时连网功能。 CPU部分由2个2…

Spring Boot框架的知识分类技术解析

2 开发技术 2.1 VUE框架 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。 Vue 只关注视图层, 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 2.2 Mysql数据库 …

面试:TCP、UDP如何解决丢包问题

文章目录 一、TCP丢包原因、解决办法1.1 TCP为什么会丢包1.2 TCP传输协议如何解决丢包问题1.3 其他丢包情况(拓展)1.4 补充1.4.1 TCP端口号1.4.2 多个TCP请求的逻辑1.4.3 处理大量TCP连接请求的方法1.4.4 总结 二、UDP丢包2.1 UDP协议2.1.1 UDP简介2.1.2…

关于我、重生到500年前凭借C语言改变世界科技vlog.17——字符函数字符串函数

文章目录 1.字符函数1.1 字符分类函数1.1.1 islower 1.2 字符转换函数1.2.1 tolower 2.字符串函数2.1 strlen2.2 strcpy和strncpy2.3 strcat和strncat2.4 strcmp和strncmp2.5 strstr2.6 strtok2.7 strerror 希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&am…

可视化建模与UML《类图实验报告》

史铁生: 余华和莫言扛着我上火车, 推着走打雪仗, 还带我偷西瓜, 被人发现后他们拔腿就跑, 却忘了我还在西瓜地里。 一、实验目的: 1、熟悉类图的构件事物。 2、熟悉类之间的泛化、依赖、聚合和组合关系…

基于梧桐数据库的实时数据分析解决方案

一、背景 在当今信息时代,数据的价值不言而喻。然而,处理海量数据并将其转化为有意义的洞察力是一项艰巨的任务。传统的数据处理方法已经无法满足我们日益增长的需求。为了满足这一挑战,实时数据处理系统应运而生。 ​ 实时数据处理系统是一…

javascript实现国密sm4算法(支持微信小程序)

概述: 本人前端需要实现sm4计算的功能,最好是能做到分多次计算。 本文所写的代码在现有sm4的C代码,反复测试对比计算过程参数,成功改造成sm4的javascript代码,并成功验证好分多次计算sm4数据 测试平台: …

jmeter常用配置元件介绍总结之jsr223执行python脚本

系列文章目录 安装jmeter jmeter常用配置元件介绍总结之jsr223执行python脚本 1.安装jsr223执行python插件2.基础语法介绍2.1.log2.2.parameters向脚本传参与接参2.3.vars2.4.props2.5.prev 3.常用脚本3.1.MD5加密单个参数:3.2.MD5加密多个参数:3.3.URLe…

【MongoDB】MongoDB的聚合(Aggregate、Map Reduce)与管道(Pipline) 及索引详解(附详细案例)

文章目录 MongoDB的聚合操作(Aggregate)MongoDB的管道(Pipline操作)MongoDB的聚合(Map Reduce)MongoDB的索引 更多相关内容可查看 MongoDB的聚合操作(Aggregate) 简单理解&#xff…

快速了解SpringBoot 统一功能处理

拦截器 什么是拦截器: 拦截器是Spring框架提供的重要功能之一,主要进行拦截用户请求,在指定方法前后,根据业务需求,执行预先设定的代码。 也就是说,允许开发⼈员提前预定义⼀些逻辑,在⽤⼾的请求响应前后执⾏.也可以…

百兆网络变压器在无人机系统起到什么作用

华强盛电子 导读: 百兆网络变压器(通常指的是100M Ethernet Transformer)在无人机系统中扮演着重要的角色,尤其是在网络通信和电气隔离方面 1.电气隔离 网络变压器通过提供电气隔离,帮助保护无人机的电子设备免受电流…

在双显示器环境中利用Sunshine与Moonlight实现游戏串流的同时与电脑其他任务互不干扰

我和老婆经常会同时需要操作家里的电脑,在周末老婆有时要用电脑加班上网办公,而我想在难得的周末好好地Game一下(在客厅用电视机或者平板串流),但是电脑只有一个,以往我一直都是把电脑让给老婆,…

【Vue】Vue3.0(十七)Vue 3.0中Pinia的深度使用指南(基于setup语法糖)

上篇文章: 【Vue】Vue3.0(十一)Vue 3.0 中 computed 计算属性概念、使用及示例 🏡作者主页:点击! 🤖Vue专栏:点击! ⏰️创作时间:2024年11月10日15点23分 文章…

深度学习基础练习:从pytorch API出发复现LSTM与LSTMP

2024/11/5-2024/11/7: 前置知识: [译] 理解 LSTM(Long Short-Term Memory, LSTM) 网络 - wangduo - 博客园 【官方双语】LSTM(长短期记忆神经网络)StatQuest_哔哩哔哩_bilibili 大部分思路来自于: PyTorch LSTM和LSTMP…

【芯智雲城】Sigmastar星宸科技图传编/解码方案

一、图传技术简介 图传是指将图像或媒体内容从一个设备传输到另外一个设备的技术,传输的媒介可以是无线电波、光纤、以太网等。图传系统主要由图像采集设备、传输设备和接收设备组成,图像采集设备负责采集实时图像,传输设备将采集到的图像转…