新闻中心

EEPW首页 > 智能计算 > 大咖说 > OpenVINO + ROS 加速机器人应用

OpenVINO + ROS 加速机器人应用

作者:时间:2020-12-28来源:OpenVINO中文社区收藏

  什么是?它与智能机器人有什么关系?另外中有哪些应用?
  如果错过6月20日来自英特尔物联网事业部三位技术大咖的线上直播回顾,那么这篇文章为你整理了直播的干货内容!
嘉宾介绍

本文引用地址:http://www.eepw.com.cn/article/202012/421633.htm

1609125478335064.png

  接下来,由三位老师为大家分享关于+加速机器人应用的知识干货。
  第一位分享的是杨洪老师。在他的分享中,他从ROS项目介绍,ROS在机器人中的应用,以及英特尔在ROS中的投入等方面进行了分享。

  首先,杨老师对ROS进行了一个基本介绍——ROS即Robot Operating System(机器人操作系统),它的实际意义是跑在传统系统软件(如Windows)的一个软件框架,也可以说它是一个次操作系统,它使得复杂的机器人开发变得更加简单。
  首先,杨老师对ROS进行了一个基本介绍——ROS即Robot Operating System(机器人操作系统),它的实际意义是跑在传统系统软件(如Windows)的一个软件框架,也可以说它是一个次操作系统,它使得复杂的机器人开发变得更加简单。
  ROS目前是一个开源项目,由开源机器人基金会进行并推动其发展。
  其次,杨老师还为大家分享了ROS及其分支的发展历程——ROS有三个分支:ROS,ROS-industrial,以及ROS 2.0。
  ROS最早是在2007年,斯坦福大学人工智能实验室与一家机器人初创公司Willow Garage的合作项目。截至2020年,ROS的第14个release版本也是其在ROS分支的最后一个版本被推出。而ROS-industrial的开发是为了能够更好地支持工业类机器人的发展,比如多轴工业机械臂。这一分支以Consortium的方式组织运营。最后,ROS 2.0,则是在社区在2014年推出的新一代机器人操作系统的概念,其目的是为了使得机器人操作系统具有更好的实时性以及更好的安全性。
  接下来,杨老师继续为大家分享了ROS在机器人领域的典型应用,主要是在Aerial,Component,Ground,Manipulator,Marine五个领域的应用。一些代表公司,如下图所示:

1609125558148029.png

  除此之外,杨老师还分享到ROS的总体框架包括四个基本概念(节点,消息,主题,服务),许多软件包,以及包含不同stack与repository的Universe。
  最后,杨老师讲到了Intel与ROS社区的关系。Intel不仅是ROS社区的领导者,还为ROS社区的代码贡献、产品推进以及产品落地做出了很大的贡献。
  第二位分享的是刘为志老师,刘老师就ROS与结合的情况展开了分享。

1609125603893906.jpg

  刘老师讲到,OpenVINO是经济基础,而ROS2 OpenVINO™是上层建筑。另外,ROS2有以下三个功能:
  -表明如何把OpenVINO需要的实现封装成ROS2需要的一些接口;
  -在目前智能机器的发展过程中,不同场景的输出是多种多样的,而ROS2能将这些输出整合成一个标准化的通讯协议与实现;
  -拓展了在OpenVINO实验过程中标准化或流水化处理的运行时管理机制。
  其次,刘老师还为大家分享了机器人操作系统必备的三个方面:从个人传感器及环境方面做一个对信息进行感知的系统,对环境的感知进行正确决策的系统,以及基于决策对硬件本体进行控制的系统。
  接下来,刘老师还分享了ROS OpenVINO™的应用流程,其本质上使用OpenVINO本身通过第三方提供的模型,基于OpenVINO模型优化器把模型转化成OpenVINO可以识别的模式,基于OpenVINO提供的推断引擎进行识别,进而由ROS OpenVINO™提供的运行时管理机制与标准化接口,与机器人的上层应用进行无缝对接。
  最后,刘老师还为大家介绍了Pipeline实现机制,如下图所示:

1609125635988371.png

  第三位分享的是刘献容老师,她主要为大家介绍了基于深度学习卷积神经网络的OpenVINO™加速和部署。
  首先,通过OpenVINO™进行卷积神经网络的计算步骤为:
  利用Model Optimizer将已经训练好的神经网络模型转化成OpenVINO优化的模型,即IR。
  利用Inference Engine提供一个通用接口,编写一个应用程序来完成推理。
  其次,刘老师还为大家介绍了OpenVINO™的深度学习卷积神经网络模型:GPD(Grasp Pose Detection),GQ-CNN抓取检测模型,以及Mask-RCNN模型。
  接下来,刘老师针对一些应用例程和客户案例进行了,如下图所示:

1609125668894978.jpg

1609125667408371.png

  最后,刘老师演示了一段OpenVINO™抓取算法的Demo。如下图所示:

1609125711617372.png

1609125731908236.png

1609125756346117.png

以上就是三位老师分享的内容
Q&A环节
  Q1.请问ROS2目前对建图算法的支持情况怎么样,像ROS1的cartographer、gmapping等包可以跑吗?OpenVINO与ROS2通讯交互的功能包是?
  杨洪老师:关于ROS2里面的建图功能的支持,目前在整个开源机器人产品平台上,用的比较多的是Cartographer以及Gmapping。Cartographer适用于相对较大的应用场景,而Gmapping适用于比较小巧,计算量较小的的场景。
  对于ROS2的支持,Cartographer和Gmapping本身核心的算法并没有太多的依赖,但是为了能够跟ROS2的其他软件组件如navigation一起工作,则需要相应的ROS2 interface。目前在github里面,Cartographer和Gmapping都有相应的开源项目支持ROS2了。
  Q2.ROS2在交通方面有什么应用?
  杨洪老师:在这里我以目前较为火热的自动驾驶话题为例。ROS在自动驾驶中的应用还蛮多的,虽然这并不是ROS的主要目的。举一个例子,比如百度开发的Apollo系统就是基于ROS做的。它在ROS上面引入了许多ROS2的概念。另外社区也有一个Autoware Foundation,主要的目标就是开发基于ROS和ROS2的自动驾驶框架。
  Q3.ROS1节点之间的通讯需要master分发吗?
  杨洪老师:我在前面介绍过一个ROS Master系统,这个系统起到一个桥梁的沟通作用。但是,这并不意味着所有消息的分发、沟通一定要通过ROS Master去做。它的主要功能是使系统里所有的点,信息等在ROS Master系统里进行注册创建,使得系统在运行时,第三方模块需要系统里的信息时,形成点对点的后续沟通。
  Q4.ROS2是否得到产品质量,原有ROS1产品现在移植到ROS2是否合适?
  杨洪老师:产品的质量包括很多方面,ROS2只是机器人开发中的一个环节。如果基于整个框架,质量要涉及到底层硬件的开发,产品操作系统本身的质量优化,以及框架和上层开发的软件。如果要落实到具体的产品来讲,是需要case by case的。另外,移植到ROS2的时机问题,我个人建议从长期产品规划的角度来讲,现在要开始考虑ROS2的迁移的规划了。因为社区今后新的开发和版本发布都会主要围绕ROS2进行了。
  Q5.ROS2和OpenVINO的语言可用labview吗?
  刘为志老师:目前我们还未试过,还不能说能够支持。但Labview本身基于CAI设计,想在OpenVINO上的应用不是很大。
  Q6.ROS1的OpenVINO功能包会有二进制的发行版吗?OpenVINO使用python3会在ROS Melodic这些python2的ROS版本中做适配吗?
  刘为志老师:这是一个很好的问题。去年我们考虑过将OpenVINO的功能包发行二进制版,但我们最后发现有以下几个风险:
  -OpenVINO本身需要依赖的OpenVINO Talk是一个完整的包
  -这么大的包如果进行二进制发布,可能会造成使用者或ROS社区发布流程的一些问题。
  目前ROS OpenVINO同时支持ROS和ROS2两个版本,在对ROS Melodic版本的支持中,目前没有计划支持Python2的相关工作。
  Q7.OpenVINO是否加入了语义分割、实例分割的模型?语义分割每年都会有学者提出新的模型,如何利用OpenVINO使用新的模型得到分割结果?在得到场景理解的结果下,如何结合ros在移动机器人上实现高级别的任务?
  刘为志老师:提到分割的问题,这个在OpenVINO里是支持的,在OpenVINO里有2至3个模型是支持道路分割的。另外,关于场景的建设,我认为应该有很多,比如行人过马路,是需要道路分割的。
  Q8.如何利用OpenVINO去实现室内场景的语义分割,构建语义地图?
  刘为志老师:实际上,就这个问题,我建议大家去看Intel Lab史雪松老师在B站上的分享。
  Q9.如果使用openvino,建议把openvino和ros放在一台工控机上还是分开部署?
  刘献容老师:我觉得这个问题取决于工作负载和使用的设备。我可以分享一个我们做实例所得到的结果。目前OpenVINO在工业环境下的负载主要有视觉的计算,对工业机器人的控制,以及对于运动规划算法的计算。在实际中,我们将OpenVINO的视觉检测和ROS机器放在同一台机器上。但是如果增加运动规划和避障,为了保证实时性以及安全性,可以考虑分开部署,选择虚拟机或者多种架构集成芯片。
  Q10.OpenVINO比Tensorflow Lite有什么优势,Tensorflow模型可以在OpenVINO运行吗?
  刘献容老师:首先,Tensorflow Lite我没有具体操作过,只看过一些简单的介绍,我觉得它们各自的优化目标和优化目的其实是不一样的。像OpenVINO更多的是把常用的深度学习框架都能支持其优化,而Tensorflow Lite主要是把其自己的模型进行一个优化。他们的共同之处是,他们二者都希望能够实现跨平台。



关键词: ROS OpenVINO

评论


相关推荐

技术专区

关闭