机器人是一个非常复杂的系统,硬件部分包括:各种各样感知环境信息的传感器、作为大脑进行计算的主控平台、执行动作的电机等等。软件层面包括:感知算法,规控算法,数据驱动的程式,操作系统等。


以操作系统为例,应用最为广泛的ROS系统在不断迭代,不过在智能时代洪流的冲击下,还是涌现出一些问题。

ROS的一些问题

  ROS逐渐成为标准,大量机器人应用被贡献到社区,虽然提高了代码的通用性,但却难以发挥硬件的完整性能;同时,大量应用聚焦在机器人运动控制与定位导航等基础功能,智能化的应用较少;此外,在软件资源格外丰富的社区中,还缺少系统化的内容,帮助用户快速实现相关资源的复用。


  很多开发者都在魔改ROS,去适配自己的机器人,所以机器人的研发成本非常高。从机械选型、系统定制、算法开发到数据闭环,每个过程都要付出高昂的成本,在这么高昂的成本下,做机器人是非常困难的一件事情。
在算法层面,机器人算法仍处于早期阶段,很多感知算法还停留在理论阶段,无法服务与实际场景,机器学习发展迅速,不过对于很多开发者来讲,数据的采集、标注、训练都是一个庞大的工作量,部署运行不仅十分困难,还要消耗大量的算力成本。

  智能机器人涉及的领域和方法较多,目前整体的学习成本偏高,想要实现智能化应用的难度就更高,问题的出现,也带来了机遇与挑战。

地平线机器人开发平台

  20226月,地平线机器人正式推出全新一代机器人开发平台,在软件、算法、工具层面给行业带来更多帮助。

  这套机器人开发平添的目的是打造软硬协同、极致优化、丰富易用的机器人开发组件与生态,由图中这几个部分组成,我们一一来看下。

  平台的底层主要依托于地平线AIOT边缘AI芯片——旭日3和旭日5,内部集成了地平线最先进的伯努利2.0架构的AI 引擎,可提供 5TOPS 以上的等效算力。

  如此强大的算力支持,保证了智能机器人开发的基础条件。

  芯片是基础建设,在此之上更重要的是一系列软件设施,重点就是我们课程的主角——TogetherROS机器人操作系统。
 
  正如我们电脑上的windowslinux,一套优质的操作系统,是上层应用软件开发的必要条件,TogetherROSROS系统的基础上,进行了大量的改良和优化,可以为开发者提供高效实用的系统环境。

  在此之上,平台还会提供大量的机器人参考算法和应用功能示例,比如常用的建图、定位、导航,还有智能机器人中至关重要的智能化功能,比如一些基础算法,图像分类、图像分割、目标检测等,还有应用功能,人脸检测、人体跟踪、骨骼点检测、手势识别、语音处理等等,提供基于大量数据训练的模型,借助底层AI引擎的支持,可以快速、稳定的实现各种各样的智能应用。

  同时平台还会配套一系列加速机器人开发的工具链,比如代码编写工具、系统调试工具、数据标注和训练工具等。

  古月居和地平线也会共同打造机器人开发者社区,持续分享技术内容,沉淀更多开发者的智慧,更多机器人产业中的合作伙伴也会陆续加入,共同打造最为丰富的机器人开发者套件,建设智能机器人开发的生态圈。

  在这个机器人开发平台之中,最为重要的就是TogetherROS系统了,起到了承上启下、连接各项功能的作用,我们将通过一系列课程为大家深入浅出的介绍。

TogetherROS的特点

  在ROS系统庞大社区资源的基础上,结合智能机器人的发展和产业需求,TogetherROS应运而生。



  TogetherROS有三个核心特点,第一点,开源兼容,秉承开源精神的力量,TogetherROSROS系统一样,也是一套完全开源的系统,所有开发者都可以继续二次开发,接口方面和ROS2完全兼容,ROS2原有的功能也都可以继续复用,已有的机器人代码可以十分便利的迁移过来。

  第二点,极致性能优化,相比ROS的通用化,TogetherROS更多考虑的是如何充分挖掘底层硬件的性能,比如提高数据传输的效率、增强人工智能处理的能力,在后续的使用案例中,大家可以充分感受到这一点。

  第三点,丰富易用的软硬件组件,比如各种各样的传感器和开发套件,再比如算法模块、感知应用、机器人功能,还有提高开发效率的各种编程、部署工具。

TogetherROS系统框架

  具体展开来看,TogetherROS的系统框架如图所示,其中深蓝色部分为地平线优化、新增的模块,其他是目前复用ROS2中的模块:


  在系统通信的中间件部分,保留了ROS2中原本针对不同DDS的通信框架,与ROS2 foxy版本的接口完全兼容,方便复用ROS丰富工具包进行原型验证,在此之上增加了“zero-copy”零拷贝的通信机制,降低大数据传输时延和系统资源消耗。

  在组件功能部分,TogetherROS提供“hobot CV”视觉加速库,软硬件协同,可以提升CV算子性能、降低系统资源消耗;针对AI模型的推理,封装了“hobot_dnn” 功能包,可以调用底层芯片的AI引擎,简化板端AI开发与部署,释放BPU的算力。可以支持丰富的机器人传感器型号,比如相机、雷达、IMUGPS等,节省驱动开发的时间,可以聚焦在机器人应用开发上。

  除此之外,TogetherROS还会提供丰富的软件调试和性能调优工具,方便用户定位问题和优化系统性能,在具体的行业应用中,还支持最小化和模块化的剪裁,利于部署在资源受限的嵌入式产品中。

  总之TogetherROS出于ROS,又不止于ROSROS原有的功能依然继承,重点是借助硬件能力,充分优化系统的性能,提高机器人开发的效率。