ROS系列:一、ROS是什么
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、rviz;ROS用于存储与回放数据的工具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是什么相关推荐
- SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所 ...
- ROS系列教程三:roslaunch文件及参数服务器
一.标签简介 1.<launch> ... </launch> : 根标签,一般写在整个launch文件的头尾,斜杠/代表结束: 2.<node> :启动节点,如果 ...
- ROS系列——关于OpenCV读取和设置网络摄像头参数的问题
ROS系列--关于OpenCV读取和设置网络摄像头参数的问题 说明 1. cv::VideoCapture类的set函数 2. cv::VideoCapture类的get函数 说明 在对网络摄像头通过 ...
- ROS系列——ONVIF Device Test Tool测试工具获取网络摄像头的rtsp
ROS系列--ONVIF Device Test Tool测试工具获取网络摄像头的rtsp 1.说明 2.ONVIF Device Test Tool工具下载及安装 3.连接网络摄像头 4.获取视频测 ...
- ROS wiki系列|通过ROS wiki-tutorials学习节点
前面几期我们讲的都是一些入门相关的内容-- ROS wiki系列|ROS wiki初探(自用) ROS wiki系列|Documentation-ROS部分讲解 ROS wiki系列|ROS入门基础概 ...
- ROS wiki系列|通过ROS wiki-tutorials学习服务和参数
依旧是上一期指路:ROS wiki系列|通过ROS wiki-tutorials学习话题 前面讲了节点和话题,我们接下来讲服务和参数,走你~ 同样甩上我们今天的教程页面链接:Understanding ...
- ROS系列——Ubuntu18.04下ros Melodic安装mavros过程中遇到问题及解决-定期更新版
ROS系列--Ubuntu18.04下ros Melodic安装mavros过程中遇到问题及解决-定期更新版 问题 问题一:运行 wstool update -t src -j8 时,出错如下: 问题 ...
- ROS系列——image-transport功能包没有发布compressed图像Topic的原因
ROS系列--image-transport功能包没有发布compressed图像Topic的原因 说明 解决 说明 自己开发了摄像头图像发布节点,但是运行节点发现只有image_transportd ...
- ROS系列(一)-安装
ROS系列(一)-安装 环境:Ubuntu 16.04 + ROS kinetic 参考 官网 # 使用清华镜像,[国内镜像链接](http://wiki.ros.org/ROS/Installati ...
- ROS系列——mavros功能包中常用话题和服务介绍,包括消息名称、类型、头文件、成员变量、示例代码
ROS系列--mavros功能包中常用话题和服务介绍,包括消息名称.类型.头文件.成员变量.示例代码 官方链接 常用话题 订阅 1.1 系统状态 1.2 GPS数据 1.3 本地位置 1.4 三轴速度 ...
最新文章
- 记《浪潮之巅》-第一版-12.短暂的春秋--与机会失之交臂的公司之一太阳公司(sun microsystems)...
- system volume information怎么删除_文件系统怎么让Linux内核认识自己
- Springboot:开发时工程启动慢
- C语言再学习 -- 关键字struct(转)
- 【机器学习基础】(四):通俗理解支持向量机SVM及代码实践
- Verilog的数据流、行为、结构化与RTL级描述
- Software-testing-foundations-homework3
- [蓝桥杯2018初赛]乘积尾零-数论
- Java的内置垃圾收集如何使您的生活更美好(大部分时间)
- java代码上传exel,excle上传服务器并解析!求excel上传到服务器的java代码
- 幸福在《精通移动App测试实战 技术、工具和案例》
- 通俗地理解什么是编程语言
- 二叉树遍历代码_二叉树的题,就那几个框架,枯燥至极
- 期待已久的Java 9 今日正式发布,新特性解读
- Oracle数据库通过创建触发器实现自增功能
- 最近新发现的歌谱排版软件Lilypond
- 智慧交通管理和服务平台系统集成解决方案
- 20170814二维码的识别
- Windows server2016 计算机管理中找不到用户和组
- 计算机考研840考纲,2020年北航考研840网络空间安全专业综合考试大纲