当前位置: 首页 > news >正文

【ROS2】Ubuntu22.04安装ROS humble

一. ROS简介

1.1 什么是ROS

ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。ROS的核心思想就是将机器人的软件功能做成一个个节点,节点之间通过互相发送消息进行沟通。这些节点可以部署在同一台主机上,也可以部署在不同主机上,甚至还可以部署在互联网上。
请添加图片描述
自ROS诞生的十几年来,不管是机器人相关软件、硬件还是ROS社区都发生了天翻地覆的变化,加之原本的ROS存在一些设计上的先天性缺陷,在各种内外因素叠加下,导致老ROS在许多应用场景下都已经显得力不从心了。

此背景下,官方于2017正式推出了新一代机器人操作系统——ROS2(区别于老ROS,即ROS1),ROS2基于全新的设计框架,保留了ROS1的优点并改进其缺陷,以适应新时代的新需求。
在这里插入图片描述

本文简要介绍ROS2的安装教程。

1.2 ROS与ROS2的差别

ROS2作为ROS1的继任者,在保持ROS核心功能的基础上进行了诸多改进和优化。相较于ROS1,ROS2取消了ROS1中的Master中央节点,实现了节点的分布式发现、发布/订阅、请求/响应通讯。

  • ROS1使用自定义的中间件(roscore),而ROS2使用DDS中间件。
  • ROS1使用catkin作为构建系统,而ROS2使用colcon作为构建系统。

1.3 ROS2与Ubuntu版本对应

ROS2版本生命周期Ubuntu版本语言依赖
Foxy Fitzroy2020.5-2023.5Ubuntu Focal (20.04)C++ >=14、Python >= 3.7
Galactic Geochelone2021.5-2022.11Ubuntu Focal (20.04)C++ >=17、Python >=3.6
Humble Hawksbill2022.5-2027.5Ubuntu Jammy (22.04)/Ubuntu Focal (20.04)(只能源码安装)C++ >=17 、Python >=3.6
Iron Irwini2023.5-2024.11Ubuntu Jammy (22.04)C++ >=17 、Python >= 3.8
Jazzy Jalisco2024.5-2029.5Ubuntu Noble (24.04)C++ >=17 、Python >= 3.8

以下以 ubuntu 22.04 、ROS2 humble 为例

二. 安装ROS2

2.1 推荐小鱼工具一键安装

执行以下命令

wget http://fishros.com/install -O fishros && . fishros

执行后出现如下界面,按照步骤进行安装
在这里插入图片描述

输入1 一键安装
在这里插入图片描述

输入1 更换系统源再继续安装
在这里插入图片描述
输入1 humble
在这里插入图片描述

输入1 选择桌面版

2.2 安装rosdep

wget http://fishros.com/install -O fishros && . fishros

在这里插入图片描述

选择3 安装rosdep

安装好后再终端输入 rosdepc update 即可配置成功

三. 测试

打开两个终端分别输入以下命令 :

ros2 run demo_nodes_cpp talker

在另一个终端中,输入命令:

ros2 run demo_nodes_py listener  

显示如下即为成功
在这里插入图片描述

http://www.lryc.cn/news/493932.html

相关文章:

  • cesium 3Dtiles变量
  • 配置泛微e9后端开发环境
  • 【Stable Diffusion】安装教程
  • USB Type-C一线通扩展屏:多场景应用,重塑高效办公与极致娱乐体验
  • 【力扣】541.反转字符串2
  • 什么是防抖与节流
  • springboot vue 开源 会员收银系统 (12)购物车关联服务人员 订单计算提成
  • FFmpeg 推流给 FreeSWITCH
  • .npmrc文件的用途
  • C++游戏开发入门:如何从零开始实现自己的游戏项目?
  • Redis设计与实现第16章 -- Sentinel 总结1(初始化、主从服务器获取信息、发送信息、接收信息)
  • Windows10+VirtualBox+Ubuntu:安装虚拟机VirtualBox,虚拟机中安装Ubuntu
  • Torchtune在AMD GPU上的使用指南:利用多GPU能力进行LLM微调与扩展
  • C底层 函数栈帧
  • 【模块一】kubernetes容器编排进阶业务容器化案例
  • 可视化建模以及UML期末复习篇----相关软件安装
  • Appflyer记录卸载事件
  • JDK17 AbstractQueuedSynchronizer 二 条件队列
  • 8 设计模式之简单工厂模式
  • 计算机的错误计算(一百六十九)
  • Android 图形系统之三:SurfaceControl
  • Laravel8.5+微信小程序实现京东商城秒杀方案
  • Makefile 入门指南:构建自动化编译流程
  • C#热更原理与HybridCLR
  • 里氏替换原则:Java面向对象设计的基石
  • 恒创科技:服务器操作系统和客户端操作系统之间的区别
  • 做异端中的异端 -- Emacs裸奔之路4: 你不需要IDE
  • Unity3d C# 摄像头检测敌方单位(目标层级)并在画面中标注(含源码)
  • js 16进制加密
  • 性能测试之压测