如何實(shí)現(xiàn)服務(wù)機(jī)器人的運(yùn)算與控制
20世紀(jì)以來隨著電子技術(shù)的不斷發(fā)展,以及人類對(duì)于自身的不斷了解,機(jī)器人的研究也在不斷的深入?,F(xiàn)階段能做出外表接近人類的機(jī)器人,走路接近人類的機(jī)器人……但這些都屬于很前沿的領(lǐng)域,研究門檻高,實(shí)際的商業(yè)用途不是很廣,所以大多還停留在樣品階段,走進(jìn)市場(chǎng)的很少。隨著互聯(lián)網(wǎng)和智能手機(jī)的大潮,嵌入式處理器正在完成以前臺(tái)式處理器做不到的事情,于是乎機(jī)器人現(xiàn)階段又被重新定義。在現(xiàn)在的消費(fèi)領(lǐng)域,某些配備智能處理器和具有互聯(lián)網(wǎng)功能的產(chǎn)品也被成為了機(jī)器人,下面列舉一些成熟產(chǎn)品的例子:
本文引用地址:http://m.butianyuan.cn/article/201808/384903.htm下圖是兩款國內(nèi)廠家生產(chǎn)的機(jī)器人的產(chǎn)品,屬于生活工具的類別,一般放置在家中,無法自行移動(dòng),采用嵌入式處理器,帶有攝像頭、無線網(wǎng)絡(luò)模塊、顯示模塊,可以連接手機(jī),通過手機(jī)APP端對(duì)機(jī)器人進(jìn)行相關(guān)設(shè)置,同時(shí)機(jī)器人攝像頭采集到的圖像也能實(shí)時(shí)傳給手機(jī),也可以和手機(jī)進(jìn)行語音對(duì)講。機(jī)器人也帶有語音識(shí)別模塊,如可以向它詢問“明天天氣如何”,他會(huì)從網(wǎng)絡(luò)獲取天氣信息然后回答你。這些放置在家中的機(jī)器人也可以實(shí)現(xiàn)安全監(jiān)測(cè)的功能,通過手機(jī)實(shí)時(shí)查看家中的監(jiān)控影像是一點(diǎn),也可以適配各種傳感器,比如貼在門窗后面的加速度傳感器,當(dāng)門窗被動(dòng)作時(shí)傳感器給機(jī)器人發(fā)出信號(hào),機(jī)器人隨即通過設(shè)定的方式進(jìn)行報(bào)警。
下圖是兩款國外生產(chǎn)的機(jī)器人,最主要的特點(diǎn)是可以運(yùn)動(dòng),屬于智能玩具的范疇。它們都是可以連接智能手機(jī),通過手機(jī)對(duì)機(jī)器人進(jìn)行設(shè)置,然后把手機(jī)當(dāng)做機(jī)器人的操作桿,操作機(jī)器人做出各種運(yùn)動(dòng),達(dá)到娛樂的目的,機(jī)器上裝有攝像頭,也可以在手機(jī)上同步看到機(jī)器人攝像頭拍攝到的視頻畫面。在玩法也有一些創(chuàng)新,如左邊的機(jī)器人在星戰(zhàn)電影里有原形,用手機(jī)的攝像頭對(duì)準(zhǔn)該機(jī)器人,通過手機(jī)端的AR技術(shù),在手機(jī)屏幕里可以給機(jī)器人加上各種效果,增加娛樂性。
還有一些具有特殊用途的機(jī)器人,比如掃地機(jī)器人,根據(jù)內(nèi)部的路徑算法清潔地面,同時(shí)能自動(dòng)避開障礙物,快沒電的時(shí)候能自動(dòng)返回充電樁充電。
以后服務(wù)機(jī)器人的趨勢(shì)會(huì)是以上列舉的這些機(jī)器人的集大成者,即在軟件智能和機(jī)械運(yùn)動(dòng)上不斷發(fā)展。軟件智能方面通過高性能的嵌入式處理器實(shí)現(xiàn)視頻處理、網(wǎng)絡(luò)連接和語音識(shí)別等技術(shù)。機(jī)械運(yùn)動(dòng)方面先搭配單片機(jī)和步進(jìn)電機(jī)通過輪子的滾動(dòng)實(shí)現(xiàn)移動(dòng),通過機(jī)械零件的增加和算法的改進(jìn),逐漸實(shí)現(xiàn)動(dòng)物甚至人體的肢體行走。下面的框圖列出了實(shí)現(xiàn)這樣的一個(gè)機(jī)器人需要采用的可能的技術(shù):
高性能嵌入式處理器上運(yùn)行著機(jī)器人的核心系統(tǒng)。攝像頭采集視頻圖像,會(huì)對(duì)圖像中的事物進(jìn)行一些簡單的判別,比如識(shí)別人臉,對(duì)靜態(tài)事物的圖像采集也能讓機(jī)器人辨別障礙物,或者計(jì)算出靜態(tài)事物的大致幾何圖形甚至尺寸,對(duì)動(dòng)態(tài)事物的圖像采集,機(jī)器人可以計(jì)算出動(dòng)態(tài)事物的運(yùn)動(dòng)軌跡甚至速度。4G和WIFIBT模塊屬于無線通信模塊,有了無線通信機(jī)器人才能得到自身之外的更多信號(hào),也可將自身的信息傳達(dá)給別人。語音識(shí)別模塊能讓機(jī)器人識(shí)別聲音,顯示觸摸屏只是機(jī)器人與外界交互的一種方式,GPS模塊能讓機(jī)器人知道自己的位置信息,存儲(chǔ)模塊除了存儲(chǔ)機(jī)器人的系統(tǒng)和各類軟件外,也讓機(jī)器人有了記憶功能,前面講的攝像頭采集視頻圖像并計(jì)算,計(jì)算的結(jié)果可以存儲(chǔ)在存儲(chǔ)模塊中,當(dāng)遇到類似的計(jì)算的時(shí)候就可以判別事物,同時(shí)通過網(wǎng)絡(luò)模塊可以將這類信息傳遞出去分享給更多的機(jī)器人。單片機(jī)管理著機(jī)器人各類基礎(chǔ)的模塊,步進(jìn)電機(jī)控制機(jī)器人的運(yùn)動(dòng),各類傳感器讓機(jī)器人有了感知外界環(huán)境的能力。紅外模塊可以實(shí)現(xiàn)對(duì)一些外部電器的操控,電池和電池管理模塊給整個(gè)機(jī)器人的運(yùn)轉(zhuǎn)提供能量。
硬件結(jié)構(gòu)是實(shí)現(xiàn)服務(wù)機(jī)器人運(yùn)算和控制的基礎(chǔ),在高性能嵌入式處理器上運(yùn)行的操作系統(tǒng),進(jìn)行著服務(wù)機(jī)器人具體的運(yùn)算和控制,相當(dāng)于機(jī)器人的靈魂,目前主流的三大機(jī)器人操作系統(tǒng)有Ubuntu,Android和ROS,Android軟件平臺(tái)使用較廣泛,ROS為專用的機(jī)器人的軟件平臺(tái)。要實(shí)現(xiàn)對(duì)服務(wù)機(jī)器人的運(yùn)算和控制,軟件平臺(tái)需要解決以下這些問題:
1, 分布式計(jì)算 現(xiàn)代機(jī)器人系統(tǒng)往往需要多個(gè)計(jì)算機(jī)同時(shí)運(yùn)行多個(gè)進(jìn)程,當(dāng)多個(gè)機(jī)器人需要協(xié)同完成一個(gè)任務(wù)時(shí),往往需要互相通信來支撐任務(wù)的完成;
用戶通常通過臺(tái)式機(jī)、筆記本或者移動(dòng)設(shè)備發(fā)送指令控制機(jī)器人,這種人機(jī)交互接口可以認(rèn)為是機(jī)器人軟件的一部分。
2, 軟件復(fù)用 隨著機(jī)器人研究的快速推進(jìn),誕生了一批應(yīng)對(duì)導(dǎo)航、路徑規(guī)劃、建圖等通用任務(wù)的算法。當(dāng)然,任何一個(gè)算法實(shí)用的前提是其能夠應(yīng)用于新的領(lǐng)域,且不必重復(fù)實(shí)現(xiàn)。
3, 快速測(cè)試 為機(jī)器人開發(fā)軟件比其他軟件開發(fā)更具挑戰(zhàn)性,主要是因?yàn)檎{(diào)試準(zhǔn)備時(shí)間長,且調(diào)試過程復(fù)雜。況且,因?yàn)橛布S修、經(jīng)費(fèi)有限等因素,不一定隨時(shí)有機(jī)器人可供使用。
ROS作為機(jī)器人專用的軟件平臺(tái),可在ARM搭配Ubuntu的環(huán)境下運(yùn)行,對(duì)服務(wù)機(jī)器人的運(yùn)算和控制有著很多優(yōu)化和實(shí)用性,ROS軟件平臺(tái)有以下的優(yōu)點(diǎn):
(1)點(diǎn)對(duì)點(diǎn)設(shè)計(jì)
一個(gè)使用ROS的系統(tǒng)包括一系列進(jìn)程,這些進(jìn)程存在于多個(gè)不同的主機(jī)并且在運(yùn)行過程中通過端對(duì)端的拓?fù)浣Y(jié)構(gòu)進(jìn)行聯(lián)系。雖然基于中心服務(wù)器的那些軟件框架也可以實(shí)現(xiàn)多進(jìn)程和多主機(jī)的優(yōu)勢(shì),但是在這些框架中,當(dāng)各電腦通過不同的網(wǎng)絡(luò)進(jìn)行連接時(shí),中心數(shù)據(jù)服務(wù)器就會(huì)發(fā)生問題。
ROS的點(diǎn)對(duì)點(diǎn)設(shè)計(jì)以及服務(wù)和節(jié)點(diǎn)管理器等機(jī)制可以分散由計(jì)算機(jī)視覺和語音識(shí)別等功能帶來的實(shí)時(shí)計(jì)算壓力,能夠適應(yīng)多機(jī)器人遇到的挑戰(zhàn)。
(2)多語言支持
在寫代碼的時(shí)候,許多編程者會(huì)比較偏向某一些編程語言。這些偏好是個(gè)人在每種語言的編程時(shí)間、調(diào)試效果、語法、執(zhí)行效率以及各種技術(shù)和文化的原因?qū)е碌慕Y(jié)果。為了解決這些問題,我們將ROS設(shè)計(jì)成了語言中立性的框架結(jié)構(gòu)。ROS現(xiàn)在支持許多種不同的語言,例如C++、Python、Octave和LISP,也包含其他語言的多種接口實(shí)現(xiàn)。
(3)精簡與集成
大多數(shù)已經(jīng)存在的機(jī)器人軟件工程都包含了可以在工程外重復(fù)使用的驅(qū)動(dòng)和算法,不幸的是,由于多方面的原因,大部分代碼的中間層都過于混亂,以至于很困難提取出它的功能,也很難把它們從原型中提取出來應(yīng)用到其他方面。
為了應(yīng)對(duì)這種趨勢(shì),我們鼓勵(lì)將所有的驅(qū)動(dòng)和算法逐漸發(fā)展成為和ROS沒有依賴性單獨(dú)的庫。ROS建立的系統(tǒng)具有模塊化的特點(diǎn),各模塊中的代碼可以單獨(dú)編譯,而且編譯使用的CMake工具使它很容易的就實(shí)現(xiàn)精簡的理念。ROS基本將復(fù)雜的代碼封裝在庫里,只是創(chuàng)建了一些小的應(yīng)用程序?yàn)镽OS顯示庫的功能,就允許了對(duì)簡單的代碼超越原型進(jìn)行移植和重新使用。作為一種新加入的有優(yōu)勢(shì),單元測(cè)試當(dāng)代碼在庫中分散后也變得非常的容易,一個(gè)單獨(dú)的測(cè)試程序可以測(cè)試庫中很多的特點(diǎn)。
(4)工具包豐富
為了管理復(fù)雜的ROS軟件框架,利用了大量的小工具去編譯和運(yùn)行多種多樣的ROS組建,從而設(shè)計(jì)成了內(nèi)核,而不是構(gòu)建一個(gè)龐大的開發(fā)和運(yùn)行環(huán)境。
(5)免費(fèi)并且開源
ROS所有的源代碼都是公開發(fā)布的。我們相信這將必定促進(jìn)ROS軟件各層次的調(diào)試,不斷的改正錯(cuò)誤。雖然像Microsoft Robotics Studio和Webots這樣的非開源軟件也有很多值得贊美的屬性,但是我們認(rèn)為一個(gè)開源的平臺(tái)也是無可為替代的。當(dāng)硬件和各層次的軟件同時(shí)設(shè)計(jì)和調(diào)試的時(shí)候這一點(diǎn)是尤其真實(shí)的。
現(xiàn)階段高性能嵌入式處理器在手機(jī)平板電腦上運(yùn)用較多,但這類處理器由于向著手機(jī)的行業(yè)方向發(fā)展,接口方面比較傳統(tǒng)和固定,很難滿足機(jī)器人的設(shè)計(jì)需求。工業(yè)方向的高性能嵌入式處理器不算多,飛思卡爾的imx系列可以算一個(gè)不錯(cuò)的平臺(tái),主要是接口豐富,可定制化的形態(tài)較多,滿足機(jī)器人多元化接口的需求。同時(shí)imx系列對(duì)Ubuntu,Android這兩大操作系統(tǒng)的支持良好,系統(tǒng)在該平臺(tái)上運(yùn)行穩(wěn)定,通過Ubuntu可以支持ROS軟件平臺(tái),ROS軟件平臺(tái)的優(yōu)點(diǎn)能很好的解決掉上述機(jī)器人軟件開發(fā)的一些問題。辰漢電子作為專攻飛思卡爾imx平臺(tái)設(shè)計(jì)研發(fā)的上市公司,在對(duì)平臺(tái)定制方面有著多年的經(jīng)驗(yàn)和成功案例,在工業(yè)機(jī)器人市場(chǎng)有著穩(wěn)定出貨的產(chǎn)品,公司也在服務(wù)機(jī)器人市場(chǎng)有著務(wù)實(shí)的準(zhǔn)備。
評(píng)論