ROS日记:从基本的概念开始

ROS是什么?
    ROS,Robot Operating System的简称,是一个由斯坦福大学人工智能实验室研发的机器人操作系统,其实应该称为提供类似于操作系统功能的软件框架平台。

ROS的结构是怎样的?
    ROS分为两层,底层是操作系统层,上层则是广大用户编写提供的各种功能不同的软件包,比如定位导航,行动规划等等。所以ROS实际上可以看成是一个中间层,提供和重新封装了底层硬件调用的API,这些重新封装的API称为客户端库,运用这些库可是实现硬件调用,以此实现各种不同的功能,如使用激光雷达扫描生成周围环境的2D地图……
    ROS框架基于集中式拓扑图结构,它的进程(即节点,ROS以节点形式进行通信,以此实现功能)是分布式的,进程分布在各个功能不同的功能包里面。

ROS能做什么?
    ROS底层使用的是BSD许可协议(一个给予使用者很大自由的协议,使用者可以"为所欲为",可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布),所以属于开源软件,免费用于机器人研究或者商业使用。而在它的上层,用户所提供的各种功能包则使用了不同的许可协议。
    既然是“为所欲为”,那么它能做什么、实现什么,完全基于它安装的系统环境上都集成了什么硬件设备和用户在ROS上都编写使用了什么功能包。比如你的ROS安装了导航定位的功能包,而且你的机器人恰好安装有云台等定位导航设备,那么它就能用相关接口实现定位导航任务。
    ROS提供了类似于操作系统(如Windows系统)的标准服务或功能,例如硬件抽象、底层设备控制、常用函数实现、进程之间的消息传递,以及软件包的管理等功能。当然,毕竟ROS严格来说只是一个软件框架,包含哪些系统服务取决于它在哪个系统环境上安装,比如安装在Ubuntu(Linux)上,那么他的标准服务就是基于Linux的。
    这里解释一个概念——硬件抽象。所谓硬件抽象,这里指的是硬件抽象层的概念。硬件抽象层一般指位于操作系统内核和硬件电路之间的接口层。

    这个接口层有什么作用呢?接口层有承上启下的作用,它使我们通过操作系统就能和底层硬件打交道,而不必关注硬件的具体细节——比如在应用层(在系统内核层之上,例如平时我们使用的软件程序就位于这一层)我们对硬盘的“增删查改”操作、对内存的操作、对电源风扇主板显示器等硬件的操作等等,或者说我们在应用层所看到的一切都是从底层硬件电路层开始,一层层往上的呈现。我们不必关注底层硬件具体都实现了什么,只管通过软件发送操作系统级别的操作指令,然后通过这个接口层来和底层硬件交互。从这里我们也可以看出,编写设备独立的、高性能的代码成为了可能,因为只要有硬件抽象这个概念,也就是接口层这一概念,就可以通过操作系统和接口层访问硬件,从而也实现了程序的可移植性。但是这个接口层得对外提供,毕竟每套底层硬件系统所能提供的接口是不一样的,比如两个不同品牌的摄像头,对外提供的接口虽然类似,但却是不一样的。
    理解了硬件抽象这个概念,剩下的几个概念(底层设备控制、进程间消息传递……)也不难理解了。按字面意思理解就行。
    所以基于上面所说的硬件抽象和它提供的类似操作系统的标准服务,以及市面上目前的硬件系统,ROS能实现的功能就很多了,包括基于传感,控制,状态,规划性质的各种功能:激光雷达扫描、导航定位、线路规划、机械臂操控、伺服电机驱动和云台信号接收发送等等功能。

ROS怎么安装,在哪里安装?
    目前ROS主要支持Ubuntu——一种Linux系统发行版,因为ROS的各种库和功能包都是面向类Unix系统的。而Ubuntu支持的架构是x86、x64和ppc架构(基于微软WindowsMobile操作系统的微处理器架构),所以只要支持以上架构的系统环境都可以安装Ubuntu,并在Ubuntu之上安装ROS。

    Ubuntu的安装请查看另一篇博客“https://blog.csdn.net/jimson_zhu/article/details/80704712”。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值