1.1 ROS2简介
场景
机器人是一种高度复杂的系统性实现,机器人设计包含了机械结构设计、机械加工、硬件设计、嵌入式软件设计、上层软件设计等诸多模块,是各种硬件与软件的有机结合,甚至可以说机器人系统是当今工业体系的集大成者。机器人体系是相当庞大的,其复杂度之高,以至于没有任何个人、组织甚至公司能够独立完成系统性的机器人研发生产任务。
那么问题随之而来:既然机器人实现如此困难,那么我们应该如何开展相关工作呢?
一种合适的策略是——合作。让机器人研发者专注于自己擅长的领域,其他模块则直接复用相关领域更专业研发团队的实现,当然自身的研究也可以被他人继续复用。这种基于“复用”的分工协作,遵循了不重复发明轮子的原则,显然是可以大大提高机器人的研发效率的,尤其是随着机器人硬件越来越丰富,软件库越来越庞大,这种复用性和模块化开发需求也愈发强烈。
在此大背景下,便诞生了ROS。ROS是一套机器人通用软件框架,可以提升功能模块的复用性,并且随着ROS2的推出,ROS日臻完善,是机器人软件开发的不二之选。
概念
ROS(Robot Operating System)是用于构建机器人应用程序的软件开发工具包。ROS是开源的,它由一组软件库和若干工具组成。
在机器人领域,ROS是一个标准软件平台,这个平台为开发者提供了构建机器人应用程序所需的各个功能模块,并且开发者能够以“可插拔”的方式组织各个功能模块,无论开发者的程序是用于课堂实验、科学研究、原型设计或是最终产品,ROS都提供了一站式的技术支持。
另外需要注意的是,ROS虽然字面意思是机器人操作系统,但是它并非经典意义上的操作系统,更准确的讲ROS是一个 SDK(Software Development Kit)也即软件开发工具包。
作用
秉着“不要重复发明轮子”的原则,通过ROS可以复用已有功能并方便快捷的拓展新功能。