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