-
主控MCU:Hi3861模組
-
關(guān)節(jié)位控電機:9g舵機 ---> MG90S;
-
舵機驅(qū)動管理:PCA9685PW;
-
IMU傳感器:MPU6050;
-
電機供電:DC-DC BUCK電路 ---> MP2236
-
機械結(jié)構(gòu)部分采用SolidWorks 2020設(shè)計,通過FDM式3D打印制造。其主要設(shè)計內(nèi)容包括軀體與單腿。單腿機構(gòu)采用平面四連桿構(gòu)成并聯(lián)腿,擁有3自由度,設(shè)計思路是盡量減輕腿部重量,并且使三個電機安裝的位置緊湊集中。軀體采用模塊分立結(jié)構(gòu)設(shè)計,方便維護(hù)更換及升級;
-
電控硬件部分采用立創(chuàng)EDA專業(yè)版設(shè)計。關(guān)于12路舵機驅(qū)動主要由PCA9685PW管理,Hi3861物聯(lián)網(wǎng)模組主控,供電部分采用了一個DC-DC BUCK型降路壓電路,支持最大電流6A,保證電機及控制電路供電充足;
-
軟件部分采用Clion作為編輯器,linux環(huán)境下編譯。在實現(xiàn)主單腿正逆解、足端擺線軌跡規(guī)劃的基礎(chǔ)上,實現(xiàn)了四足機器狗的Trot小跑步態(tài)運動,姿態(tài)逆解控制等;
-
機器人的遠(yuǎn)程控制App基于Android開發(fā),與四足機器狗之間采用了UDP協(xié)議實現(xiàn)無線通信。
為了能夠使機器人在三維空間中能夠自由運動,首先,確定了機器人整體設(shè)計有12個自由度。
腿部結(jié)構(gòu):
考慮到機器人后續(xù)的運動性能和續(xù)航,該機器人腿部結(jié)構(gòu)的設(shè)計思路是,盡量減輕了腿部重量與保證單腿上三個電機的安裝位置緊湊。故大腿小腿的的結(jié)構(gòu)采用了并聯(lián)腿結(jié)構(gòu)。該并聯(lián)腿的機構(gòu)原理屬于借鑒參考了其他開源項目,并不是完全創(chuàng)新。
軀體結(jié)構(gòu):
在設(shè)計機器人軀體是,依照的是模塊化思路,將整個軀體分解為由頂層板、底層板、左側(cè)板、右側(cè)板、前側(cè)板、后側(cè)板六部分拼接而成,然后再依次在各板塊上進(jìn)行安裝接口與外形設(shè)計。
接口安排:
四條單腿的電機安裝接口分別在左側(cè)板與右側(cè)板上,而控制板的接口在頂層板上,移動電源設(shè)計放置在機器人腹內(nèi),四足機器人頂層板的前后側(cè)部分挖空方便理線,頂層板尾部設(shè)計有天線接口,底層板前側(cè)設(shè)計了一處舵機接口。接口的方式幾乎均為鏤空,另一好處可以節(jié)省材料。
結(jié)構(gòu)制造:
由于本人制造手段目前限制于僅FDM式3D打印機,故結(jié)構(gòu)設(shè)計過程中盡量避免的平行與底面的懸空結(jié)構(gòu),故該機器人的各零部件在打印時幾乎不需要支撐結(jié)構(gòu),即方便后處理步驟與節(jié)省材料。
電控硬件設(shè)計思路主控MCU:
這個不用多說,已固定為Hi3861模組。其外圍電路數(shù)據(jù)手冊即教學(xué)視頻都有,非常簡單。僅需要注意模組天線部分背部不要布線或挖空。
串口通訊:
采用了CH340系列引腳最少的CH340N,配合Type-C接口。個人目前比較喜歡Type-C,雖然不太好焊,但對我來講沒什么問題。
舵機驅(qū)動:
由于舵機數(shù)量多達(dá)12個及以上,采用PCA9685PW屬常規(guī)操作了。目前也就發(fā)現(xiàn)一款LU9685,其沒找到?jīng)]太好的替代芯片。
供電電路:
以一顆舵機額定運行需要5V,200mA來算,加上MCU模組及其他芯片需500mA左右來算,正常運作將近需要2.9A.故LDO無法滿足,需DC-DC BUCK型降壓電路將2S鋰電池降壓到5V輸出。MP2236支持寬電壓輸入,最高電壓18V,最大電流6A。
控制算法設(shè)計思路整體思路:
四足機器人基本的運動控制幾乎都是在實現(xiàn)單腿正逆解的基礎(chǔ)上實現(xiàn)的。
單腿正逆解:
了解到有DH建模法、幾何法等方法可以實現(xiàn),個人此次采用的是幾何法實現(xiàn)。(因為DH建模時因為arcsin出現(xiàn)了很多計算上的BUG)
姿態(tài)逆解:
姿態(tài)逆解即在單腿逆解基礎(chǔ)上,通過單腿把整個軀體當(dāng)做并聯(lián)機構(gòu)來控制,其實也就設(shè)計單腿和軀體的坐標(biāo)系變換,理解相對運動即可。
步態(tài)規(guī)劃:
步態(tài)規(guī)劃要控制的一個是足端軌跡,一個是單個步態(tài)周期中各腿的運動。首先可理解的是各腿的運動軌跡,可均采用一種規(guī)劃,本項目中采用的是擺線來規(guī)劃。隨后主要控制的便是一個步態(tài)周期,各單腿的抬起落下,即擺動相與支撐相。本項目中僅演示了Trot步態(tài),即對角小跑步態(tài)。對于足端軌跡是實時解算的,對角兩腿向前擺動時,另外對角兩腿同步向后支撐,即控制的機器狗的整體移動。包括后續(xù)的轉(zhuǎn)彎,左右平移皆是一個原理。
上位機設(shè)計思路整體思路:
上位機設(shè)計在移動端,即Andorid開發(fā)實現(xiàn)。 采用的是UDP通信,機器人與手機連入同一個WiFi即可控制。 實現(xiàn)通信僅需要對齊IPV4地址與端口號即可。 App里主要需要實現(xiàn)WiFi通信、UI布局設(shè)計、指令設(shè)計即可。 此次主要挑戰(zhàn)了一下在界面設(shè)計與交互上的美化,運用了圓環(huán)動畫按鈕,其他交互設(shè)計上也想著盡量簡潔而美觀,控件主要也就涉及了Button、EditText等。 此App目前還不太完善,后面會繼續(xù)完善開發(fā)其他功能。遇到問題&解決辦法示例遇到問題:
Hi3861模組焊接完成后,按EN復(fù)位,串口輸出為亂碼。檢測過程:
-
拆除WS2812B燈珠后,串口即能輸出正常信息;
-
拔下MPU6050模塊后,串口即能輸出正常信息。
疑似原因:
Hi3861模組燒錄時,特定引腳不能外接設(shè)備。
當(dāng)我一開始發(fā)現(xiàn)輸出亂碼,慣性上會首先思考MCU的焊接是否良好、串口通訊的電路是否正常、芯片供電是否正常、EN按鍵是否正常等問題。后來能順利解決問題也是在檢查上面所有問題后歪打正著,意外拆掉那顆WS2812燈珠后才發(fā)現(xiàn)復(fù)位正常了。
解決方案:
-
拆去連接IO2引腳的WS2812B燈珠;
-
拔下連接IO7、IO8引腳的MPU6050模塊。
開發(fā)過程中卡殼,先檢查硬件問題,再檢查軟件問題:
硬件問題一般比軟件問題更麻煩一些,畢竟可能遇到需要重買材料,重新制板等時間成本較大的修補措施。
硬件問題檢查: 一般采用控制變量法把所有的嫌疑因素逐個排除。比如,先考慮各器件的焊接是否正常(可采用萬用表蜂鳴檔檢測)。如果有MCU的電路先檢查MCU及其外圍電路,是否能夠燒錄程序。因為之后可通過寫各種Demo小程序來快速測試其他硬件資源是否正常。
檢查MCU及其外圍電路是否正常,可以先觀察焊接上是否有虛焊,連錫等情況。如果均無問題可接著測供電電壓是否正常。同時需注意,用電端燒毀一般是電壓問題,供電端燒毀一般是電流過大。
軟件問題調(diào)試: 如果有報錯信息,就去閱讀報錯信息來調(diào)試代碼。如果語法錯誤就比較容易解決。如果遇到比如LED驅(qū)動不亮,先檢查封裝或LED焊反沒,檢查原理圖上LED是引腳電平拉高還是拉低點亮。如果遇到采用IIC通訊的OLED屏幕無法點亮,先寫簡單的程序測通,比如先使屏幕點亮,再試著點亮一個點,再點亮一條線,畫出一個方塊,寫下一個字符。各種功能齊全后在組合調(diào)試出自己想要的效果。
而且單片機開發(fā)調(diào)試時不應(yīng)該光敲代碼,中間需要穿插燒錄到單片機看是否能夠?qū)崿F(xiàn)效果。問題多的話盡量分階段解決,而不是匯總到最后一起解決,不然很可能會出現(xiàn)找不到哪里出錯的。
優(yōu)質(zhì)的問題獲得優(yōu)質(zhì)的回答:
提問者要多思考,如何闡述清楚自己的問題,考慮是否方便回答者能簡潔地回答自己的問題,比如對方只用回答是還是不是。
比如自己的代碼編譯報錯,如果問為什么自己的代碼跑不起來,為什么自己的LED燈不亮了,這無疑很難獲得自己想要的答案。因為開發(fā)的時候碰到的Bug會有千萬種,但是正確的跑通道路卻只有一條。如果代碼報錯,自己首先要去檢查所報錯的代碼段,細(xì)化大概在哪一行出現(xiàn)了問題,個人先去通過搜索、調(diào)試等手段嘗試能否解決。
雖然有時太具體的問題也不太好回答,比如有人問自己想用Hi3861模組開發(fā)一款能夠監(jiān)測室內(nèi)溫濕度并實現(xiàn)澆水的智能澆花器。這類問題涉及的內(nèi)容就比較多,也不好獲得自己想要的回答。調(diào)整一下的話,比如可以在問題最后加上,哪款溫濕度傳感器比較推薦,澆水用哪款電機比較合適等之類細(xì)化一些的問題。
做項目,要一邊開發(fā)一邊學(xué)習(xí):
想做一個項目,不像之前我們所接觸的教育那樣,先把一個領(lǐng)域全方面熟悉摸透后再去做。畢竟想摸清某個領(lǐng)域都是很不容易的。要明確知道自己的需求,自己想要實現(xiàn)什么,大概可以怎么樣去實現(xiàn),然后再去學(xué)習(xí)。需要用什么去學(xué)什么,需要用多少就學(xué)多少,除非自己對某方面非常感興趣。這樣才有可能快速地去完成自己的需求和實現(xiàn)想法。
做項目也是多做才可以更熟練,入門的話可以先跟著資料齊全,文檔清晰的優(yōu)秀開源作品復(fù)刻。做了幾個后,隨后就會慢慢摸索出自己如果想要實現(xiàn)新項目的開展思路。
寫在最后我們最近正帶著大家玩嗨OpenHarmony。如果你有好玩的東東,歡迎投稿,讓我們一起嗨起來!有點子,有想法,有Demo,立刻聯(lián)系我們:合作郵箱:[email protected]
![]() |




原文標(biāo)題:玩嗨OpenHarmony:基于OpenHarmony的仿生四足狗開發(fā)分享
文章出處:【微信公眾號:開源技術(shù)服務(wù)中心】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
四足機器人
+關(guān)注
關(guān)注
1文章
94瀏覽量
15472 -
OpenHarmony
+關(guān)注
關(guān)注
29文章
3853瀏覽量
18595
原文標(biāo)題:玩嗨OpenHarmony:基于OpenHarmony的仿生四足狗開發(fā)分享
文章出處:【微信號:開源技術(shù)服務(wù)中心,微信公眾號:共熵服務(wù)中心】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄

OpenHarmony應(yīng)用開發(fā)入門與基礎(chǔ)課程_第四章-獲取網(wǎng)絡(luò)數(shù)據(jù) _OpenHarmony網(wǎng)絡(luò)能力
四足仿生機器人
每周精選 | 履帶四足復(fù)合機器人開源分享,OpenHarmony開源開發(fā)者成長計劃
劉瀟翔:基于OpenHarmony的仿生四足狗開發(fā)分享
openharmony開發(fā)企業(yè)有哪些
openharmony開源社區(qū) OpenHarmony開發(fā)樣例上新了
OpenHarmony開發(fā)體系內(nèi)容介紹
玩嗨OpenHarmony:基于OpenHarmony的機械狗進(jìn)階版——聽話的狗子
玩嗨OpenHarmony:基于OpenHarmony的道路維護(hù)方案
玩嗨OpenHarmony:基于OpenHarmony的智能保險柜
玩嗨OpenHarmony:基于OpenHarmony的貪吃蛇小游戲
玩嗨OpenHarmony:基于OpenHarmony的ArkUI翻頁時鐘
基于OpenHarmony的仿生四足狗開發(fā)分享
openharmony開發(fā)應(yīng)用
基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony

評論