編者注:本項目編譯自Makezine,來自3DRobotics設(shè)計主管JasonShort。Makezine將本項目的難度定位為:VeryDifficult,夠自信你也來挑戰(zhàn)一下吧!
想要提高自己的機器人制作水平嗎?那你可來對地方了。今天我們的主角ArduRoller就是一臺可以自動平衡的倒立擺機器人,此外它還擁有室內(nèi)外自主導(dǎo)航的能力。這臺非傳統(tǒng)車輛可以快速自主通過一系列障礙、轉(zhuǎn)角、崎嶇路面,水桶和斜坡等對它來說都小菜一碟。此外,它也是我在一年一度的SparkFun無人駕駛車輛競賽中的參賽作品。
首先,我選擇了來自3DRobotics的APM2.5多模式自動控制系統(tǒng),因為它集成了幾乎所有機器人所需的傳感器。此外,它構(gòu)造簡單,開源,而且相關(guān)軟件免費,ArduPilot系統(tǒng)也較為成熟。對于剛上手智能機器人的人來說,這絕對是個好平臺。
這款自動平衡機器人采用慣性測量裝置作為核心,該裝置包括三軸速率陀螺,加速度計和磁力計,共計九個傳感器,總采樣速率可以達到千次∕秒,此外它還采用了方向余弦矩陣算法,其搭載的數(shù)學(xué)濾波器則可更好地利用每個傳感器的性能。該機器人還搭載了更高級別的代碼,這樣就可快速計算出機器人的實時狀態(tài),以更好的保持平衡。
怎樣能使機器人保持平衡?
倒立擺平衡機器人的內(nèi)在特點決定了它其實是不穩(wěn)定的,不過高重心的優(yōu)勢卻給它創(chuàng)造了一個很大的慣性矩,從而放緩了它傾斜的速度。在操作中我們就可以利用這一特性,不斷移動輪子來抵消這部分傾斜所產(chǎn)生的力,以保持機器人的平衡。
機器人內(nèi)置軟件中的一個簡單的PID回路負責(zé)控制它的平衡:
銷售分揀機器人價格比例項會探測到機器人傾斜的角度誤差,隨后便會換算出來回傳給電機,電機就可以控制輪子來抵消這部分力,從而保持平衡。
貨物分揀機器人樹莓派積分項和上面的原理類似,不過它搜集的是所有角度誤差的總和,從而解決重心問題。
相比前兩項,微分項更加關(guān)鍵,少了它我們就無法控制機器人的加減速。
讓它動起來
隨后,這個簡單的機器人就可以開始動起來了。不過平衡沒能保持多久,它就因為不斷加速而摔倒了。如果在過程中機器人試圖調(diào)整姿態(tài),那么它就無法繼續(xù)前行了。
所以我們只好采用垂直滾動的方法來保持前進。首先,要讓輪子的旋轉(zhuǎn)保持一個合理的速度,這樣才能產(chǎn)生足夠抵消機器人傾斜的力。然后,在機器人角度快速變化時再提供一個補償力,以保持它的穩(wěn)定。這一算法來自于對人類的觀察研究,因為人在受外力推擠時會努力保持平衡。舉例來說,足球運動員在碰撞時就會收腿并傾斜身體來保持平衡。
以上兩點是機器人平衡算法的關(guān)鍵,只有這樣機器人才能走的更順,走的更遠。
自主導(dǎo)航
想要實現(xiàn)自主導(dǎo)航,我們要精確計算出機器人所在方位和其目的地。GPS很有用,但其精度只有幾米,而機器人需要的是精確到厘米的定位準(zhǔn)確度。
輪式編碼器則可將精度提高到毫米級,同時也對GPS起到了很好的輔助。來自Pololu公司的電機則搭載了可選的霍爾效應(yīng)傳感器,讓它可以這樣工作:小型磁鐵旋轉(zhuǎn)著掠過傳感器,這樣就可以計算出車輪的速度。機器人搭載的ArduinoProMini也很強大,它可以讀取來自編碼器的每秒數(shù)千次的脈沖,然后將這些數(shù)據(jù)通過I2C接口傳送給自動駕駛系統(tǒng)。只要知道了輪子的半徑,機器人就可計算出行走的速度和里程。此外,機器人知道自己的前進方向,這樣它就可以在二維空間里精確的給自己定位。GPS在整個過程中反而扮演了輔助的角色,它只要保證機器人能精確的執(zhí)行這一系列動作就行。
如果在行駛中被卡住,機器人也能感覺到,它會倒轉(zhuǎn)輪子行駛并稍微右轉(zhuǎn)再次進行嘗試。
機器人的其它控制軟件,包括路徑導(dǎo)航系統(tǒng),基本都是ArduCopter上的改進版,這樣我們就站在了前人的肩膀上,省下了大量的精力和時間。
別墨跡了,快自己裝一個吧,3-5個小時就能搞定,總花費大約在400到500美元。下面我會列出詳細的裝配步驟。
第一步:準(zhǔn)備好所有零件
自動化分揀機器人的功能Pololu有刷直流電機已經(jīng)裝上了編碼器,此外,一個34:1的齒輪減速裝置有助于提高電機的扭矩。
加裝了編碼器的輪胎可以完美適配4毫米的電機軸,粗獷的輪胎還可以提升機器人的越野能力,并在行進中吸收多余震動。
第二步:用3d打印機制造機身
你可以在這里找到用于3D打印的技術(shù)文檔,在打印過程中我使用了MakerBotReplicator2X3D打印機。
第三步:安裝電機
將電機裝進剛剛打印出的機身中,雖然它機身挺貼合,但我還是加了點熱熔膠。
第四步:連接各電子元器件
將APM控制系統(tǒng)與電機端罩、邏輯電平轉(zhuǎn)換器和ArduinoMini按電路圖依次連接起來。
將GPS模塊和無線電遙測設(shè)備連接起來,以便機器人進行自主操作。
分揀機器人怎么畫手動操控機器人與你的R/C接收機相連。至于PPM接收機,用APM自帶的跳線連接起來就好。
物料分揀機器人圖片用熱熔膠將元器件粘在一塊塑料板上,這樣更容易塞進機器人。另外,自動控制系統(tǒng)可別裝錯了方向。
最后,將元器件與電機連起來,并將電路板放進基座中。
第五步:總裝
將機身中部裝在基座上,然后將機身上部按緊,電池就放在機身上部,然后將電源裝在機器人側(cè)面。
給機器人裝輪子。
這個玻璃罩其實就是從亞馬遜上買的的圣誕樹吊飾,各種LED元器件發(fā)的光會點亮整個機艙。
最后,給機器人側(cè)面裝上無線電遙測設(shè)備,通過它你可以給機器人制定任務(wù)或直接對其進行操縱。
第六步:給機器人寫入程序
下載ArduRoller的源代碼,并使用名為ArduPilot-Arduino的工具將其灌入APM2.5。
下載輪式編碼器的源代碼,然后用ArduinoIDE將其灌入ProMini。
想要讓機器人自主執(zhí)行任務(wù),你需要下載PC版的MissionPlanner,或者下載安卓版的DroidPlanner2。
第七步:大功告成
藥品分揀機器人費用裝好機器人之后就可以盡情玩耍了,你可以用R/C遙控器來操控它,或者直接讓它靠GPS自主執(zhí)行任務(wù)。在MissionPlanner軟件上,你只需幾個點擊動作就可以使用谷歌地圖并追蹤機器人的位置、速度和行進方向等,此外你還可以運行自己的Pyrhon腳本,下載并分析任務(wù)日志等。
我也用了安卓端的DroidPlanner,體驗不錯!
給機器人裝個視頻發(fā)射器和GoPro,這樣你就能看到機器人的第一視角了,挺有趣的。另外,你還可以給它搭載聲納系統(tǒng),這樣它就能成為躲避障礙的行家里手了。
快遞分揀機器人現(xiàn)場智能倉庫分揀機器人的運用技術(shù)物流分揀機器人的發(fā)展趨勢