新聞中心

EEPW首頁 > 智能計算 > 大咖說 > OpenVINO + ROS 加速機(jī)器人應(yīng)用

OpenVINO + ROS 加速機(jī)器人應(yīng)用

作者: 時間:2020-12-28 來源:OpenVINO中文社區(qū) 收藏

  什么是?它與智能機(jī)器人有什么關(guān)系?另外中有哪些應(yīng)用?
  如果錯過6月20日來自英特爾物聯(lián)網(wǎng)事業(yè)部三位技術(shù)大咖的線上直播回顧,那么這篇文章為你整理了直播的干貨內(nèi)容!
嘉賓介紹

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

1609125478335064.png

  接下來,由三位老師為大家分享關(guān)于+加速機(jī)器人應(yīng)用的知識干貨。
  第一位分享的是楊洪老師。在他的分享中,他從ROS項目介紹,ROS在機(jī)器人中的應(yīng)用,以及英特爾在ROS中的投入等方面進(jìn)行了分享。

  首先,楊老師對ROS進(jìn)行了一個基本介紹——ROS即Robot Operating System(機(jī)器人操作系統(tǒng)),它的實際意義是跑在傳統(tǒng)系統(tǒng)軟件(如Windows)的一個軟件框架,也可以說它是一個次操作系統(tǒng),它使得復(fù)雜的機(jī)器人開發(fā)變得更加簡單。
  首先,楊老師對ROS進(jìn)行了一個基本介紹——ROS即Robot Operating System(機(jī)器人操作系統(tǒng)),它的實際意義是跑在傳統(tǒng)系統(tǒng)軟件(如Windows)的一個軟件框架,也可以說它是一個次操作系統(tǒng),它使得復(fù)雜的機(jī)器人開發(fā)變得更加簡單。
  ROS目前是一個開源項目,由開源機(jī)器人基金會進(jìn)行并推動其發(fā)展。
  其次,楊老師還為大家分享了ROS及其分支的發(fā)展歷程——ROS有三個分支:ROS,ROS-industrial,以及ROS 2.0。
  ROS最早是在2007年,斯坦福大學(xué)人工智能實驗室與一家機(jī)器人初創(chuàng)公司W(wǎng)illow Garage的合作項目。截至2020年,ROS的第14個release版本也是其在ROS分支的最后一個版本被推出。而ROS-industrial的開發(fā)是為了能夠更好地支持工業(yè)類機(jī)器人的發(fā)展,比如多軸工業(yè)機(jī)械臂。這一分支以Consortium的方式組織運營。最后,ROS 2.0,則是在社區(qū)在2014年推出的新一代機(jī)器人操作系統(tǒng)的概念,其目的是為了使得機(jī)器人操作系統(tǒng)具有更好的實時性以及更好的安全性。
  接下來,楊老師繼續(xù)為大家分享了ROS在機(jī)器人領(lǐng)域的典型應(yīng)用,主要是在Aerial,Component,Ground,Manipulator,Marine五個領(lǐng)域的應(yīng)用。一些代表公司,如下圖所示:

1609125558148029.png

  除此之外,楊老師還分享到ROS的總體框架包括四個基本概念(節(jié)點,消息,主題,服務(wù)),許多軟件包,以及包含不同stack與repository的Universe。
  最后,楊老師講到了Intel與ROS社區(qū)的關(guān)系。Intel不僅是ROS社區(qū)的領(lǐng)導(dǎo)者,還為ROS社區(qū)的代碼貢獻(xiàn)、產(chǎn)品推進(jìn)以及產(chǎn)品落地做出了很大的貢獻(xiàn)。
  第二位分享的是劉為志老師,劉老師就ROS與結(jié)合的情況展開了分享。

1609125603893906.jpg

  劉老師講到,OpenVINO是經(jīng)濟(jì)基礎(chǔ),而ROS2 OpenVINO?是上層建筑。另外,ROS2有以下三個功能:
  -表明如何把OpenVINO需要的實現(xiàn)封裝成ROS2需要的一些接口;
  -在目前智能機(jī)器的發(fā)展過程中,不同場景的輸出是多種多樣的,而ROS2能將這些輸出整合成一個標(biāo)準(zhǔn)化的通訊協(xié)議與實現(xiàn);
  -拓展了在OpenVINO實驗過程中標(biāo)準(zhǔn)化或流水化處理的運行時管理機(jī)制。
  其次,劉老師還為大家分享了機(jī)器人操作系統(tǒng)必備的三個方面:從個人傳感器及環(huán)境方面做一個對信息進(jìn)行感知的系統(tǒng),對環(huán)境的感知進(jìn)行正確決策的系統(tǒng),以及基于決策對硬件本體進(jìn)行控制的系統(tǒng)。
  接下來,劉老師還分享了ROS OpenVINO?的應(yīng)用流程,其本質(zhì)上使用OpenVINO本身通過第三方提供的模型,基于OpenVINO模型優(yōu)化器把模型轉(zhuǎn)化成OpenVINO可以識別的模式,基于OpenVINO提供的推斷引擎進(jìn)行識別,進(jìn)而由ROS OpenVINO?提供的運行時管理機(jī)制與標(biāo)準(zhǔn)化接口,與機(jī)器人的上層應(yīng)用進(jìn)行無縫對接。
  最后,劉老師還為大家介紹了Pipeline實現(xiàn)機(jī)制,如下圖所示:

1609125635988371.png

  第三位分享的是劉獻(xiàn)容老師,她主要為大家介紹了基于深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的OpenVINO?加速和部署。
  首先,通過OpenVINO?進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)的計算步驟為:
  利用Model Optimizer將已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型轉(zhuǎn)化成OpenVINO優(yōu)化的模型,即IR。
  利用Inference Engine提供一個通用接口,編寫一個應(yīng)用程序來完成推理。
  其次,劉老師還為大家介紹了OpenVINO?的深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)模型:GPD(Grasp Pose Detection),GQ-CNN抓取檢測模型,以及Mask-RCNN模型。
  接下來,劉老師針對一些應(yīng)用例程和客戶案例進(jìn)行了,如下圖所示:

1609125668894978.jpg

1609125667408371.png

  最后,劉老師演示了一段OpenVINO?抓取算法的Demo。如下圖所示:

1609125711617372.png

1609125731908236.png

1609125756346117.png

以上就是三位老師分享的內(nèi)容
Q&A環(huán)節(jié)
  Q1.請問ROS2目前對建圖算法的支持情況怎么樣,像ROS1的cartographer、gmapping等包可以跑嗎?OpenVINO與ROS2通訊交互的功能包是?
  楊洪老師:關(guān)于ROS2里面的建圖功能的支持,目前在整個開源機(jī)器人產(chǎn)品平臺上,用的比較多的是Cartographer以及Gmapping。Cartographer適用于相對較大的應(yīng)用場景,而Gmapping適用于比較小巧,計算量較小的的場景。
  對于ROS2的支持,Cartographer和Gmapping本身核心的算法并沒有太多的依賴,但是為了能夠跟ROS2的其他軟件組件如navigation一起工作,則需要相應(yīng)的ROS2 interface。目前在github里面,Cartographer和Gmapping都有相應(yīng)的開源項目支持ROS2了。
  Q2.ROS2在交通方面有什么應(yīng)用?
  楊洪老師:在這里我以目前較為火熱的自動駕駛話題為例。ROS在自動駕駛中的應(yīng)用還蠻多的,雖然這并不是ROS的主要目的。舉一個例子,比如百度開發(fā)的Apollo系統(tǒng)就是基于ROS做的。它在ROS上面引入了許多ROS2的概念。另外社區(qū)也有一個Autoware Foundation,主要的目標(biāo)就是開發(fā)基于ROS和ROS2的自動駕駛框架。
  Q3.ROS1節(jié)點之間的通訊需要master分發(fā)嗎?
  楊洪老師:我在前面介紹過一個ROS Master系統(tǒng),這個系統(tǒng)起到一個橋梁的溝通作用。但是,這并不意味著所有消息的分發(fā)、溝通一定要通過ROS Master去做。它的主要功能是使系統(tǒng)里所有的點,信息等在ROS Master系統(tǒng)里進(jìn)行注冊創(chuàng)建,使得系統(tǒng)在運行時,第三方模塊需要系統(tǒng)里的信息時,形成點對點的后續(xù)溝通。
  Q4.ROS2是否得到產(chǎn)品質(zhì)量,原有ROS1產(chǎn)品現(xiàn)在移植到ROS2是否合適?
  楊洪老師:產(chǎn)品的質(zhì)量包括很多方面,ROS2只是機(jī)器人開發(fā)中的一個環(huán)節(jié)。如果基于整個框架,質(zhì)量要涉及到底層硬件的開發(fā),產(chǎn)品操作系統(tǒng)本身的質(zhì)量優(yōu)化,以及框架和上層開發(fā)的軟件。如果要落實到具體的產(chǎn)品來講,是需要case by case的。另外,移植到ROS2的時機(jī)問題,我個人建議從長期產(chǎn)品規(guī)劃的角度來講,現(xiàn)在要開始考慮ROS2的遷移的規(guī)劃了。因為社區(qū)今后新的開發(fā)和版本發(fā)布都會主要圍繞ROS2進(jìn)行了。
  Q5.ROS2和OpenVINO的語言可用labview嗎?
  劉為志老師:目前我們還未試過,還不能說能夠支持。但Labview本身基于CAI設(shè)計,想在OpenVINO上的應(yīng)用不是很大。
  Q6.ROS1的OpenVINO功能包會有二進(jìn)制的發(fā)行版嗎?OpenVINO使用python3會在ROS Melodic這些python2的ROS版本中做適配嗎?
  劉為志老師:這是一個很好的問題。去年我們考慮過將OpenVINO的功能包發(fā)行二進(jìn)制版,但我們最后發(fā)現(xiàn)有以下幾個風(fēng)險:
  -OpenVINO本身需要依賴的OpenVINO Talk是一個完整的包
  -這么大的包如果進(jìn)行二進(jìn)制發(fā)布,可能會造成使用者或ROS社區(qū)發(fā)布流程的一些問題。
  目前ROS OpenVINO同時支持ROS和ROS2兩個版本,在對ROS Melodic版本的支持中,目前沒有計劃支持Python2的相關(guān)工作。
  Q7.OpenVINO是否加入了語義分割、實例分割的模型?語義分割每年都會有學(xué)者提出新的模型,如何利用OpenVINO使用新的模型得到分割結(jié)果?在得到場景理解的結(jié)果下,如何結(jié)合ros在移動機(jī)器人上實現(xiàn)高級別的任務(wù)?
  劉為志老師:提到分割的問題,這個在OpenVINO里是支持的,在OpenVINO里有2至3個模型是支持道路分割的。另外,關(guān)于場景的建設(shè),我認(rèn)為應(yīng)該有很多,比如行人過馬路,是需要道路分割的。
  Q8.如何利用OpenVINO去實現(xiàn)室內(nèi)場景的語義分割,構(gòu)建語義地圖?
  劉為志老師:實際上,就這個問題,我建議大家去看Intel Lab史雪松老師在B站上的分享。
  Q9.如果使用openvino,建議把openvino和ros放在一臺工控機(jī)上還是分開部署?
  劉獻(xiàn)容老師:我覺得這個問題取決于工作負(fù)載和使用的設(shè)備。我可以分享一個我們做實例所得到的結(jié)果。目前OpenVINO在工業(yè)環(huán)境下的負(fù)載主要有視覺的計算,對工業(yè)機(jī)器人的控制,以及對于運動規(guī)劃算法的計算。在實際中,我們將OpenVINO的視覺檢測和ROS機(jī)器放在同一臺機(jī)器上。但是如果增加運動規(guī)劃和避障,為了保證實時性以及安全性,可以考慮分開部署,選擇虛擬機(jī)或者多種架構(gòu)集成芯片。
  Q10.OpenVINO比Tensorflow Lite有什么優(yōu)勢,Tensorflow模型可以在OpenVINO運行嗎?
  劉獻(xiàn)容老師:首先,Tensorflow Lite我沒有具體操作過,只看過一些簡單的介紹,我覺得它們各自的優(yōu)化目標(biāo)和優(yōu)化目的其實是不一樣的。像OpenVINO更多的是把常用的深度學(xué)習(xí)框架都能支持其優(yōu)化,而Tensorflow Lite主要是把其自己的模型進(jìn)行一個優(yōu)化。他們的共同之處是,他們二者都希望能夠?qū)崿F(xiàn)跨平臺。



關(guān)鍵詞: ROS OpenVINO

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉