机器人操作系统ROS浅析

举报
野猪佩奇996 发表于 2022/02/23 00:06:34 2022/02/23
【摘要】 文章目录 一、ROS简介二、学习路径三、ROS的核心概念3.1 ROS是一种跨平台模块化软件通讯机制(1)节点Node——执行单元(2)节点管理器 (ROS Master)—— 控制中心 3...

一、ROS简介

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

可以看某公司对ROS机器人算法工程师的要求:
(1)有机器人导航算法工作经验
(2)熟练掌握Slam机器人导航,实现建图、定位等功能;
(3)熟练使用ROS框架操控;
(4)熟练Linux系统、python和C++;
(5)扎实的数学功底。

ROS是一个操作系统
根据wikipedia定义,OS is system software that manages computer hardware and software resources and provides common services for computer programs。

  • 计算机的操作系统将计算机硬件封装起来,而应用软件运行在操作系统之上,不用管计算机具体应用的是什么类型的硬件产品。这能大大提高软件开发效率(否则大家只能都写汇编了)。

  • 同理,ROS则是对机器人的硬件进行了封装,不同的机器人、不同的传感器,在ROS里可以用相同的方式表示(topic等),供上层应用程序(运动规划等)调用。

二、学习路径

ROS主要编程语言是C++和python。
(1)ROS官方文档:http://wiki.ros.org/ROS/Tutorials
(2)中文版ROS教程:http://wiki.ros.org/cn/ROS/Tutorials(初级学前20讲)
(3)大佬的ROS学习笔记
(4)中科院ROS入门课程
(5)补充中。

三、ROS的核心概念

3.1 ROS是一种跨平台模块化软件通讯机制

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

(1)节点Node——执行单元

  • 执行具体任务的进程、独立运行的可执行文件;
  • 不同节点可使用不同的编程语言,可分布式运行在不同的主机;
  • 节点在系统中的名称必须是唯一的

(2)节点管理器 (ROS Master)—— 控制中心

  • 为节点提供命名和注册服务;

  • 跟踪和记录话题/服务通信,辅助节点相互查找、建立连接;

  • 提供参数服务器,节点使用此服务器存储和检索运行时的参数。

    在这里插入图片描述

3.2 话题通信

  • 话题(Topic)—— 异步通信机制
    • 节点间用来传输数据的重要总线;
    • 使用发布/订阅模型,数据由发布者传输到订阅者,同一个话题的订阅者或发布者可以不唯一。
  • 消息(Message)—— 话题数据
    • 具有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型;
    • 使用编程语言无关的.msg文件定义,编译过程中生成对应的代码文件。

在这里插入图片描述

3.2 服务通信

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

  • 使用客户端/服务器(C/S)模型,客户端发送请求数据,服务器完成处理后返回应答数据;
  • 使用编程语言无关的.srv文件定义请求和应答数据结构,编译过程中生成对应的代码文件。

3.3 文件系统

  • 功能包(Package) :ROS软件中的基本单元,包含节点源码、配置文件、数据定义等
  • 功能包清单(Package manifest):记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等
  • 元功能包(Meta Packages):组织多个用于同一目的功能包

Reference

[1] https://www.cnblogs.com/qqfly/p/5851382.html
[2] ROS入门:https://zhuanlan.zhihu.com/p/26007106

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/123053556

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。