机器人操作系统ROS浅析

首先我们可以看某公司对ROS机器人算法工程师的要求:

(1)有机器人导航算法工作经验

(2)熟练掌握Slam机器人导航,实现建图、定位等功能;

(3)熟练使用ROS框架操控;

(4)熟练Linux系统、python和C++;

(5)扎实的数学功底。

相信很多人对机器人都很感兴趣,这就不只是像深度学习算法工程师一样,还涉及很多其他知识~

一、ROS简介

ROS是RobotOperatingSystem的缩写,原本是斯坦福大学的一个机器人项目,后来由WillowGarage公司发展,目前由OSRF(OpenSourceRoboticsFoundation,Inc)公司维护的开源项目。ROS就像手机界的安卓,电脑中的微软;ROS虽然叫操作系统,但是真正底层的任务调度、编译、寻址等任务还是由Linux操作系统完成,也就是ROS充其量是一个运行在Linux上的次级操作系统。

ROS是一个操作系统

根据wikipedia定义,OSissystemsoftwarethatmanages   

ROS用节点(Node)的概念表示一个应用程序,不同node之间通过事先定义好格式的消息(Topic),服务(Service),动作(Action)来实现连接。

2.2话题通信

-话题(Topic)——异步通信机制-节点间用来传输数据的重要总线;

-使用发布/订阅模型,数据由发布者传输到订阅者,同一个话题的订阅者或发布者可以不唯一。

-消息(Message)——话题数据

-具有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型;

-使用编程语言无关的.msg文件定义,编译过程中生成对应的代码文件。

2.3服务通信服务(Service)——同步通信机制

-使用客户端/服务器(C/S)模型,客户端发送请求数据,服务器完成处理后返回应答数据;

-使用编程语言无关的.srv文件定义请求和应答数据结构,编译过程中生成对应的代码文件。

作者:山顶夕景学术范签约作者,CSDN博客专家,推荐算法工程师,专注于机器学习、深度学习

学术范(xueshufan.


转载请注明:http://www.aierlanlan.com/rzgz/2953.html