移動(dòng)機(jī)器人認(rèn)知
移動(dòng)機(jī)器人到底是由哪些部分組成的呢,接下來我們就一起認(rèn)識(shí)一下它。
我們先來看一款我們后續(xù)內(nèi)容將要頻繁提到的移動(dòng)機(jī)器人——LIMO。LIMO來自松靈機(jī)器人,是全球首款集四種運(yùn)動(dòng)模態(tài)于一體的ROS開發(fā)平臺(tái),能夠?qū)崿F(xiàn)四輪差速、阿克曼、履帶、麥克納姆輪四種運(yùn)動(dòng)模式,最大程度支持我們的機(jī)器人創(chuàng)意設(shè)計(jì)。LIMO采用Jetson Nano作為主控系統(tǒng),ROS作為核心軟件環(huán)境,支持SLAM、自主導(dǎo)航、圖像識(shí)別等多種應(yīng)用,同時(shí)還配套有專業(yè)的模擬沙盤。
接下來我們就以LIMO為示例平臺(tái),開啟移動(dòng)機(jī)器人的認(rèn)知學(xué)習(xí)。本篇內(nèi)容共分為兩個(gè)小節(jié),主要帶領(lǐng)大家了解移動(dòng)機(jī)器人的定義與組成結(jié)構(gòu),并以LIMO機(jī)器人為例,介紹移動(dòng)機(jī)器人的操作方法和運(yùn)動(dòng)模態(tài),幫助大家建立對移動(dòng)機(jī)器人的整體認(rèn)知。
1.2.1機(jī)器人的定義與組成
機(jī)器人的定義
○誕生:1920年捷克斯洛伐克作家卡雷爾恰佩克在他的科幻小說《羅薩姆的機(jī)器人萬能公司》中,根據(jù)Robota(捷克文,原意為“勞役、苦工”)和Robotnik(波蘭文,原意為“工人”),創(chuàng)造出“機(jī)器人”這個(gè)詞。
○百度百科:機(jī)器人(Robot)是自動(dòng)執(zhí)行工作的機(jī)器裝置。它既可以接受人類指揮,又可以運(yùn)行預(yù)先編排的程序,也可以根據(jù)以人工智能技術(shù)制定的原則綱領(lǐng)行動(dòng)。它的任務(wù)是協(xié)助或取代人類工作,例如生產(chǎn)業(yè)、建筑業(yè),或是危險(xiǎn)的工作。
○美國機(jī)器人協(xié)會(huì)(RIA):機(jī)器人是用以搬運(yùn)材料、零件、工具的可編程序的多功能操作器或是通過可改變程序動(dòng)作來完成各種作業(yè)的特殊機(jī)械裝置。
機(jī)器人的四大組成部分
從控制的角度來講,機(jī)器人可以劃分為圖中四大組成部分,分別是:傳感系統(tǒng)、執(zhí)行機(jī)構(gòu)、驅(qū)動(dòng)系統(tǒng)和控制系統(tǒng)。
圖2-3 機(jī)器人四大組成部分
機(jī)器人的四大組成部分相互依賴,互相連接,組成了一個(gè)完整的機(jī)器人控制回路。
圖2-4 機(jī)器人的控制回路
如果把機(jī)器人比作一個(gè)人的話,執(zhí)行機(jī)構(gòu)就是人體的手和腳,完成具體動(dòng)作的執(zhí)行,同時(shí)也會(huì)和外部環(huán)境產(chǎn)生關(guān)系。
驅(qū)動(dòng)系統(tǒng)類似人體的肌肉和骨骼,為身體提供源源不斷的動(dòng)力。
傳感系統(tǒng)是人體的感官和神經(jīng),完成內(nèi)部與外部的信息采集,并且反饋給大腦做處理。
控制系統(tǒng)就是大腦,實(shí)現(xiàn)各種任務(wù)和信息的處理,下發(fā)控制命令。
隨著機(jī)器人軟硬件的日新月異,這四大組成部分也在不斷進(jìn)化和優(yōu)化,共同推進(jìn)著機(jī)器人向智能化邁進(jìn)。
?執(zhí)行機(jī)構(gòu):人體的手和腳,完成具體動(dòng)作的執(zhí)行。
?驅(qū)動(dòng)系統(tǒng):人體的肌肉和骨骼,是整個(gè)身體運(yùn)動(dòng)的動(dòng)力來源。
?傳感系統(tǒng):人體的感官和神經(jīng),主要完成信號的輸入和反饋,包括內(nèi)部傳感系統(tǒng)和外部傳感系統(tǒng)。
?控制系統(tǒng):人體的大腦,實(shí)現(xiàn)任務(wù)及信息的處理,輸出控制命令信號。
接下來我們以LIMO機(jī)器人為例,具體看下在這樣一個(gè)典型的移動(dòng)機(jī)器人中,這四大組成部分是如何配合工作的。
圖2-5 LIMO機(jī)器人
如圖2-5是LIMO的外觀,第一眼看上去是一款設(shè)計(jì)非常精美的小車,在以Jetson Nano為核心的控制器上,裝備了多種傳感器和執(zhí)行器,能夠完成自主導(dǎo)航、圖像識(shí)別、路徑跟蹤等多種功能。
那LIMO的執(zhí)行器是什么呢?沒錯(cuò)就是底盤上的四個(gè)電機(jī)以及連接的四個(gè)輪子。
LIMO使用的是輪轂電機(jī),也就是電機(jī)的定子和轉(zhuǎn)子都集成在了輪子內(nèi)部,節(jié)省了一般小車中電機(jī)需要占據(jù)的空間,而且加減速控制性能也更加突出。
不僅如此,LIMO的底盤還設(shè)置了特殊傳動(dòng)裝置的切換開關(guān),比如我們可以通過四個(gè)輪子單獨(dú)的旋轉(zhuǎn)運(yùn)動(dòng),實(shí)現(xiàn)小車前進(jìn)后退轉(zhuǎn)彎,如果想要模擬真實(shí)汽車的阿克曼運(yùn)動(dòng)方式,直接拔起前邊兩個(gè)紅色插銷,就可以實(shí)現(xiàn)類似這樣的阿克曼運(yùn)動(dòng)方式,通過前輪的平行轉(zhuǎn)向?qū)崿F(xiàn)小車的轉(zhuǎn)彎。如果是在室外,可以把輪胎更換為履帶,實(shí)現(xiàn)更好的越野性能,如果想要讓小車像螃蟹一樣橫著走,還可以使用麥克納姆輪來做全向運(yùn)動(dòng)。所以在一輛LIMO小車上,我們可以動(dòng)態(tài)切換四種運(yùn)動(dòng)模式,這都是依賴小車本身執(zhí)行機(jī)構(gòu)的特殊設(shè)計(jì)實(shí)現(xiàn)的。
圖2-6 四種運(yùn)動(dòng)模態(tài)
為了驅(qū)動(dòng)LIMO四種運(yùn)動(dòng)模態(tài)以及裝備的多種傳感器,驅(qū)動(dòng)系統(tǒng)功不可沒。
圖2-7 驅(qū)動(dòng)系統(tǒng)板
如圖2-7所示,這塊驅(qū)動(dòng)板卡安裝在LIMO的底盤之中,通過豐富的接口連接到小車的各種設(shè)備之上。這塊板卡以MCU為核心,也就是我們常說的嵌入式系統(tǒng)或者單片機(jī),我們寫的驅(qū)動(dòng)程序運(yùn)行在其中,再通過一級一級的信號轉(zhuǎn)換,通過接插件與外界產(chǎn)生聯(lián)系。
里程計(jì)
小車為了檢測自身與外部信息,傳感器系統(tǒng)必不可少。我們先來看一個(gè)LIMO機(jī)器人的內(nèi)部傳感器,也是移動(dòng)機(jī)器人普遍使用的傳感器——里程計(jì)。
類似于汽車記錄行駛公里數(shù)的碼表,可以通過輪子的旋轉(zhuǎn)圈數(shù)記錄里程,機(jī)器人一般也會(huì)在輪子或者電機(jī)上安裝一個(gè)傳感器,通過檢測輪子的旋轉(zhuǎn)速度,再對時(shí)間積分,得到機(jī)器人的實(shí)時(shí)位置和速度,這項(xiàng)功能所使用的設(shè)備就叫做里程計(jì),而實(shí)現(xiàn)這種功能的設(shè)備也并不是唯一的。
比如大家在某些小車上,會(huì)看到電機(jī)旁邊安裝有一個(gè)碼盤,上邊有不少開縫,電機(jī)旋轉(zhuǎn)帶動(dòng)碼盤旋轉(zhuǎn),光電管發(fā)射的光線就會(huì)以某種頻率穿過縫隙,被接收端采集到,通過這個(gè)采樣頻率我們就可以計(jì)算得到電機(jī)的旋轉(zhuǎn)速度,從而得到機(jī)器人走了多遠(yuǎn)、旋轉(zhuǎn)了多少度等自身狀態(tài)信息。
LIMO采用的里程計(jì)是另外一種,叫做霍爾傳感器。如圖2-8所示,這是一個(gè)輪轂電機(jī),里邊有電機(jī)的線圈,這個(gè)綠色的電路板就是一個(gè)霍爾傳感器,當(dāng)電機(jī)旋轉(zhuǎn)時(shí),霍爾傳感器跟隨運(yùn)動(dòng),通過感應(yīng)周邊磁場產(chǎn)生的信號,也可以測量出電機(jī)的旋轉(zhuǎn)速度,繼而得到機(jī)器人的狀態(tài)信息。
圖2-8 霍爾傳感器
無論是光電碼盤還是霍爾傳感器,都是根據(jù)采樣單位時(shí)間內(nèi)產(chǎn)生的脈沖數(shù)計(jì)算出輪子旋轉(zhuǎn)的圈數(shù),再通過輪子的周長計(jì)算出機(jī)器人的運(yùn)動(dòng)速度,速度對時(shí)間積分后,就得到里程信息啦,這就是里程計(jì)的基本原理。
不過里程計(jì)也有一個(gè)問題,那就是每次測量會(huì)有誤差,不斷積分后,誤差必然會(huì)被放大,也就是我們常說的里程計(jì)累積誤差,這個(gè)問題我們在后續(xù)的內(nèi)容中,會(huì)給大家介紹解決辦法。
機(jī)器人里程計(jì)測距原理:
?根據(jù)單位時(shí)間內(nèi)產(chǎn)生的脈沖數(shù)計(jì)算電機(jī)/輪子的旋轉(zhuǎn)圈數(shù)
?根據(jù)輪子的周長計(jì)算機(jī)器人的運(yùn)動(dòng)速度
?根據(jù)機(jī)器人的運(yùn)動(dòng)速度積分計(jì)算里程
外部傳感器
有了機(jī)器人自身的狀態(tài)信息,外部環(huán)境信息該如何獲取呢?LIMO裝備了兩個(gè)重要的外部傳感器。
一個(gè)是三維相機(jī),類似于人眼一樣,三維相機(jī)不僅可以看到外部環(huán)境的顏色信息,還可以獲取每一個(gè)障礙物距離自身的深度信息,原理和人眼的雙目定位不同,三維相機(jī)有三個(gè)“眼睛” ,其中一個(gè)“眼睛”是普通的攝像頭,用于獲取一幅圖像的顏色信息,另外兩個(gè)眼睛,一個(gè)負(fù)責(zé)發(fā)射紅外光,不是一個(gè)點(diǎn),而是一個(gè)面,還有一個(gè)負(fù)責(zé)接收反射回來的紅外光,這一去一回,就拿到了一幅深度圖像,有了彩色圖像和深度圖像,接下來把兩個(gè)圖像重疊到一起,就可以知道每個(gè)像素點(diǎn)的顏色和深度信息,這就是配準(zhǔn)的過程。通過這一系列復(fù)雜的采集和配準(zhǔn)過程,最終我們就拿到了完整的環(huán)境信息,我們把它叫做三維點(diǎn)云,每一個(gè)點(diǎn)都是由RGB顏色值和XYZ坐標(biāo)值組成。未來的三維建圖、物體識(shí)別,都依賴于這些信息。
圖2-9 三維相機(jī)
三維相機(jī)雖然信息豐富,但是檢測角度和精度都有限,所以移動(dòng)機(jī)器人一般都會(huì)配置一臺(tái)激光雷達(dá),激光雷達(dá)的原理相對簡單,一個(gè)激光頭發(fā)射激光,另外一個(gè)接收頭接收反射光,然后通過光的飛行時(shí)間就可以測距了,如圖2-10所示,這里還有一個(gè)電機(jī),帶動(dòng)發(fā)射和接收頭勻速旋轉(zhuǎn),這一邊轉(zhuǎn)一邊檢測,就可以得到360度范圍內(nèi)很多個(gè)點(diǎn)的距離,從而我們就拿到了在雷達(dá)所在平面中的障礙物深度信息,未來的SLAM地圖構(gòu)建和自主導(dǎo)航,都建立在這個(gè)數(shù)據(jù)的基礎(chǔ)之上。
圖2-10 激光雷達(dá)
以上我們看到的驅(qū)動(dòng)系統(tǒng)、傳感系統(tǒng),最終都會(huì)連接到控制系統(tǒng),也就是Jetson Nano控制板卡。這塊板卡的核心集成了一個(gè)四核的CPU,可以滿足一些基礎(chǔ)軟件的運(yùn)行,同時(shí)還有一個(gè)128核的GPU,基本的圖像處理和機(jī)器學(xué)習(xí)也不在話下。為了方便操作,LIMO后部還有一個(gè)觸摸屏幕,即使沒有筆記本電腦,我們一樣可以控制機(jī)器人。
圖2-11 Jetson Nano控制板卡
從屏幕中我們可以看到,主控板上運(yùn)行的是以Linux為核心的Ubuntu系統(tǒng),未來我們需要進(jìn)一步開發(fā)的機(jī)器人應(yīng)用,都會(huì)從以這個(gè)系統(tǒng)為平臺(tái)展開,這也是我們后續(xù)操作的核心,后續(xù)的內(nèi)容會(huì)重點(diǎn)講解,這里大家先明確LIMO機(jī)器人的四大組成部分別是什么即可。
我們再通過圖2-13來明確LIMO機(jī)器人中控制板卡與外接設(shè)備之間的聯(lián)系。
圖2-13 控制板卡與外接設(shè)備之間的聯(lián)系
運(yùn)動(dòng)控制器作為驅(qū)動(dòng)系統(tǒng)的核心,負(fù)責(zé)控制電機(jī)和舵機(jī),其中電機(jī)是驅(qū)動(dòng)小車運(yùn)動(dòng)的,舵機(jī)是在阿克曼模式下驅(qū)動(dòng)前輪轉(zhuǎn)向的;另外還需要連接內(nèi)部傳感器里程計(jì)和IMU,完成對機(jī)器人自身狀態(tài)的檢測。
機(jī)器人控制系統(tǒng)是LIMO的大腦,運(yùn)行之后我們會(huì)學(xué)習(xí)的自主導(dǎo)航、地圖構(gòu)建、圖像識(shí)別等功能,同時(shí)也會(huì)兼具一小部分傳感器驅(qū)動(dòng)的任務(wù),通過USB采集外部相機(jī)和雷達(dá)的信息。這個(gè)控制系統(tǒng)大腦和運(yùn)動(dòng)控制器之間的通訊連接,是通過串口來完成的。
為了方便機(jī)器人的操控,未來我們還會(huì)在機(jī)器人之外,使用我們自己的筆記本連接機(jī)器人進(jìn)行編碼和控制。
在整個(gè)這個(gè)大框架中,虛線框中的應(yīng)用功能都是基于ROS環(huán)境進(jìn)行開發(fā)實(shí)現(xiàn),運(yùn)動(dòng)控制器中的功能是基于嵌入式開發(fā)來實(shí)現(xiàn),從這張圖中,大家也可以更好的理解ROS開發(fā)與嵌入式開發(fā)的關(guān)系,兩者各司其職,一個(gè)偏向于上層應(yīng)用,另一個(gè)偏向于底層控制,共同實(shí)現(xiàn)機(jī)器人的智能化功能。
1.2.2移動(dòng)機(jī)器人操作方法
系統(tǒng)啟動(dòng)
以上我們在機(jī)器人靜態(tài)情況下分析了四大組成部分的設(shè)備和原理,接下來我們就讓機(jī)器人動(dòng)起來,一起來認(rèn)識(shí)下移動(dòng)機(jī)器人的運(yùn)動(dòng)模式和傳感器數(shù)據(jù)。
首先我們要啟動(dòng)LIMO機(jī)器人。按下機(jī)器人一側(cè)的電源開關(guān),進(jìn)入啟動(dòng)過程,稍后可以看到開關(guān)周邊的綠燈亮起,此時(shí)正在啟動(dòng);當(dāng)機(jī)器人后側(cè)的屏幕顯示桌面環(huán)境時(shí),說明啟動(dòng)成功。
長按開關(guān),啟動(dòng)機(jī)器人
上電成功,開關(guān)亮綠燈
啟動(dòng)成功,屏幕顯示桌面
在使用過程中請及時(shí)關(guān)注電量指示燈,當(dāng)電量低時(shí),電源指示燈會(huì)閃紅色并蜂鳴報(bào)警,就需要及時(shí)充電。
電量過低,紅色指示燈閃爍,請及時(shí)充電
接下來我們打開LIMO機(jī)器人的手機(jī)App,掃描并且連接對應(yīng)的藍(lán)牙。
接下來就可以使用手機(jī)App控制機(jī)器人運(yùn)動(dòng)了,左邊控制桿可以控制LIMO前進(jìn)后退,右邊控制桿是控制LIMO左轉(zhuǎn)右轉(zhuǎn),中間進(jìn)度條顯示當(dāng)前的實(shí)時(shí)速度。
如果我們切換了機(jī)器人的運(yùn)動(dòng)模態(tài),在手機(jī)App中,也需要選擇上邊對應(yīng)的控制方式,比如阿克曼運(yùn)動(dòng)、四輪差速運(yùn)動(dòng)、麥克納姆全向運(yùn)動(dòng)。
?ackerMann:需要手動(dòng)將LIMO小車切換阿克曼模式,主要用于校準(zhǔn)零點(diǎn)、控制前進(jìn)后退以及轉(zhuǎn)動(dòng)角度;
?Mailun:需要手動(dòng)將LIMO小車切換麥輪模式,主要控制前進(jìn)后退、轉(zhuǎn)換方向以及原地旋轉(zhuǎn)。
遙控運(yùn)動(dòng)
接下來我們一起來試一下差速運(yùn)動(dòng)。確認(rèn)下機(jī)器人兩端的插銷都處于插入狀態(tài),車輪使用的是普通橡膠輪胎,前邊的車燈顯示為橙色。然后在手機(jī)App上選擇差速模式,然后就可以通過兩個(gè)模擬搖桿控制機(jī)器人運(yùn)動(dòng)了,左邊控制前進(jìn)后退、右邊控制左轉(zhuǎn)右轉(zhuǎn),原地轉(zhuǎn)個(gè)圈也沒有問題。
除了四輪差速之外,在一些越障能力要求比較高的場景中,也可以使用履帶差速。
此時(shí)還是保持機(jī)器人兩端的插銷都處于插入狀態(tài),在普通輪的外側(cè)加裝附帶的履帶配件,前邊的車燈依然顯示為橙色。手機(jī)App的設(shè)置和四輪差速運(yùn)動(dòng)一樣,還是選擇差速模式,左搖桿控制前進(jìn)后退,右搖桿控制差速轉(zhuǎn)向。
我們在馬路上常見的汽車使用的是阿克曼運(yùn)動(dòng)模式,通過兩個(gè)前輪的平行轉(zhuǎn)向?qū)崿F(xiàn)轉(zhuǎn)彎,在LIMO機(jī)器人上也可以實(shí)現(xiàn)。這種模式下還是使用普通橡膠輪,但是需要將機(jī)器人兩端的插銷都拔起來,注意拔起來之后要旋轉(zhuǎn)一下鎖定住,前邊的車燈會(huì)變成綠色,如圖2-21所示。
在手機(jī)APP中切換為阿克曼模式,左搖桿還是控制前進(jìn)后退,右搖桿撥動(dòng)試一下,可以明顯看到機(jī)器人的兩個(gè)前輪會(huì)圍繞軸心平行向左或者向右旋轉(zhuǎn),同時(shí)控制左搖桿,就可以實(shí)現(xiàn)轉(zhuǎn)彎運(yùn)動(dòng)了。
以上三種運(yùn)動(dòng)模態(tài)都只能讓機(jī)器人有一個(gè)向前的線速度,如果想實(shí)現(xiàn)類似螃蟹一樣橫著走的效果,就需要切換到全向運(yùn)動(dòng)模態(tài)。
我們將機(jī)器人的四個(gè)輪子換成麥克納姆輪,注意將機(jī)器人兩端的插銷恢復(fù)到未拔起的狀態(tài),前邊的車燈顯示為藍(lán)色。手機(jī)App上選擇麥輪模式,此時(shí)左搖桿就支持左右搖動(dòng)了,可以看到機(jī)器人出現(xiàn)了橫向的運(yùn)動(dòng)效果,如果想要控制機(jī)器人差速轉(zhuǎn)向,繼續(xù)使用右搖桿左右轉(zhuǎn)動(dòng),此時(shí)的運(yùn)動(dòng)原理和四輪差速是相同的。
傳感器數(shù)據(jù)
接下來我們再來了解下移動(dòng)機(jī)器人的傳感器數(shù)據(jù)。
首先我們需要啟動(dòng)LIMO機(jī)器人的ROS可視化上位機(jī),很快就可以看到小車已經(jīng)在界面中出現(xiàn)了,同時(shí)我們還可以看到小車的攝像頭顏色信息,以及三維點(diǎn)云信息,大家可以用鼠標(biāo)拖拽一下,體驗(yàn)這種三維數(shù)據(jù)的效果。
圖2-23 傳感器數(shù)據(jù)
周圍綠色不斷跳動(dòng)的點(diǎn),就是激光雷達(dá)看到的障礙物距離,當(dāng)機(jī)器人運(yùn)動(dòng)時(shí),這些點(diǎn)會(huì)不斷體現(xiàn)障礙物的距離信息。同時(shí)我們也可以看到,如果機(jī)器人運(yùn)動(dòng)的話,上位機(jī)中的代表機(jī)器人位置的坐標(biāo)系也會(huì)更新和運(yùn)動(dòng),這就是機(jī)器人里程計(jì)計(jì)算得到的位置,比如里程計(jì)發(fā)現(xiàn)機(jī)器人走了1m,這個(gè)坐標(biāo)系也會(huì)運(yùn)動(dòng)1米。
這樣的可視化上位機(jī),是ROS中的重要功能,不僅可以讓我們直觀的看到機(jī)器人各種各樣的一些信息,更可以方便我們未來對機(jī)器人功能的調(diào)試。
審核編輯:劉清
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6662瀏覽量
110908 -
移動(dòng)機(jī)器人
+關(guān)注
關(guān)注
2文章
768瀏覽量
33657 -
SLAM
+關(guān)注
關(guān)注
23文章
426瀏覽量
31935 -
ROS
+關(guān)注
關(guān)注
1文章
280瀏覽量
17111 -
Ubuntu系統(tǒng)
+關(guān)注
關(guān)注
0文章
91瀏覽量
4040
原文標(biāo)題:【移動(dòng)機(jī)器人原理與應(yīng)用】2-移動(dòng)機(jī)器人的組成和操作方法
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論