ROS入门笔记(一): ROS简介

ROS机器人操作系统的认识 ROS机器人操作系统的认识,ROS通讯机制,ROS架构设计 阅读详情

ROS入门笔记(一): ROS简介

1 ROS是什么?

机器人操作系统(Robot Operating System, ROS)是一个应用于机器人上的操作系统,它操作方便、功能强大,特别适用于机器人这种多节点多任务的复杂场景。

说明:ROS是一个适用于机器人编程的框架, 这个框架把原本松散的零部件耦合在了一起, 为他们提供了通信架构。 ROS虽然叫做操作系统, 但并非Windows、 Mac那样通常意义的操作系统, 它只是连接了操作系统和你开发的ROS应用程序, 所以它也算是一个中间件, 基于ROS的应用程序之间建立起了沟通的桥梁, 所以也是运行在Linux上的运行环境, 在这个环境上, 机器人的感知、 决策、 控制算法可以更好的组织和运行。

2 ROS历史发展

2.1 ROS参考资料

1.官网:https://www.ros.org/

2.wiki:http://wiki.ros.org

3.问答:https://answers.ros.org

4.源码:https://github.com/

5.各大论坛和博客

2.2 ROS历史演变

1

2012年组织第一届ROS开发者大会,以后每年一届,会由不同的国家主办;之后Willow Garage经营不善,团队解散,2013年ROS的维护者成立了一个开源机器人基金这样一个组织来继续推进ROS的发展,并先后在2014年和2016年发布两款长期支持版(Long Term Support)的ROS(Indigo和Kinetic)和Ubuntu(乌班图)长期支持版保持同步的维护时间,可以得到5年的更新维护,目前官方推荐2016 ROS Kinetic。

2018年ROS2 1.0版将发布,互联网+,ROS将起着至关重要的作用。

2.3 ROS的官方解释(重点)

2

1)通信机制(框架):

  • 分布式:扩展性好,软件复用率高
  • 进程管理
  • 进程间通信

2)开发工具

  • 仿真
  • 数据可视化
  • 图形界面
  • 数据记录

3)应用功能

  • 控制
  • 规划
  • 视觉
  • 建图

4)生态系统(社区)

  • 软件包管理:apt-get,apt,包管理工具
  • 文档
  • 教程

3 ROS设计目标

①尽量提高机器人研发中的软件复用率

②框架中的每个功能模块能够被单独设计、编译、运行时松耦合方式结合

③功能模块都封装于独立的功能包或元功能包,便于社区共享与分发

④ROS由核心通信机制、开发工具、应用功能和生态系统四个部分构成

⑤为机器人开发提供了硬件抽象、底层驱动、消息传递、程序管理、应用原型等机制,整合了第三方工具及库文件,便于用户快速完成机器人应用的建立、编写和多机整合等

4 ROS特点

1)点对点的设计

ROS中每一个进程都以一个节点的形式运行,可分布于不同主机(分散计算压力,协同工作),节点的通信消息通过一个带有发布和订阅功能的RPC传输系统来传送。

2)多语言支持

C++、Python作为最广泛的ROS开发语言、C、Java及C#和Lisp等,每个模块可以用不同的语言实现。为了支持多语言编程,ROS采用了一种语言中立的接口定义语言来实现各模块之间消息传送。 通俗的理解就是, ROS的通信格式和用哪种编程语言来写无关, 它使用的是自身定义的一套通信接口。

3)架构精简、集成度高

  • 每个功能节点可以单独编译
  • 集成众多开源项目
  • 接口统一、提高软件复用性

4)组件化工具包丰富

  • 3D可视化工具—rviz
  • 物理仿真环境—gazebo
  • 数据记录工具—rosbag
  • Qt工具箱一rqt_*

5)免费并且开源

  • ROS具有一个庞大的社区ROSwiki(http://wiki.ros.org/),可以查阅功能包参数和提问等。
  • ROS开发的软件包已经达到数千万个,相关的机器人已经多达上千款。
  • ROS遵从BSD协议,对个人和商业应用及修改完全免费。

5 ROS优缺点

优点缺点
提供框架、 工具和功能通信实时性能有限
方便移植系统稳定性尚不满足工业级要求
庞大的用户群体安全性上没有防护措施
免费开源仅支持Linux(Ubuntu)

目前来说, ROS更适合科研和开源用户使用, 如果在工业场景应用( 例如无人驾驶) 还需要做优化和定制。

ROS保姆级0基础入门教程⭐ |第一章 ROS的概述与环境搭建(4万字教程,建议收藏) ROS全称Robot Operating System(机器人操作系统) ROS是适用于机器人的开源元操作系统; ROS集成了大量的工具,库,协议,提供类似OS所提供的功能,简化对机器人的控制; 还提供了用于在多台计算机上获取,构建,编写和运行代码的工具和库,ROS在某些方面类似于“机器人框架”; ROS设计者将ROS表述为“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体。 阅读详情

相关推荐

【ROS实践入门(一)ROS简介与安装方法】

【ROS实践学习入门系列(一)ROS简介与安装方法】 本内容经ROS官网实例以及一些参考书总结而成,转载请注明出处,欢迎留言评论交流~ 联系方式:ziyuanw#foxmail.com(#换成@) 一、简介: ROS(Robot Operating System)是一个机器人软件平台,它能提供类似操作系统的功能。 摘自官网最近的几个版本:melodic , lunar kinetic...

【秋名鱼酱的博客】 1766

ROS简介

在ROS中,有许多重要的模块和组件,用于实现不同功能和提供不同服务。下面是ROS的一些核心模块的详细介绍:1.roscore: roscore是ROS的核心节点,它提供了整个ROS系统的基础功能。roscore负责管理参数服务器、运行时图和消息传递,运行它是使用ROS的第一步。2.roslaunch: roslaunch是一个用于启动和管理ROS节点的强大工具。它可以通过一个XML格式的启动文件同时启动多个节点,还可以设置节点参数、命名空间和运行时选项等。

neuzhangno的博客 1万+

ROS Noetic入门笔记(一)在ubuntu20.04中安装ROS Noetic并简单测试

前提 已安装ubuntu20.04系统,这里我是在win10的基础上安装的ubuntu双系统,使用虚拟机也是可以的。 1.配置系统软件源 桌面上点击右键-设置-关于-软件更新 勾选universe,restricted,multiverse这三项,系统安装好后这三项应该是默认勾选的,服务器默认选择中国的服务器即可,如果是在国外的小伙伴或者有代理可用也可以选择ubuntu官方的服务器可以避免后边一系列的错误。 2.添加ROS软件源 打开终端,输入以下命令添加ROS官方软件源镜像: sudo sh -c 'e

玉面瘟神的专栏 5788

ROS机器人操作系统——什么是ROS(一)

ROS机器人操作系统 文章目录ROS机器人操作系统前言一、ROS是什么?二、ROS的发展史三、ROS的特点总结 前言 大一下的时候接触过ROS,也只是单纯的知道这个东西,了解了一点皮毛,并没有系统的去学习。一年过去了,无人驾驶以及机器视觉还是更加吸引我,于是我打算重拾ROS,希望能在别人开源的基础上做到二次开发,实现我想要的功能。 一、ROS是什么? 随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司

戚晨夕的博客 4万+

ROS学习笔记一:安装配置ROS环境

ROS学习笔记一:安装配置ROS环境在安装完成ROS indigo之后,需要查看环境变量是否设置正确,并通过创建一个简单的实例来验证ROS能否正常运行。1 查看环境变量在ROS的安装过程中,我们执行了如下命令:echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc source ~/.bashrc上述命令就是向当前用户添加ROS的环境变量,确认环境

祝 枫 1万+

《ROS入门21讲》笔记整理——观古月居ROS视频

要点概述 作为学习SLAM的必修课,跟着古月居的视频学习《ROS入门21讲》是很重要的事情 本文也就是我在看视频和实操的时候记录的一些笔记,本文会随着我对于ROS理解的加深而不断更新 安装和试用 这里推荐一个教程,参照此教程,可以完美安装 安装后,在三个命令行中运行一下代码,可以看到小海龟 roscore //ros要运行起来 rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key //这三行分别在三个终端下 ROS中的核心概

shuttworth的博客 2488

ros系统概览

ros系统概览

m0_68094390的博客 3671

ROS从入门到精通0-3:ROS简介、安装与常见问题

ROS是一个适用于机器人的开源的元操作系统,本文作为ROS入门的第一节,主要介绍为什么选择ROS,ROS如何安装以及一些安装过程的常见问题

FRIGIDWINTER的博客 5万+

《ROS精品入门》学习笔记一:ROS简介

一.学习内容 本节课主要讲了一下内容: 1. ROS概述 2. ROS安装 3. ROS基本命令 4. Eclipse环境配置 二.学习讲义 三.学习笔记 1.ROS相关的学习资料 最重要的当然是官方wiki了,建议从这里开始:http://wiki.ros.org/cn/ROS/Tutorials ,上边有很多好东西,可以在上边多逛逛,我现在学的这门课程就是在上边

NodYoung 4175

ROS入门跟着我就够了(一)ROS概述与环境搭建

编写 ROS 程序,在控制台输出文本: Hello World,分别使用 C++ 和 Python 实现。ROS中的程序即便使用不同的编程语言,实现流程也大致类似,以当前HelloWorld程序为例,实现流程大致如下:先创建一个工作空间;再创建一个功能包;编辑源文件;编辑配置文件;编译并执行。赵老师说的这个流程基本上就是一个完整的开发思路,之前就听说ROS开发基本是站在巨人肩膀上学习,看来是真的,只要你会调用已写好的功能包,使其适配即可完成功能的实现。1.创建工作空间并初始化。

zhangyuanbonj的博客 1万+

ROS2从入门到精通0-2:ROS2简介、对比ROS1与详细安装流程

ROS是一个适用于机器人的开源的元操作系统。本文作为ROS2入门的第一节,主要介绍为什么引入机器人操作系统,ROS的发展历程,为什么在ROS1的基础上要进一步引入ROS2,并给出详细的ROS2安装测试流程

FRIGIDWINTER的博客 2万+

ros发布节点信息python_ROS入门笔记(一): ROS简介

1 ROS是什么?机器人操作系统(Robot Operating System, ROS)是一个应用于机器人上的操作系统,它操作方便、功能强大,特别适用于机器人这种多节点多任务的复杂场景。说明:ROS是一个适用于机器人编程的框架, 这个框架把原本松散的零部件耦合在了一起, 为他们提供了通信架构。 ROS虽然叫做操作系统, 但并非Windows、 Mac那样通常意义的操作系统, 它只是连接了操作系统...

weixin_39646706的博客 311

ROS机器人开发入门:小白必读笔记

ROS(Robot Operating System)是一个用于机器人软件开发的灵活框架。它提供了一系列工具和库函数,用于帮助软件开发者创建复杂和可重用的机器人行为。尽管名为操作系统,实际上ROS更像是一个中间件,它提供设备驱动、库函数、可视化工具、消息传递等功能,从而简化了组件之间的通信。ROS采用基于话题(Topics)的发布-订阅模型来实现节点之间的通信。在C++中,您需要定义一个消息类型并创建发布者(Publisher)和订阅者(Subscriber)来交换数据。

weixin_36019375的博客 898

古月·ROS2入门21讲——学习笔记(一)核心概念部分1-14讲

数量也并不是唯一的。

weixin_45897172的博客 9921

Ubuntu 24.04 部署 EMQX 5.8 开源版MQTT服务器:从零搭建到实战应用

本文详细指导如何在Ubuntu 24.04系统上部署EMQX 5.8开源版MQTT服务器。内容涵盖从环境准备、安装Erlang、下载安装包到启动服务的完整步骤,并提供了验证服务、配置网络防火墙以及通过WebSocket工具进行基础消息收发的实战方法,帮助用户快速搭建稳定、免费的物联网消息中间件。

weixin_29209825的博客 293

.NET+Vue企业级RBAC权限平台:开箱即用的生产就绪方案

RBAC(基于角色的访问控制)是企业系统安全治理的基础模型,其核心在于将用户、角色与权限解耦,通过动态能力组合实现细粒度管控。在真实工程中,RBAC需突破静态角色限制,支持时间维度授权、前后端双重鉴权、行级数据范围控制等关键能力。本文聚焦于一套已落地金融、政务、制造等多行业的生产级实现——基于.NET Minimal API与Vue 3的前后端分离架构,提供菜单/按钮/接口/数据四层权限控制,内置滑动过期JWT、Redis权限缓存、动态路由加载与权限指令等开箱即用能力,显著降低权限配置与审计成本。

weixin_33326218的博客 276

ROS学习笔记(一):自己动手写一个ROS程序

本文建立的是一个基于ROS(Robot Operating System)的非常简单的发布(Publisher)、订阅(Subscriber)程序。

yake827的专栏 4万+

NVMe-MI 协议解析:带外管理框架与实现原理

本文深入解析了NVMe-MI协议,这是一种用于NVMe固态硬盘的标准化带外管理接口。文章详细阐述了其独立于操作系统的管理框架,通过MCTP协议栈实现,支持SMBus/I2C、PCIe VDM和I3C等物理层,从而在系统故障时仍能可靠地进行健康监控、固件升级等关键运维操作,是现代数据中心存储管理的核心基础设施。

lll78的博客 961

ROS学习笔记一

ROS21讲,ROS入门

鳿_的博客 2665

图像去雨:超详细手把手写 pytorch 实现代码(带注释)

占个坑,过几天来写

书山有路,学海无涯! 1万+

AT32F435/437开发实战:把SD卡变成U盘的完整指南(含源码解析)

本文提供了基于AT32F435/437微控制器将SD卡改造为U盘的完整实战指南。通过深入解析USB MSC协议与SDIO驱动的协同工作原理,详细介绍了硬件设计要点、软件架构融合、核心源码解析以及从编译到文件传输的完整调试流程,帮助开发者实现可靠的大容量存储设备扩展。

weixin_29159127的博客 410

古月居ROS入门21讲学习笔记——一 基础概述

写在前面 本文章为bilibili上学习古月居ROS入门21讲的学习笔记,是一个自己的记录,也希望能帮到想要入门ROS的小伙伴们 个人觉得入门ROS比较好的的免费课程是bilibili大学 上古月居(https://www.bilibili.com/video/BV1zt411G7Vn?from=search&seid=15055874661163835202)和中科院(https://www.bilibili.com/video/BV1mJ411R7Ni?from=search&seid

weixin_45969471的博客 940

1位2路选择器设计

1位2路选择器设计

好好学习,天天向上 3578

【ROS入门篇】ROS学习简介

【ROS入门篇】学习ROS简介

weixin_43453505的博客 3341

基于YOLOv8深度学习架构的智能农业巡检小车系统—面向农作物与杂草实时精准识别的创新实践

本研究设计并实现了一套基于YOLOv8的智能农业巡检小车系统,解决农田中农作物与杂草的精准识别与追踪问题。系统采用改进YOLOv8-RGCSPELAN-ECA-AFPN模型,融合ECA注意力机制与AFPN多尺度特征融合结构,提升复杂环境下的检测精度。硬件以树莓派4B为核心,集成摄像头、传感器与电机模块,具备避障、循迹与自主导航功能。移动端基于Android部署NCNN推理引擎,实现模型高效移植与实时检测。

Stara-AI的博客 1425

【深度学习基础】一篇弄懂训练集、验证集和测试集(呕心沥血版)

在深度学习中,训练集、验证集和测试集是构建和评估模型的核心组成部分。训练集用于模型的学习和参数优化,验证集帮助调整超参数和防止过拟合,而测试集则用于最终评估模型的泛化性能。正确划分和使用这三类数据集,对于开发高效、可靠的深度学习模型至关重要。本文将深入解析它们的作用、划分方法以及在实际应用中的注意事项,帮助你全面理解并掌握数据集的科学使用方法,从而提升模型的实际表现。

十二月的猫 3793
上一篇: Linux(五):Ubuntu 16.04 更改系统语言为简体中文(Chinese simplified)
下一篇: ROS入门笔记(二):ROS安装与环境配置及卸载(重点)
少云清
博客等级 码龄8年 2165粉丝 437原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少云清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值