<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 為什么我選擇并且推崇用ROS開(kāi)發(fā)機(jī)器人?

          為什么我選擇并且推崇用ROS開(kāi)發(fā)機(jī)器人?

          作者: 時(shí)間:2018-07-25 來(lái)源:網(wǎng)絡(luò) 收藏

          如果我們現(xiàn)在想研發(fā)一款,應(yīng)該選擇哪一個(gè)操作系統(tǒng)呢?其實(shí)我們大家平常接觸到的操作系統(tǒng)寥寥無(wú)幾,Windows,MacOS,Linux,iOS,Andoird。雖然全名是Robot Operating System,但本質(zhì)上不是操作系統(tǒng),是Linux發(fā)行版Ubuntu下的一個(gè)用來(lái)的Middleware,這個(gè)沒(méi)有什么好辯駁的。Android雖然意思是人形,但是我覺(jué)得這就只是名字而已,Andy Rubin難道真的是想通過(guò)智能手機(jī)探秘智能機(jī)器人?而且機(jī)器人學(xué)里的人形機(jī)器人一般寫成Humanoid。為了規(guī)避因“操作系統(tǒng)”產(chǎn)生的歧義,本文中我們討論研發(fā)一款機(jī)器人需要怎樣的“環(huán)境配置”?所以很多概念沒(méi)有區(qū)分是否稱得上操作系統(tǒng)。

          本文引用地址:http://www.ex-cimer.com/article/201807/383852.htm

          選擇怎樣的環(huán)境配置,有幾點(diǎn)是我們先要搞清楚的。首先我們需要知道實(shí)時(shí)性是不是必須的。簡(jiǎn)單的說(shuō),如果在系統(tǒng)中是關(guān)鍵變量,系統(tǒng)就需要實(shí)時(shí),例如雙足機(jī)器人動(dòng)態(tài)行走系統(tǒng)就必須實(shí)時(shí),但是靜態(tài)行走的話其實(shí)不實(shí)時(shí)也可以。如果實(shí)時(shí)性是必須的,我們可以選擇Windows + VxWorks,這是在傳統(tǒng)運(yùn)動(dòng)控制領(lǐng)域非常常見(jiàn)的一個(gè)組合。也可以選擇QNX操作系統(tǒng),或者LabView,不過(guò)這兩個(gè)實(shí)時(shí)的我并沒(méi)有很多經(jīng)驗(yàn)。我最早接觸的實(shí)時(shí)操作系統(tǒng)是Windows + Ardence RTX,后來(lái)應(yīng)該改名為IntervalZero。還有就是是否系統(tǒng)需要整體上實(shí)時(shí)?我們?cè)谧鲭p足機(jī)器人的時(shí)候,運(yùn)動(dòng)控制就用到了RTX,但是圖像處理并沒(méi)有。后來(lái)我們將運(yùn)動(dòng)控制的部分移到了一個(gè)ARM7的下位機(jī),上位機(jī)的Windows只需要發(fā)送action的指令。所以,即便是需要實(shí)時(shí),架構(gòu)也是很靈活的。上位機(jī)是沒(méi)有實(shí)時(shí)性的強(qiáng)需求的。

          當(dāng)我們希望稍微提高一下機(jī)器人復(fù)雜度的時(shí)候,就會(huì)發(fā)現(xiàn)另一個(gè)需要考慮的問(wèn)題,進(jìn)程間通信。在我們用Windows + RTX的時(shí)候,進(jìn)程間通信使用RTX提供的shared memory,不過(guò)都是比較慢的圖像處理進(jìn)程向shared memory中寫數(shù)據(jù),決策和運(yùn)動(dòng)控制進(jìn)程讀數(shù)據(jù)。shared memory顯然并不是很好的通信方式,這里不再多加討論。則使用了一個(gè)很好的通信架構(gòu),并且是整個(gè)框架的一個(gè)基礎(chǔ)(不論是對(duì)于ROS中的topic,service,plugin,actionlib等基礎(chǔ)概念還是rviz,navigation package等功能包。想了解這些概念最近多關(guān)注下@Top Liu),所以很多人簡(jiǎn)單的理解ROS只不過(guò)是做了一個(gè)通信的架構(gòu)而已。我必須說(shuō)明下,進(jìn)程間通信并不是ROS能夠占領(lǐng)機(jī)器人環(huán)境的主要原因。在2010年,我們一款類似Atlas的大型人形軍用機(jī)器人的時(shí)候,就用到了進(jìn)程間通信工具IPC。IPC就是Inter ProCESs Communication,開(kāi)發(fā)者是CMU的Reid Simmons,應(yīng)該是出現(xiàn)在2000年左右。后來(lái)我在幫助本科生參加RoboCup Standard Platform League的時(shí)候用過(guò)Nao的操作系統(tǒng)NAOqi,這個(gè)系統(tǒng)大概是出現(xiàn)在2006年。在NAOqi中,整個(gè)通信的架構(gòu)和ROS非常像了,ROS中的Node在NAOqi中叫一個(gè)broker,都是占用一個(gè)系統(tǒng)的端口。所以,2010年ROS正式發(fā)布Box turtle的時(shí)候,通信架構(gòu)并不是顛覆性的。Android的進(jìn)程間通信的機(jī)制據(jù)我了解也是非常強(qiáng)悍的。根據(jù)@邵天蘭 之前的一次講座,我也了解到ROS的通信機(jī)制放到現(xiàn)在看其實(shí)已經(jīng)有點(diǎn)過(guò)時(shí)了。所以僅僅從通信機(jī)制上評(píng)價(jià)ROS,意義不大。再有,ROS中的通信機(jī)制并不是說(shuō)不能繞過(guò),其程序本質(zhì)上還是C++和Python。

          我認(rèn)為ROS最大的貢獻(xiàn)就是制定了機(jī)器人開(kāi)發(fā)的統(tǒng)一接口標(biāo)準(zhǔn)。因?yàn)閃illow Garage當(dāng)年是做移動(dòng)服務(wù)機(jī)器人,所以這些標(biāo)準(zhǔn)是首先在移動(dòng)機(jī)器人界統(tǒng)一的。所以ROS的意義,我概括的時(shí)候就是六個(gè)字,“書(shū)同文,車同軌”,極大加速了交流與進(jìn)步。也是因?yàn)檫@樣,機(jī)器人學(xué)界才慢慢能夠形成一些BenchMarking,能夠在開(kāi)源社區(qū)形成百花齊放的態(tài)勢(shì),能夠讓大家不再深陷于又要搭建硬件又要搭建軟件的重復(fù)造輪子的困境。其實(shí)最主要就是ROS的message,看起來(lái)不過(guò)是一些頭文件,但是可以讓我們輕松的替換各種傳感器和執(zhí)行機(jī)構(gòu),替換軟件中的各個(gè)算法,現(xiàn)在搭建機(jī)器人在我們眼中,就像玩樂(lè)高積木,組裝一臺(tái)電腦。

          當(dāng)然,作為一個(gè)開(kāi)發(fā)工具,只做到這里是不夠的。我看過(guò)LabView的開(kāi)發(fā)工具,支持硬件很多,應(yīng)該標(biāo)準(zhǔn)也很好。Microsoft Robotics Developer Studio是個(gè)不錯(cuò)的開(kāi)發(fā)工具,可惜掛掉了,也算是流行了一段時(shí)間。針對(duì)機(jī)器人開(kāi)發(fā),ROS則提供了很好的可視化、模擬仿真和Debug的工具,專業(yè)上講是非常developer friendly,這也是很多人說(shuō)為什么ROS適合學(xué)習(xí)和做研發(fā)的原因。不過(guò)我覺(jué)得這不能支持ROS不適合做產(chǎn)品開(kāi)發(fā)的觀點(diǎn),因?yàn)楫a(chǎn)品成型后,這些調(diào)試工具平時(shí)都是可以去掉的。關(guān)于可視化工具Rviz,模擬仿真的Gazebo,Debug的log等級(jí)以及在線調(diào)參的rosparam和rqt等等,ROS星火計(jì)劃都有詳細(xì)的講解。

          最后,就要說(shuō)說(shuō)基因,社區(qū),支持和人才的問(wèn)題。ROS的基因是移動(dòng)式服務(wù)機(jī)器人,LabView的基因是NI,Android的基因是Google和智能手機(jī)。ROS社區(qū)還算是活躍,雖然機(jī)器人的高端玩家比較多,但是整體開(kāi)發(fā)者數(shù)量估計(jì)也就在十萬(wàn)的量級(jí)(ROS answer注冊(cè)用戶也就三萬(wàn)吧),總量不能和如日中天的Android相比,也是現(xiàn)在背后支持OSRF和google的差距。我也在不同場(chǎng)合聊過(guò)很多次,硅谷的機(jī)器人創(chuàng)業(yè)公司基于ROS開(kāi)發(fā)的比較多(相對(duì)國(guó)內(nèi)而言,具體比例不清楚,從RosCon的支持廠商就能看到一些端倪),但是國(guó)內(nèi)用Android的公司明顯在數(shù)量上占據(jù)上風(fēng) 。

          所以最后要支持本文論點(diǎn)了。不討論工業(yè)機(jī)器人(以及類工業(yè)機(jī)器人的醫(yī)療機(jī)器人等,以控制為核心),我們把剩下的機(jī)器人品類再劃分的細(xì)致一些。首先,教育機(jī)器人(這里指學(xué)習(xí)機(jī)器人的套件等,不是說(shuō)用來(lái)學(xué)習(xí)英文或者唐詩(shī)的對(duì)話機(jī)器人,這個(gè)歸屬到情感陪護(hù)類),主要面向k-12的學(xué)生,也就是我國(guó)高等教育之前的學(xué)生,大多就是scratch+單片機(jī),不需要什么系統(tǒng)。不過(guò)我覺(jué)得這種情況會(huì)在未來(lái)不久發(fā)生改變,主要是教育機(jī)器人業(yè)內(nèi)已經(jīng)有人發(fā)現(xiàn)機(jī)器人教育和機(jī)器人開(kāi)發(fā)的脫節(jié)是個(gè)問(wèn)題,那么也就是個(gè)商機(jī),但是要等到產(chǎn)業(yè)足夠大。玩具類機(jī)器人不需要開(kāi)發(fā)環(huán)境,所以就是玩各種單片機(jī)。這些都不是支撐機(jī)器人能成為一項(xiàng)顛覆性技術(shù)的方向。所以以下主要分析用Android和ROS開(kāi)發(fā)的機(jī)器人。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: ROS 開(kāi)發(fā) 機(jī)器人

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();