1.ROS是什么

ROS是一个适用于机器人的开源的元操作系统。其实它并不是一个真正的操作系统,其底层的任务调度、编译、寻址等任务还是由Linux操作系统完成,也就是说ROS实际上是运行在Linux上的次级操作系统。但是ROS提供了操作系统应用的各种服务(如:硬件抽象、底层设备控制、常用函数实现、进程间消息传递、软件包管理等),也提供了用于获取、编译、跨平台运行代码的工具和函数。ROS主要采用松耦合点对点进程网络通信,目前主要还是支持Ubuntu系统,windows和Mac OS目前支持的还不好,所以推荐在Ubuntu系统上安装使用ROS。

1.1.ROS的特性

总结起来就是,使用ROS能够方便迅速的搭建机器人原型。ROS使用了BSD许可证,这是一个很宽松的开放许可证,允许在商业和闭源产品中使用,这一点对开发产品的创业公司很重要。ROS当前的代码统计量,总行数超过1400万,作者超过2477名。代码语言以C++为主,63.98%的代码是用C++编写的,排名第二的是python,占13.57%,可以说ROS基本上都是使用这两种语言,来实现大部分的功能。

1.2.ROS的结构

这里主要从四个方面来解读ROS的结构,设计思想、核心概念、核心模块、核心工具

ROS的设计思路主要是分布式架构,将机器人的功能和软件做成一个个节点,然后每个节点通过topic进行沟通,这些节点可以部署在同一台机器上,也可以部署在不同机器上,还可以部署在互联网上。

ROS的核心概念主要是节点和用于节点间通信的话题与服务。管理器Master管理节点与话题之间通信的过程,并且还提供一个参数服务用于全局参数的配置。ROS通过功能包集stack和功能包package来组织代码。

ROS的核心模块包括:通信结构基础、机器人特性功能、工具集。通信结构基础主要是消息传递、记录回放消息、远程过程调用、分布式参数系统;机器人特性功能主要是标准机器人消息、机器人几何库、机器人描述语言、抢占式远程过程调用、诊断、位置估计、定位导航;工具集主要是命令式工具、可视化工具、图形化接口。

ROS核心工具很丰富,ROS常用命令工具是rostopic、rosservice、rosnode、rosparam、rosmsg、rossrv、roswtf;ROS常用可视化工具是rqt、rvizROS用于存储与回放数据的工具rosbag;ROS的log系统记录软件运行的相关信息;ROS还拥有强大的第三方工具支持:三维仿真环境Gazebo、计算机视觉库OpenCV、点云库PCL、机械臂控制库MoveIt、工业应用库Industrial、机器人编程工具箱MRPT、实时控制库Orocos。

1.3.ROS的学习资源

官网: www.ros.org

源码: github.com

Wiki: wiki.ros.org

问答: answers.ros.org

感谢:https://zhuanlan.zhihu.com/p/64502836

 

ROS系列:一、ROS是什么相关推荐

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

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

  2. ROS系列教程三:roslaunch文件及参数服务器

    一.标签简介 1.<launch> ... </launch> : 根标签,一般写在整个launch文件的头尾,斜杠/代表结束: 2.<node> :启动节点,如果 ...

  3. ROS系列——关于OpenCV读取和设置网络摄像头参数的问题

    ROS系列--关于OpenCV读取和设置网络摄像头参数的问题 说明 1. cv::VideoCapture类的set函数 2. cv::VideoCapture类的get函数 说明 在对网络摄像头通过 ...

  4. ROS系列——ONVIF Device Test Tool测试工具获取网络摄像头的rtsp

    ROS系列--ONVIF Device Test Tool测试工具获取网络摄像头的rtsp 1.说明 2.ONVIF Device Test Tool工具下载及安装 3.连接网络摄像头 4.获取视频测 ...

  5. ROS wiki系列|通过ROS wiki-tutorials学习节点

    前面几期我们讲的都是一些入门相关的内容-- ROS wiki系列|ROS wiki初探(自用) ROS wiki系列|Documentation-ROS部分讲解 ROS wiki系列|ROS入门基础概 ...

  6. ROS wiki系列|通过ROS wiki-tutorials学习服务和参数

    依旧是上一期指路:ROS wiki系列|通过ROS wiki-tutorials学习话题 前面讲了节点和话题,我们接下来讲服务和参数,走你~ 同样甩上我们今天的教程页面链接:Understanding ...

  7. ROS系列——Ubuntu18.04下ros Melodic安装mavros过程中遇到问题及解决-定期更新版

    ROS系列--Ubuntu18.04下ros Melodic安装mavros过程中遇到问题及解决-定期更新版 问题 问题一:运行 wstool update -t src -j8 时,出错如下: 问题 ...

  8. ROS系列——image-transport功能包没有发布compressed图像Topic的原因

    ROS系列--image-transport功能包没有发布compressed图像Topic的原因 说明 解决 说明 自己开发了摄像头图像发布节点,但是运行节点发现只有image_transportd ...

  9. ROS系列(一)-安装

    ROS系列(一)-安装 环境:Ubuntu 16.04 + ROS kinetic 参考 官网 # 使用清华镜像,[国内镜像链接](http://wiki.ros.org/ROS/Installati ...

  10. ROS系列——mavros功能包中常用话题和服务介绍,包括消息名称、类型、头文件、成员变量、示例代码

    ROS系列--mavros功能包中常用话题和服务介绍,包括消息名称.类型.头文件.成员变量.示例代码 官方链接 常用话题 订阅 1.1 系统状态 1.2 GPS数据 1.3 本地位置 1.4 三轴速度 ...

最新文章

  1. 记《浪潮之巅》-第一版-12.短暂的春秋--与机会失之交臂的公司之一太阳公司(sun microsystems)...
  2. system volume information怎么删除_文件系统怎么让Linux内核认识自己
  3. Springboot:开发时工程启动慢
  4. C语言再学习 -- 关键字struct(转)
  5. 【机器学习基础】(四):通俗理解支持向量机SVM及代码实践
  6. Verilog的数据流、行为、结构化与RTL级描述
  7. Software-testing-foundations-homework3
  8. [蓝桥杯2018初赛]乘积尾零-数论
  9. Java的内置垃圾收集如何使您的生活更美好(大部分时间)
  10. java代码上传exel,excle上传服务器并解析!求excel上传到服务器的java代码
  11. 幸福在《精通移动App测试实战 技术、工具和案例》
  12. 通俗地理解什么是编程语言
  13. 二叉树遍历代码_二叉树的题,就那几个框架,枯燥至极
  14. 期待已久的Java 9 今日正式发布,新特性解读
  15. Oracle数据库通过创建触发器实现自增功能
  16. 最近新发现的歌谱排版软件Lilypond
  17. 智慧交通管理和服务平台系统集成解决方案
  18. 20170814二维码的识别
  19. Windows server2016 计算机管理中找不到用户和组
  20. 计算机考研840考纲,2020年北航考研840网络空间安全专业综合考试大纲

热门文章

  1. 有了花呗还需要办信用卡吗?
  2. 中兴通讯2013校招软件笔试题
  3. EtherCAT--01简介
  4. linux mock 使用
  5. 在表7中筛选出计算机或英语要补考的人,计算机会考操作题库 - 四明职业高级中学.docx...
  6. 最新!2020年11月编程语言排行榜出炉
  7. 项目管理知识图谱(2)
  8. Self -Supervised Learning
  9. spark技术学习与思考(sparkcoresparksql)
  10. 【前端】vue-slider实现可设置选择范围的时间轴