机器人项目研发
您当前的位置 : 首 页 > 新闻中心 > 技术资讯

ROS系统对于机器人开发的作用是什么?

2023-03-28 10:02:33

统一开发接口:

类似于操作系统屏蔽了用户与底层硬件之间的交互,用户只需要调用操作系统的接口就能够控制底层硬件,而ROS系统屏蔽了用户与操作系统的联系,用户开发机器人应用只需要调用ROS系统提供的接口即可。

开发者只需要学习ROS系统的标准接口就能够完成机器人的开发,从而不需要详细了解操作系统层面的开发函数,况且目前有多个底层操作系统(Windows、Linux、Mac),开发者不需要花额外的时间去学习不同的操作。

数据通信的中间件:

不少人在解释ROS作为数据通信中间件的时候只是强调message的subscribe和publish,事实上这只是数据通信的一部分,如下图所示,服务的提供者和请求者之间也属于数据通信,两者的区别可以简单理解为service进行交互的时候两者必须保持连接,而message进行交互的时候不需要保持连接,两者可以近似类比于网络通信中的TCP和UDP之间的区别。

以无人机为例,在机载计算机上搭建ROS系统,开发的应用发布导航信息是,将导航坐标以message的形式发送给mavros(ROS系统封装的mavlink协议,用于与无人机通信),需要改变无人机飞行状态是就调用mavros提供的服务,改变成功才进行下一步操作。

使得开发解耦:

现在机器人的开发绝不是单独一两个人在开发,而是一个团队,特别是大型的机器人项目,需要将机器人拆分为多个模块,每个模块独立负责一项完整的功能,每个模块里面又可以拆分为多个节点,每个节点独立完成一项特定的任务,以此来达到开发解耦的目的,开发只需要将任务分发下去,定义好接口,最终将所有节点、功能包联合起来就可以完成机器人的所有功能。

避免重复造轮子:

得益于全球开发者,ROS生态发展迅猛,社区里面很多无私的开发者将自己开发的应用无偿开源给所有开发者。比如开发者需要一个PID控制器,只需要下载(或者稍作修改)别人开源的代码然后编译就能够直接使用,仅需简单调节几个控制器参数就能够实现预定的功能,从而避免重复开发,让开发者专注于开发新的功能。


标签

最近浏览: