ROS架构(一)——ROS架构设计

目录

  • 1、OS层
  • 2、中间层
  • 3、应用层

ROS架构,可以将其分为三个层次:OS层、中间层和应用层。

1、OS层

众所周知,ROS并不是一个传统意义的操作系统,不能像Windows、Linux那样直接运行在计算机硬件上,它需要依托在Linux系统上。因此在OS层,我们可以直接使用ROS官方支持程度最好的Ubuntu操作系统,当然也可以使用macOS、Arch、Debian等操作系统。

2、中间层

Linux系统是一个通用系统,并没有针对机器人开发提供特殊的中间件,因此ROS在中间层需要做大量工作,其中最为重要的就是基于TCPROS/UDPROS的通信系统。ROS的通信系统基于TCP/UDP网络,在此之上进行再次封装,也就是TCPROS/UDPROS。
通信系统使用发布/订阅、客户端/服务器等模型,实现多种通信机制的数据传输。
值得注意的是,除了上面介绍的TCPROS/UDPROS的通信机制外,ROS还提供一种进程内的通信方法——Nodelet,可以为多进程通信提供一种更优化的数据传输方式,适合对数据传输实时性方面有较高要求的应用。
在通信机制之上,ROS提供了大量机器人开发相关的库,如数据类型定义、坐标变换、运动控制等,可以提供给应用层进行使用。

3、应用层

在应用层,ROS需要运行一个管理者——Master,负责管理整个系统的正常运行。ROS社区内共享了许多的机器人应用功能包,而这些功能包内的模块是以节点为单位运行,以ROS标准的输入输出作为接口,开发者不需要关注模块的内部实现机制,需要了解的是接口规则即可实现复用,大大的提高了开发效率。
我们从系统实现的角度看,ROS也可以分为三个层次:文件系统、计算图和开源社区。

ROS架构(一)——ROS架构设计相关推荐

  1. SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所 ...

  2. x86架构与ARM架构(AGX、TX2、NX等)下配置带ROS插件的QtCreator(Qt+ROS+ubuntu18)(源码编译安装方式)

    在之前的一篇文章里面提到了Qt+ROS+ubuntu18环境的搭建,但是那种方法不适用于arm架构的电脑,原因是x86架构和arm架构的cpu指令集不一样,导致下载下来的可执行文件只能在x86架构运行 ...

  3. SLAM导航机器人零基础实战系列:(二)ROS入门——2.ROS系统整体架构

    SLAM导航机器人零基础实战系列:(二)ROS入门--2.ROS系统整体架构 摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机 ...

  4. 腾讯音乐:全民K歌推荐系统架构及粗排设计

    编辑整理:张振.于洋 导读:腾讯音乐娱乐集团 ( TME ) 目前有四大移动音乐产品:QQ音乐.酷狗音乐.酷我音乐和全民K歌,总月活超8亿.其中,全民K歌与其他三款产品有明显的差异,具体表现如下:以唱 ...

  5. 如何在微服务架构下进行数据设计?

    作者:唐建法 && Mongoing中文社区 来自:http://www.mongoing.com/ 微服务是一个软件架构模式,对微服务的讨论大多集中在容器或其他技术是否能很好的实施微 ...

  6. SOA之(2)——SOA架构基础概念与设计框架

    SOA的设计框架 设计框架与架构相关的概念紧密相连,原则.模式和架构始终是与设计共舞的. SOA服务设计的原则中记录了一个基础的设计框架: 设计特性(Design Characteristic)--由 ...

  7. Windows Server基础架构云参考架构:硬件之上的设计

    作者 王枫 发布于2014年1月27日 综述 毫无疑问,移动互联网.社交网络.大数据和云计算已经成为IT发展的四个大的趋势.其中云计算又为前三个提供了一个理想的平台.今天不仅互联网公司,很多传统行业的 ...

  8. mysql 三层架构开发_从三层架构迈向领域驱动设计(转载)

    三层架构 严格分层架构模式的特点是上层只能访问相邻的下层,其他层次间的调用都不允许.三层架构就是一种严格分层模式,它把职责划分为界面展示.业务逻辑.数据访问三层,还有一个业务实体,前面三层都要依赖它, ...

  9. 微服务架构与领域驱动设计应用实践

    本篇文章一共分为三个部分,分别是微服务架构的演进过程.具体实践微服务的应用技术和领域驱动设计的意识转变.微服务架构已经渗透到互联网应用的方方面面,而领域驱动设计也逐渐被业界所接收. 微服务架构几乎都是 ...

  10. 软件体系结构设计文档_一个java架构师是如何设计出一个好的架构的

    一.架构的定义 所谓一千个架构师中有一千种"最好的架构"模式. "架构"是我们行业中非常普遍的词,表示它也必须是经过长时间磨合后形成的词. 架构一词的含义是什么 ...

最新文章

  1. 数据加密之MD5加密
  2. python gui label_更新tkinter Label以在pythongui上显示一个文本文件,每次一行
  3. 用户态程序调用系统态程序-快速系统调用
  4. VMware虚拟机提示“以独占方式锁定此配置文件失败”解决方案
  5. Oracle修改数据库为非归档模式
  6. [工具]Mac下非常好用的快捷终端Dterm
  7. 网易游戏2019暑期实习开发岗笔试题
  8. 《Python和HDF 5大数据应用》——2.4 你的第一个HDF5文件
  9. java tcp 监听端口_【TCP/IP】端口未监听,还能访问成功?
  10. 报告PPT(123页):Python编程基础精要
  11. 搜索总结c++ 内存泄露问题
  12. 【转】化学怀旧风:用扑热息痛冲胶卷!
  13. gcc和g++的区别 (很详细的描述)
  14. Oracle 根据业务创建新的用户
  15. Web表单设计:点石成金的艺术(美)罗博乌斯基pdf
  16. 代码敲累了就来看看《创业计划书结构》
  17. 计算机职业核心素养,计算机专业人才核心素养研究-计算机专业论文-计算机论文(10页)-原创力文档...
  18. python scrapy框架爬虫_python爬虫之scrapy框架介绍
  19. Android 缩放动画 ScaleAnimation
  20. mybatis报错:Error evaluating expression

热门文章

  1. Hanzi Writer
  2. NUC-ACM/ICPC 寒假训练 简单DP A - G题
  3. Android 手机重启问题解决方案
  4. WuThreat身份安全云-TVD每日漏洞情报-2023-02-03
  5. 关于C++中野指针的说明
  6. 笑话(18) 当吸烟学生遭遇班主任
  7. java使用Selenium模拟登陆58(验证码登陆密码登陆)若快平台识别文字点击验证码
  8. 一支相思曲,一阕蝶恋花
  9. 牛逼哄哄的京东热数据探测框架-JD-hotkey !
  10. 【51单片机】点阵LED的显示实验