0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于OpenHarmony的仿生四足狗開發(fā)分享

電子發(fā)燒友開源社區(qū) ? 來源:未知 ? 2022-12-09 09:15 ? 次閱讀

說起人工智能機(jī)器人界的網(wǎng)紅,那就不得不提到——“機(jī)器狗”。此前,著名機(jī)器人公司波士頓動(dòng)力制造的“Spot”機(jī)器狗、國(guó)內(nèi)知名科技企業(yè)蔚藍(lán)科技自主設(shè)計(jì)研發(fā)的“阿爾法”機(jī)器狗、小米仿生四足機(jī)器人“CyberDog”都曾火爆全網(wǎng)。

機(jī)器狗的開發(fā)需要硬件、軟件及運(yùn)動(dòng)行為三者達(dá)到協(xié)調(diào),并不是一件容易的事,而在傳智教育舉辦的《仿生機(jī)器狗訓(xùn)練營(yíng)》中,特等獎(jiǎng)獲得者劉瀟翔脫穎而出,他從0-1打造了一個(gè)基于OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)系統(tǒng)的機(jī)器狗,并將在本文中帶來一些開發(fā)過程中的心得體會(huì)分享。

個(gè)人介紹

大家好,我是劉瀟翔,現(xiàn)就讀于南方科技大學(xué)(Southern University of Science and Technology)研一,修讀的專業(yè)是智能制造與機(jī)器人。

開發(fā)項(xiàng)目簡(jiǎn)介

在這次訓(xùn)練營(yíng)中,我從機(jī)械結(jié)構(gòu)、電控硬件、控制算法、上位機(jī)等四個(gè)方面設(shè)計(jì)并制作了一款基于傳智教育Hi3861 IoT WiFi模組主控,擁有十二自由度的桌面級(jí)四足機(jī)器狗—Puppy。

d598a6f4-775d-11ed-8abf-dac502259ad0.jpg

已經(jīng)合倉的代碼鏈接:https://gitee.com/openharmony-sig/contest/tree/master/2022_itcast_LCEDA_OpenHarmony_camp/Harmony%20Puppy

OpenHarmony學(xué)習(xí)過程

我第一次接觸到嵌入式開發(fā),還是在傳智教育舉辦的物聯(lián)網(wǎng)實(shí)戰(zhàn)——智能開關(guān)訓(xùn)練營(yíng)中。在此之前我對(duì)OpenHarmony系統(tǒng)了解不是很多,以為僅是運(yùn)行在移動(dòng)端與PC端的系統(tǒng),但我還是對(duì)其充滿好奇,畢竟這是為了打破技術(shù)封鎖自主研發(fā)的系統(tǒng)。所以我也想了解OpenHarmony嵌入式開發(fā),與常見的單片機(jī)STM32、ESP32、ATmega328P這些MCU的開發(fā)有什么區(qū)別。

傳智教育旗下的Hi3861 IoT WiFi模組主芯片海思Hi3861V100,擁有完整的WiFi功能,支持采用MicropythonC語言開發(fā)。由于OpenHarmony的生態(tài)相比其他一些主流單片機(jī),還比較單薄,所以輔助開發(fā)的相關(guān)資料搜集起來相對(duì)費(fèi)力些。我總結(jié)了一下個(gè)人的學(xué)習(xí)流程,大致如下:

學(xué)習(xí)流程:

(1)搜尋并下載不熟悉芯片的硬件數(shù)據(jù)手冊(cè);

(2)參考在Gitee上開源的有關(guān)嵌入式的項(xiàng)目代碼及文檔;

(3)參考OpenHarmony開發(fā)者社區(qū)交流帖;

(4)通過各種搜索引擎(百度、搜狗、Microsoft Bing等)查找相關(guān)文章;

(5)去Bilibili搜索相關(guān)內(nèi)容,碰碰運(yùn)氣;

(6)QQ群,碰碰運(yùn)氣;

(7)以上如果均未得到有效解決方案,根據(jù)已有資料,自己研究解決。

接觸OpenHarmony最大的驚喜和具體的收獲

要數(shù)接觸OpenHarmony最大的驚喜,我認(rèn)為應(yīng)該是在官方提供的如何采用C語言開發(fā)的教學(xué)中提供了一種通過SSH實(shí)現(xiàn)在WIN10系統(tǒng)內(nèi)編輯,在虛擬機(jī)Ubuntu系統(tǒng)里編譯的方法,這個(gè)方法對(duì)我提供了不小的幫助。

其他驚喜與收獲:

(1)傳智教育Hi3861 IoT WiFi物聯(lián)網(wǎng)模組的封裝十分精致小巧,該Hi3861模組支持FreeRTOS系統(tǒng),且支持用Micropython、C語言開發(fā);

(2)初步了解OpenHarmony嵌入式開發(fā)的基本流程,并實(shí)現(xiàn)了個(gè)人需求的相應(yīng)效果。

對(duì)于OpenHarmony系統(tǒng)的建議

(1)用來燒錄程序的Hiburn軟件無法保存偏好設(shè)置,UI設(shè)計(jì)及操作界面也有些不夠清晰。比如,每次打開都要手動(dòng)把燒錄程序波特率115200調(diào)到921600;

(2)用來開發(fā)傳智教育Hi3861物聯(lián)網(wǎng)模組的一些基本工具庫需要完善。比如,IIC通信、SPI通信、OLED屏幕、TFT屏幕、MPU6050傳感器等常用模塊的驅(qū)動(dòng);

(3)傳智教育Hi3861模組在Linux環(huán)境下編譯調(diào)試時(shí),不方便找到報(bào)錯(cuò)信息

項(xiàng)目技術(shù)過程分享

(1)機(jī)械結(jié)構(gòu)部分采用SolidWorks 2020設(shè)計(jì),通過FDM式3D打印制造。其主要設(shè)計(jì)內(nèi)容包括軀體與單腿。單腿機(jī)構(gòu)采用平面四連桿構(gòu)成并聯(lián)腿,擁有3自由度,設(shè)計(jì)思路是盡量減輕腿部重量,并且使三個(gè)電機(jī)安裝的位置緊湊集中。軀體采用模塊分立結(jié)構(gòu)設(shè)計(jì),方便維護(hù)更換及升級(jí);

(2)電控硬件部分采用立創(chuàng)EDA專業(yè)版設(shè)計(jì)。關(guān)于12路舵機(jī)驅(qū)動(dòng)主要由PCA9685PW管理,Hi3861物聯(lián)網(wǎng)模組主控,供電部分采用了一個(gè)DC-DC BUCK型降路壓電路,支持最大電流6A,保證電機(jī)及控制電路供電充足;

(3)軟件部分采用Clion作為編輯器,linux環(huán)境下編譯。在實(shí)現(xiàn)主單腿正逆解、足端擺線軌跡規(guī)劃的基礎(chǔ)上,實(shí)現(xiàn)了四足機(jī)器狗的Trot小跑步態(tài)運(yùn)動(dòng),姿態(tài)逆解控制等;

(4)機(jī)器人的遠(yuǎn)程控制App基于Android開發(fā),與四足機(jī)器狗之間采用了UDP協(xié)議實(shí)現(xiàn)無線通信

項(xiàng)目過程中遇到的困難&解決辦法

困難:

Hi3861模組焊接完成后,按EN復(fù)位,串口輸出為亂碼。

檢測(cè)結(jié)果:

(1)拆除WS2812B燈珠后,串口即能輸出正常信息;

(2)拔下MPU6050模塊后,串口即能輸出正常信息。

解決方案:

(1)拆去連接IO2引腳的WS2812B燈珠;

(2)拔下連接IO7、IO8引腳的MPU6050模塊。

疑似原因:

Hi3861模組燒錄時(shí),特定引腳不能外接設(shè)備。

當(dāng)我一開始發(fā)現(xiàn)輸出亂碼,慣性上會(huì)首先思考MCU的焊接是否良好、串口通訊的電路是否正常、芯片供電是否正常、EN按鍵是否正常等問題。后來能順利解決問題也是在檢查上面所有問題后歪打正著,意外拆掉那顆WS2812燈珠后才發(fā)現(xiàn)復(fù)位正常了。

d5b5c770-775d-11ed-8abf-dac502259ad0.png

項(xiàng)目開發(fā)過程最重要或最值得分享的心得

(1)開發(fā)過程中卡殼,先檢查硬件問題,再檢查軟件問題。

硬件問題一般比軟件問題更麻煩一些,畢竟可能遇到需要重買材料、重新制板等時(shí)間成本較大的修補(bǔ)措施。

硬件問題檢查:一般采用控制變量法把所有的嫌疑因素逐個(gè)排除。比如,先考慮各器件的焊接是否正常(可采用萬用表蜂鳴檔檢測(cè))。如果有MCU的電路先檢查MCU及其外圍電路,是否能夠燒錄程序。之后可通過寫各種Demo小程序來快速測(cè)試其他硬件資源是否正常。

檢查MCU及其外圍電路是否正常,可以先觀察焊接上是否有虛焊,連錫等情況。如果均無問題可接著測(cè)供電電壓是否正常。同時(shí)需注意,用電端燒毀一般是電壓?jiǎn)栴},供電端燒毀一般是電流過大。

軟件問題調(diào)試:如果有報(bào)錯(cuò)信息,就去閱讀報(bào)錯(cuò)信息來調(diào)試代碼。如果是語法錯(cuò)誤就比較容易解決。如果遇到比如LED驅(qū)動(dòng)不亮,先檢查封裝或LED焊反沒,檢查原理圖上LED是引腳電平拉高還是拉低點(diǎn)亮。如果遇到采用IIC通訊的OLED屏幕無法點(diǎn)亮,先寫簡(jiǎn)單的程序從大到小逐步測(cè)通,比如先使屏幕點(diǎn)亮,再試著點(diǎn)亮一個(gè)點(diǎn),再點(diǎn)亮一條線,畫出一個(gè)方塊,寫下一個(gè)字符。各種功能齊全后再組合調(diào)試出自己想要的效果。

而且單片機(jī)開發(fā)調(diào)試時(shí)不應(yīng)該光敲代碼,中間需要穿插燒錄到單片機(jī)看是否能夠?qū)崿F(xiàn)效果。問題多的話盡量分階段解決,而不是匯總到最后一起解決,不然很可能會(huì)出現(xiàn)找不到哪里出錯(cuò)的。

(2)優(yōu)質(zhì)的問題獲得優(yōu)質(zhì)的回答。

提問者要多思考,如何闡述清楚自己的問題,考慮是否方便回答者能簡(jiǎn)潔地回答自己的問題,比如對(duì)方只用回答是還是不是。

比如自己的代碼編譯報(bào)錯(cuò),如果問為什么自己的代碼跑不起來,為什么自己的LED燈不亮了,這無疑很難獲得自己想要的答案。因?yàn)殚_發(fā)的時(shí)候碰到的Bug會(huì)有千萬種,但是正確的跑通道路卻只有一條。如果代碼報(bào)錯(cuò),自己首先要去檢查所報(bào)錯(cuò)的代碼段,細(xì)化大概在哪一行出現(xiàn)了問題,個(gè)人先去通過搜索、調(diào)試等手段嘗試能否解決。

雖然有時(shí)太具體的問題也不太好回答,比如有人問自己想用Hi3861模組開發(fā)一款能夠監(jiān)測(cè)室內(nèi)溫濕度并實(shí)現(xiàn)澆水的智能澆花器。這類問題涉及的內(nèi)容就比較多,也不好獲得自己想要的回答。調(diào)整一下的話,比如可以在問題最后加上,哪款溫濕度傳感器比較推薦,澆水用哪款電機(jī)比較合適等之類細(xì)化一些的問題。

(3)做項(xiàng)目,要一邊開發(fā)一邊學(xué)習(xí)。

想做一個(gè)項(xiàng)目,不像之前我們所接觸的教育那樣,先把一個(gè)領(lǐng)域全方面熟悉摸透后再去做。畢竟想摸清某個(gè)領(lǐng)域都是很不容易的。要明確知道自己的需求,自己想要實(shí)現(xiàn)什么,大概可以怎么樣去實(shí)現(xiàn),然后再去學(xué)習(xí)。需要用什么去學(xué)什么,需要用多少就學(xué)多少,除非自己對(duì)某方面非常感興趣。這樣才有可能快速地去完成自己的需求和實(shí)現(xiàn)想法。

做項(xiàng)目也是多做才可以更熟練,入門的話可以先跟著資料齊全,文檔清晰的優(yōu)秀開源作品復(fù)刻。做了幾個(gè)后,隨后就會(huì)慢慢摸索出自己如果想要實(shí)現(xiàn)新項(xiàng)目的開展思路。

接下來的開發(fā)計(jì)劃

(1)完善曾經(jīng)的項(xiàng)目

由于我對(duì)自己之前的一些作品感覺還有很多不滿意、可以完善的地方,因此我計(jì)劃去優(yōu)化完善曾經(jīng)一些老項(xiàng)目,包括結(jié)構(gòu)設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì)、項(xiàng)目文檔等;

(2)開發(fā)一款電機(jī)調(diào)試器

畢竟我以后的工作很大概率會(huì)和機(jī)器人相關(guān),預(yù)想的功能包括串口調(diào)試、CAN調(diào)試、舵機(jī)調(diào)試、總線舵機(jī)調(diào)試、直流電機(jī)調(diào)試、功率測(cè)量、屏幕顯示、PC端上位機(jī)交互等。

機(jī)器人的發(fā)展前景是一片廣闊無垠的星辰大海,OpenHarmony也是一樣,期待劉同學(xué)能夠在這兩個(gè)領(lǐng)域同時(shí)不斷深耕,并把它們靈活結(jié)合起來,創(chuàng)作出更多具有生活意義的作品,切實(shí)地影響改善人們的日常生活。

更多熱點(diǎn)文章閱讀

  • 最新爆料!RK3588 適配 OpenHarmony 的新進(jìn)展
  • 首個(gè)OpenHarmony 5G手機(jī)適配進(jìn)展
  • 移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)③
  • 移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)④
  • 九聯(lián)科技Unionpi Tiger開發(fā)板體驗(yàn):使用串口調(diào)試土壤溫濕度傳感器

提示:本文電子發(fā)燒友社區(qū)發(fā)布,轉(zhuǎn)載請(qǐng)注明以上來源。如需社區(qū)合作及入群交流,請(qǐng)?zhí)砑游⑿臙EFans0806,或者發(fā)郵箱liuyong@huaqiu.com。


原文標(biāo)題:基于OpenHarmony的仿生四足狗開發(fā)分享

文章出處:【微信公眾號(hào):電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電子發(fā)燒友
    +關(guān)注

    關(guān)注

    33

    文章

    548

    瀏覽量

    32827
  • 開源社區(qū)
    +關(guān)注

    關(guān)注

    0

    文章

    93

    瀏覽量

    395

原文標(biāo)題:基于OpenHarmony的仿生四足狗開發(fā)分享

文章出處:【微信號(hào):HarmonyOS_Community,微信公眾號(hào):電子發(fā)燒友開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【CW32開發(fā)】初探機(jī)器人

    本項(xiàng)目使用8自由度舵機(jī)控制的機(jī)器人。主要用于愛好者學(xué)習(xí)參考??蓪?shí)現(xiàn)基本控制姿態(tài):前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)、打滑、伸展、站立、躺平、擺手。有興趣的朋友,也可以增加新步態(tài)控制。
    的頭像 發(fā)表于 09-25 12:08 ?1430次閱讀
    【CW32<b class='flag-5'>開發(fā)</b>】初探<b class='flag-5'>四</b><b class='flag-5'>足</b>機(jī)器人

    基于ArkTS語言的OpenHarmony APP應(yīng)用開發(fā):HelloOpenharmony

    1、程序簡(jiǎn)介該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫的UI應(yīng)用類:HelloOpenHarmony。本案例是基于API9接口開發(fā)。本案例已在OpenHarmony凌蒙派-RK35
    的頭像 發(fā)表于 09-15 08:09 ?216次閱讀
    基于ArkTS語言的<b class='flag-5'>OpenHarmony</b> APP應(yīng)用<b class='flag-5'>開發(fā)</b>:Hello<b class='flag-5'>Openharmony</b>

    OpenHarmony 明星開發(fā)板和應(yīng)用招募啟動(dòng),等你來!

    優(yōu)秀標(biāo)桿,活動(dòng)將圍繞OpenHarmony開發(fā)板和應(yīng)用展開,歷經(jīng)報(bào)名、初選、復(fù)選、公示個(gè)階段,最終評(píng)選出的優(yōu)秀開發(fā)板和應(yīng)用將在社區(qū)進(jìn)行重點(diǎn)推廣。 報(bào)名時(shí)間 活動(dòng)報(bào)名時(shí)間從即日開始
    發(fā)表于 09-14 15:21

    連做兩只機(jī)器,終于拿捏了這些算法……

    工程名稱:并聯(lián)臂機(jī)器前言用STM32做了兩只機(jī)器,它可以:走來走去玩拔河游戲(單方面
    的頭像 發(fā)表于 06-15 08:04 ?117次閱讀
    連做兩只機(jī)器<b class='flag-5'>狗</b>,終于拿捏了這些算法……

    鴻蒙開發(fā)實(shí)例:【配置OpenHarmony SDK】

    在設(shè)置OpenHarmony應(yīng)用開發(fā)環(huán)境時(shí),需要開發(fā)者在DevEco Studio中配置對(duì)應(yīng)的SDK信息。
    的頭像 發(fā)表于 04-22 15:24 ?1594次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b>實(shí)例:【配置<b class='flag-5'>OpenHarmony</b> SDK】

    OpenHarmony南向開發(fā)案例:【智能油煙機(jī)】

    基于Hi3516開發(fā)板,使用開源OpenHarmony開發(fā)的應(yīng)用。
    的頭像 發(fā)表于 04-18 15:54 ?956次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開發(fā)</b>案例:【智能油煙機(jī)】

    OpenHarmony南向開發(fā)實(shí)例:【游戲手柄】

    基于TS擴(kuò)展的聲明式開發(fā)范式編程語言,以及OpenHarmony的分布式能力實(shí)現(xiàn)的一個(gè)手柄游戲。
    的頭像 發(fā)表于 04-17 10:21 ?664次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開發(fā)</b>實(shí)例:【游戲手柄】

    OpenHarmony南向開發(fā)案例:【分布式畫板】

    使用OpenHarmony3.1-Release開發(fā)的應(yīng)用。通過OpenHarmony的分布式技術(shù),使多人能夠一起畫畫。
    的頭像 發(fā)表于 04-12 14:40 ?945次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開發(fā)</b>案例:【分布式畫板】

    為什么機(jī)器人設(shè)計(jì)常借鑒的外形特征?

    劉表示,機(jī)器是機(jī)器人的一部分,被稱為“動(dòng)物”,意思很明顯是“條腿”。機(jī)器人之所以多數(shù)
    發(fā)表于 04-10 14:30 ?331次閱讀

    底層硬件加大模型,智能機(jī)器拓展更多落地應(yīng)用

    電子發(fā)燒友網(wǎng)報(bào)道(文/李寧遠(yuǎn))在生成式AI、大模型已經(jīng)席卷了各行各業(yè)的當(dāng)下,人形機(jī)器人是最受備受關(guān)注的機(jī)器人類型。在人形機(jī)器人或者說仿生機(jī)器人之前,仿生
    的頭像 發(fā)表于 03-29 00:11 ?2571次閱讀

    銀牛微電子3D視覺感知方案賦能小米CyberDog系列仿生機(jī)器人

    2024年3月21日,合肥銀牛微電子宣布小米CyberDog系列仿生機(jī)器人的AI多模態(tài)融合感知決策系統(tǒng)正式采用銀牛的雙目立體視覺產(chǎn)品解決方案。
    的頭像 發(fā)表于 03-21 13:55 ?707次閱讀

    鴻蒙next開發(fā)-OpenHarmony的NDK開發(fā)

    Native API是OpenHarmony SDK上提供的一組native開發(fā)接口與工具集合(也稱為NDK),方便開發(fā)者使用C或者C++語言實(shí)現(xiàn)應(yīng)用的關(guān)鍵功能。
    的頭像 發(fā)表于 01-20 11:35 ?1643次閱讀
    鴻蒙next<b class='flag-5'>開發(fā)</b>-<b class='flag-5'>OpenHarmony</b>的NDK<b class='flag-5'>開發(fā)</b>

    openharmony開發(fā)應(yīng)用

    隨著智能設(shè)備的普及和多樣化,開發(fā)者們對(duì)于更加靈活、高效的操作系統(tǒng)需求與日俱增。在這個(gè)背景下,華為推出了OpenHarmony,一個(gè)全場(chǎng)景智能終端操作系統(tǒng)和生態(tài)平臺(tái)。本文將詳細(xì)探討
    的頭像 發(fā)表于 12-19 09:42 ?587次閱讀

    OpenHarmony開發(fā)者論壇發(fā)布,即刻加入獲取知識(shí)與案例

    柳曉見,宣布OpenHarmony開發(fā)者論壇正式發(fā)布(https://forums.openharmony.cn/)。 柳曉見表示:OpenHarmony生態(tài)逐步發(fā)展,
    的頭像 發(fā)表于 11-21 11:30 ?426次閱讀

    機(jī)器人步態(tài)規(guī)劃與接觸狀態(tài)

    0、步態(tài)規(guī)劃 機(jī)器人控制當(dāng)中,步態(tài)是至關(guān)重要的一項(xiàng)。我們可以簡(jiǎn)單理解成機(jī)器人運(yùn)動(dòng)過程中各腿的狀態(tài),在這套設(shè)計(jì)方案中,我們對(duì)步態(tài)的規(guī)劃主要分成兩大主要部分,即接觸狀態(tài)和周期函數(shù)。
    的頭像 發(fā)表于 11-16 17:17 ?723次閱讀
    <b class='flag-5'>四</b><b class='flag-5'>足</b>機(jī)器人步態(tài)規(guī)劃與接觸狀態(tài)