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