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

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

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

小米機(jī)械狗CyberDog云體驗(yàn)源碼開(kāi)源啦!

云深之無(wú)跡 ? 來(lái)源:云深之無(wú)跡 ? 作者:云深之無(wú)跡 ? 2022-08-02 11:13 ? 次閱讀

我到處說(shuō)小米沒(méi)開(kāi)源,我真沒(méi)素質(zhì),其實(shí)人家已經(jīng)開(kāi)源了...不過(guò)是20個(gè)月前開(kāi)的,是我的鍋. 小米機(jī)械狗CyberDog云體驗(yàn) 其實(shí)在當(dāng)時(shí)我已經(jīng)寫一個(gè)這樣的與體驗(yàn)的文章,聽(tīng)著群里面的慫恿還在微博上面私信了雷軍(真的是屬于教唆犯罪了),結(jié)果當(dāng)然是沒(méi)有尿我啦~ 不過(guò)之后也有讀者加我給我展示他買的狗子,哈哈哈,翻跟頭的聲音有點(diǎn)大了,之后AirLAB實(shí)驗(yàn)室也有一只狗子,不過(guò)我也沒(méi)有去摸了,遺憾~ 好了,閑話不多說(shuō)讓我們開(kāi)始今天的這個(gè)文章主題.Cyberdog主要使用了MIT的開(kāi)源代碼Mini Cheetah(也就是MPC) 以及 ROS 2的開(kāi)源平臺(tái)制作的一個(gè)機(jī)器人.

傳感器包括:Intel Realsense D450深度攝像頭、AI交互相機(jī)、雙目超廣角相機(jī)、TOF傳感器、環(huán)境光傳感器、超聲波傳感器、慣性測(cè)量單元、GPS模組、地磁傳感器、光流計(jì)、6MIC環(huán)型陣列、觸摸傳感器.

CyberDog全身的自由度是12,單腿的自由度是3,即每只腳大腿關(guān)節(jié)處有兩個(gè)電機(jī),小腿關(guān)節(jié)處有一個(gè)電機(jī),共12個(gè)電機(jī)。

12個(gè)電機(jī)的組合讓CyberDog可以自由地做出奔跑、跳躍、空翻等高難度動(dòng)作。據(jù)悉,這12個(gè)伺服電機(jī)均由小米自研,單個(gè)最大扭矩達(dá)32N·m,最大轉(zhuǎn)速為220rpm,可以讓這只14KG重的CyberDog以11.5km/h的速度前進(jìn).

CyberDog“小腦”使用的國(guó)內(nèi)知名芯片設(shè)計(jì)廠商全志科技的Allwinner MR813。MR813將負(fù)責(zé)MPC算法的執(zhí)行、運(yùn)動(dòng)控制、電源系統(tǒng)管理和OTA系統(tǒng)管理等工作。即CyberDog的四只腳以及上面的12個(gè)伺服電機(jī),都將在MR813的控制下有序地行動(dòng),讓CyberDog不會(huì)出現(xiàn)順拐或者“撲街”。也就是說(shuō)通過(guò)全志MR813芯片對(duì)全身的運(yùn)動(dòng)模塊進(jìn)行控制。

MR813是全志針對(duì)運(yùn)動(dòng)機(jī)器人市場(chǎng)推出的高性能SoC,4核A53架構(gòu),主頻高達(dá)1.6GHz,擁有豐富的音視頻接口和運(yùn)動(dòng)驅(qū)動(dòng)接口。

MR系列芯片已經(jīng)在在掃地機(jī)器人產(chǎn)品上被廣泛應(yīng)用,其中包括小米、石頭、追覓等。

7aada8fa-11b1-11ed-ba43-dac502259ad0.png

藍(lán)色的全志的東西

7b0ce7ac-11b1-11ed-ba43-dac502259ad0.png

就是這樣

7b6f59d2-11b1-11ed-ba43-dac502259ad0.png

Github上面的話是發(fā)現(xiàn)了一個(gè)新的庫(kù),是關(guān)于電機(jī)控制的固件的,我還沒(méi)有看代碼,不知道是什么樣的.

好了,今天的主角是Cyberdog.一開(kāi)始的代碼其實(shí)是小米自己的Gitlab服務(wù)器(應(yīng)該是),在后面的時(shí)候遷移到Github上面. 我們從軟件的構(gòu)架圖開(kāi)始代碼的研究之旅,你也不要問(wèn)我有沒(méi)有用,因?yàn)闆](méi)有人寫,寫也是論文的解讀,個(gè)人覺(jué)得做產(chǎn)品最可貴的事情就是把論文變成代碼.可能這些文章就像老師說(shuō)的一樣,由于你的沒(méi)有耐心沒(méi)有寫下去,但是總歸是有用的.

7b8ffd68-11b1-11ed-ba43-dac502259ad0.png

這個(gè)是軟件的構(gòu)架圖

7bab0e6e-11b1-11ed-ba43-dac502259ad0.png

系統(tǒng)框圖

7bcebe9a-11b1-11ed-ba43-dac502259ad0.png

這個(gè)看的可能更清晰

注意,這里兩個(gè)板子之間的通訊使用網(wǎng)口。

7bff8002-11b1-11ed-ba43-dac502259ad0.png

這個(gè)是在左上角的一部分節(jié)點(diǎn),作用是使用手機(jī)的APP控制,至于藍(lán)牙是模塊實(shí)現(xiàn)了:注冊(cè)藍(lán)牙GATT service,發(fā)送BLE廣播,等待手機(jī)APP連接成功后,接收APP發(fā)送的Wifi信息,實(shí)現(xiàn)Wifi的聯(lián)網(wǎng)操作,并返回聯(lián)網(wǎng)結(jié)果,以及通過(guò)APP提供的命令,實(shí)現(xiàn)藍(lán)牙手柄的掃描,連接,達(dá)到通過(guò)手柄控制CyberDog的目的。

手機(jī)這里我也沒(méi)有用過(guò),按照這個(gè)寫法,應(yīng)該是可以在手機(jī)這里實(shí)時(shí)的看到狗子回傳的畫面,使用的RTSP,這個(gè)具體的控制使用的是GRPC.SHM是什么?我不知道,有同學(xué)可以給我解讀一下.

7c1c1b18-11b1-11ed-ba43-dac502259ad0.png

CAN是這里使用的通信方式,至于是什么作用,這里就看命名方式就行

7c402b52-11b1-11ed-ba43-dac502259ad0.png

就像這樣Node的作用,自己看名字吧,沒(méi)什么好說(shuō)的

7c6ca7c2-11b1-11ed-ba43-dac502259ad0.png

燈傳感器,語(yǔ)音助手,觸摸檢測(cè),Intel的相機(jī)都是單獨(dú)的節(jié)點(diǎn)

7c974e82-11b1-11ed-ba43-dac502259ad0.png

這個(gè)是電池,還有語(yǔ)音功能,遠(yuǎn)程的控制命令

7cb3eeac-11b1-11ed-ba43-dac502259ad0.png

定位,建圖,追蹤的功能在這里

7ce585c0-11b1-11ed-ba43-dac502259ad0.png

上面的所有服務(wù)都集成到DDS,做統(tǒng)一的處理

7d035096-11b1-11ed-ba43-dac502259ad0.png

目前要讀的源碼就是這些,太多了,朋友

7d24c514-11b1-11ed-ba43-dac502259ad0.png

核心的庫(kù)目前就是這三個(gè)

7d3f76a2-11b1-11ed-ba43-dac502259ad0.png

最核心的事情都放在這里,ROS2

通用類:

athena_bringup:?jiǎn)?dòng)系統(tǒng)相關(guān),在ROS 2的Launch啟動(dòng)系統(tǒng)上設(shè)計(jì)了更簡(jiǎn)約的啟動(dòng)項(xiàng)管理,對(duì)啟動(dòng)腳本(Python3)和啟動(dòng)內(nèi)容進(jìn)行了隔離。通過(guò)簡(jiǎn)單的參數(shù)配置,新的節(jié)點(diǎn)或新的進(jìn)程便可被添加到啟動(dòng)項(xiàng),而無(wú)需修改腳本內(nèi)容。同時(shí)也支持參數(shù)管理、調(diào)試和開(kāi)關(guān)等功能。

athena_grpc:機(jī)器人與外部通訊的媒介,目前與手機(jī)App進(jìn)行連接是基于GRPC的。

athena_utils:本項(xiàng)目的通用功能倉(cāng),包括基于cascade_lifecycle修改的LifecycleNode基類,和傳感器相關(guān)節(jié)點(diǎn)共用的基類等。

media_vendor:多媒體相關(guān)應(yīng)用需要使用的CMake配置項(xiàng)。

toml11_vendor:toml11的橋接包。

感知類

athena_bms:CyberDog上的電池管理模塊,主要負(fù)責(zé)電池信息的接收與分發(fā)。

athena_body_state:該模塊實(shí)現(xiàn)了整機(jī)運(yùn)動(dòng)狀態(tài)的感知功能,并通過(guò)BodyState上報(bào)posequat和speed_vector兩種message的數(shù)據(jù)(posequat表示整機(jī)姿態(tài)四元數(shù);speed_vector表示整機(jī)運(yùn)動(dòng)的瞬時(shí)速度,單位:m/s)。

athena_lightsensor:該模塊創(chuàng)建了機(jī)器人感知系統(tǒng)中Light Sensor的service和publisher,當(dāng)機(jī)器人需要感知周圍環(huán)境光的強(qiáng)度時(shí),可通過(guò)上層決策層啟動(dòng)該service和publisher,獲取環(huán)境光照度信息。

athena_obstacledetection:該模塊創(chuàng)建了機(jī)器人感知系統(tǒng)中Ultrasonic Sensor的service和publisher。

athena_scenedetection:該模塊為機(jī)器人提供場(chǎng)景檢測(cè)功能,通過(guò)定位芯片獲取當(dāng)前位置信息,同時(shí)通過(guò)衛(wèi)星信號(hào)質(zhì)量判斷機(jī)器人當(dāng)前處于室內(nèi)或室外。

交互類:

bluetooth:該模塊實(shí)現(xiàn)了:注冊(cè)藍(lán)牙GATT service,發(fā)送BLE廣播,等待手機(jī)APP連接成功后,接收APP發(fā)送的Wifi信息,實(shí)現(xiàn)Wifi的聯(lián)網(wǎng)操作,并返回聯(lián)網(wǎng)結(jié)果,以及通過(guò)APP提供的命令,實(shí)現(xiàn)藍(lán)牙手柄的掃描,連接,達(dá)到通過(guò)手柄控制CyberDog的目的。

wifirssi:該模塊的主要功能是創(chuàng)建定時(shí)任務(wù),實(shí)時(shí)查詢當(dāng)前已連接Wifi的信號(hào)強(qiáng)度,并通過(guò)ros2的topic通訊進(jìn)行傳輸。

audio_base:該模塊用于播放多段或單段不定長(zhǎng)PCM音頻數(shù)據(jù)、wav格式音頻文件,其底層實(shí)現(xiàn)為SDL2與SDL_mixer。

audio_interaction:該模塊用于實(shí)現(xiàn)整個(gè)音頻模塊的交互部分,主要包括與其它模塊之間關(guān)于通用播放的交互、語(yǔ)音助手相關(guān)控制與交互功能和與APP(grpc)之間關(guān)于音量調(diào)解的交互功能。

athena_audio

athena_camera:該模塊基于NVIDIA Argus和ROS 2實(shí)現(xiàn)了相機(jī)的基礎(chǔ)功能,包括拍照和錄像等,并為其他模塊(視覺(jué)SDK、圖傳等)提供調(diào)用接口。

athena_led:該模塊用于統(tǒng)一決策系統(tǒng)所有的LED燈效請(qǐng)求,基于ROS2 Service以及sensor_utils類實(shí)現(xiàn),通過(guò)定義不同client的LED消息優(yōu)先級(jí)以及timeout來(lái)實(shí)現(xiàn)對(duì)CyberDog頭燈和尾燈的控制顯示功能。

athena_livestream

athena_touch:該模塊提供了topic為TouchState的publisher, 繼承于athena_utils::LifecycleNode.

目前支持單指單擊報(bào)LPWG_SINGLETAP_DETECTED 和單指長(zhǎng)按3s報(bào)LPWG_TOUCHANDHOLD_DETECTED事件。

athena_wireless

決策類:

athena_decisionmaker:面向業(yè)務(wù)層,負(fù)責(zé)實(shí)現(xiàn)具體業(yè)務(wù)功能。目前提供了automation_manager、ception_manager、interaction_manager和motion_manager。分別用于自動(dòng)化功能、感知功能、人機(jī)交互功能和運(yùn)動(dòng)功能的管理和決策。該四個(gè)模塊均繼承cascade_manager,并在基礎(chǔ)上根據(jù)業(yè)務(wù)功能稍作改動(dòng)。

athena_decisionutils:決策相關(guān)功能的基類和工具類集合,負(fù)責(zé)實(shí)現(xiàn)通用功能。目前提供了cascade_manager,該模塊繼承于athena_utils::LifecycleNode,具備級(jí)聯(lián)/并聯(lián)和單點(diǎn)控制的功能,可以快速管控其作用域下的節(jié)點(diǎn)的啟動(dòng)和關(guān)閉。

接口類:

athena_interfaces:接口總抽象包。

automation_msgs:自動(dòng)化功能相關(guān)接口。

cascade_lifecycle_msgs:級(jí)聯(lián)節(jié)點(diǎn)相關(guān)接口。

ception_msgs:感知功能相關(guān)接口。

interaction_msgs:交互功能相關(guān)接口。

motion_msgs:運(yùn)動(dòng)功能相關(guān)接口。

7d6a16dc-11b1-11ed-ba43-dac502259ad0.png

這個(gè)是開(kāi)源的電機(jī)接口

SDK開(kāi)放了電機(jī)驅(qū)動(dòng)器和機(jī)身IMU傳感器接口,配合cyberdog 1.0.0.94及以上版本使用,方便用戶進(jìn)行運(yùn)動(dòng)控制的二次開(kāi)發(fā)。

7d8361e6-11b1-11ed-ba43-dac502259ad0.png

具體的一個(gè)接口

7d9fd204-11b1-11ed-ba43-dac502259ad0.png

通用的接口

7dc3a134-11b1-11ed-ba43-dac502259ad0.png

在電機(jī)的內(nèi)部還有很多的數(shù)據(jù)結(jié)構(gòu)

7de9b342-11b1-11ed-ba43-dac502259ad0.png

電機(jī)的控制信息

審核編輯 :李倩

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

    關(guān)注

    2545

    文章

    50445

    瀏覽量

    751031
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3215

    瀏覽量

    42310
  • 機(jī)械狗
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    4823

原文標(biāo)題:小米Cyberdog源碼開(kāi)源啦!

文章出處:【微信號(hào):TT1827652464,微信公眾號(hào):云深之無(wú)跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    科技報(bào)到:假開(kāi)源真噱頭?開(kāi)源大模型和你想的不一樣!

    科技報(bào)到原創(chuàng)。 25年前,著名的計(jì)算機(jī)程序員、開(kāi)源軟件運(yùn)動(dòng)旗手Eric S·Raymond出版了《大教堂與集市》一書,首次提出了開(kāi)放源代碼(Open Source)的概念,提倡軟件源代碼能被任何人
    的頭像 發(fā)表于 11-03 10:46 ?141次閱讀

    Matepad pro12.2 已上市半個(gè)月,但是還沒(méi)有在開(kāi)源網(wǎng)站看到該項(xiàng)目的開(kāi)源信息,違背開(kāi)源精神

    任何該項(xiàng)目的開(kāi)源計(jì)劃,違背開(kāi)源精神 按照開(kāi)源社區(qū) licsence和公共庫(kù)開(kāi)源licsence要求,對(duì)應(yīng)的項(xiàng)目上市后都需要盡快開(kāi)源并及時(shí)公布
    發(fā)表于 08-27 17:25

    Jtti:服務(wù)器OpenStack的優(yōu)勢(shì)分析

    混合環(huán)境中得到廣泛應(yīng)用。本文將詳細(xì)分析OpenStack服務(wù)器的優(yōu)勢(shì),以幫助企業(yè)和開(kāi)發(fā)者理解其在構(gòu)建基礎(chǔ)設(shè)施方面的獨(dú)特價(jià)值。 1. 開(kāi)源和社區(qū)驅(qū)動(dòng) 開(kāi)放性 自由訪問(wèn)
    的頭像 發(fā)表于 08-07 16:29 ?239次閱讀

    大象機(jī)器人開(kāi)源協(xié)作機(jī)械機(jī)械臂接入GPT4o大模型!

    和智能化的任務(wù),提升了人機(jī)協(xié)作的效率和效果。我們個(gè)人平時(shí)接觸不太到機(jī)械臂這類的機(jī)器人產(chǎn)品,但是有一種小型的機(jī)械臂我們?nèi)巳硕伎梢該碛兴黰yCobot,價(jià)格低廉的一種桌面型機(jī)械臂。 案例介紹 本文介紹同濟(jì)子豪兄
    的頭像 發(fā)表于 07-03 14:09 ?725次閱讀
    大象機(jī)器人<b class='flag-5'>開(kāi)源</b>協(xié)作<b class='flag-5'>機(jī)械</b>臂<b class='flag-5'>機(jī)械</b>臂接入GPT4o大模型!

    浙大博導(dǎo)開(kāi)源飛控planner源碼

    浙大博導(dǎo)開(kāi)源飛控planner源碼
    發(fā)表于 06-12 11:43 ?4次下載

    小米機(jī)器人入駐小米汽車工廠,已研發(fā)鐵大、鐵蛋等機(jī)器人

    6月5日消息,北京亦莊公眾號(hào)發(fā)布文章,透露小米機(jī)器人技術(shù)有限公司(下文稱小米機(jī)器人)近日在北京經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)(亦莊)舉行了盛大的喬遷儀式?,F(xiàn)場(chǎng),小米第二代仿生四足機(jī)器人CyberDog
    的頭像 發(fā)表于 06-05 16:38 ?1160次閱讀

    Redis 開(kāi)源社區(qū)持續(xù)壯大,華為為 Valkey 項(xiàng)目注入新的活力

    版本開(kāi)始,將原先比較寬松的 BSD 源碼使用協(xié)議修改為 RSAv2 和 SSPLv1 協(xié)議,意味著 Redis 在 OSI(開(kāi)放源代碼促進(jìn)會(huì))定義下不再是嚴(yán)格的開(kāi)源產(chǎn)
    的頭像 發(fā)表于 05-09 22:59 ?625次閱讀
    Redis <b class='flag-5'>開(kāi)源</b>社區(qū)持續(xù)壯大,華為<b class='flag-5'>云</b>為 Valkey 項(xiàng)目注入新的活力

    商業(yè)開(kāi)源MES+源碼+送可拖拽式數(shù)據(jù)大屏

    商業(yè)開(kāi)源MES+源碼+送可拖拽式數(shù)據(jù)大屏+開(kāi)發(fā)學(xué)習(xí)的好機(jī)會(huì)
    的頭像 發(fā)表于 04-15 11:21 ?832次閱讀
    商業(yè)<b class='flag-5'>開(kāi)源</b>MES+<b class='flag-5'>源碼</b>+送可拖拽式數(shù)據(jù)大屏

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

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

    基于Android13的AOSP源碼下載及編譯指南

    AOSP(Android Open Source Project)是Android操作系統(tǒng)的開(kāi)源項(xiàng)目,通過(guò)下載和編譯AOSP源碼,您可以獲得原始的Android系統(tǒng),并進(jìn)行定制和開(kāi)發(fā)。本教程將向您介紹如何下載AOSP源碼并進(jìn)行編
    的頭像 發(fā)表于 01-17 09:49 ?3581次閱讀
    基于Android13的AOSP<b class='flag-5'>源碼</b>下載及編譯指南

    Apache Doris聚合函數(shù)源碼解析

    筆者最近由于工作需要開(kāi)始調(diào)研 Apache Doris,通過(guò)閱讀聚合函數(shù)代碼切入 Apache Doris 內(nèi)核,同時(shí)也秉承著開(kāi)源的精神,開(kāi)發(fā)了 array_agg 函數(shù)并貢獻(xiàn)給社區(qū)。筆者通過(guò)這篇文章記錄下對(duì)源碼的一些理解,同時(shí)也方便后面的新人更快速地上手
    的頭像 發(fā)表于 01-16 09:52 ?931次閱讀
    Apache Doris聚合函數(shù)<b class='flag-5'>源碼</b>解析

    開(kāi)源獲獎(jiǎng)案例】四軸機(jī)械臂控制系統(tǒng)

    ——來(lái)自迪文開(kāi)發(fā)者論壇本期為大家推送迪文開(kāi)發(fā)者論壇獲獎(jiǎng)開(kāi)源案例——四軸機(jī)械臂控制系統(tǒng)。工程師采用T5L智能屏,基于DGUS軟件“旋轉(zhuǎn)指示”控件實(shí)現(xiàn)機(jī)械臂的實(shí)時(shí)位置顯示,并通過(guò)串口控制機(jī)械
    的頭像 發(fā)表于 12-23 08:13 ?1130次閱讀
    【<b class='flag-5'>開(kāi)源</b>獲獎(jiǎng)案例】四軸<b class='flag-5'>機(jī)械</b>臂控制系統(tǒng)

    獲取Linux內(nèi)核源碼的方法

    關(guān)鍵功能,今天小編就給各位小伙伴介紹一下如何獲取Linux內(nèi)核源碼。獲取Linux內(nèi)核源碼的渠道Linux有一個(gè)龐大的開(kāi)源社區(qū),每個(gè)人都可以向開(kāi)源社區(qū)提交代碼。由
    的頭像 發(fā)表于 12-13 09:49 ?605次閱讀
    獲取Linux內(nèi)核<b class='flag-5'>源碼</b>的方法

    華為 CodeArts?開(kāi)源治理服務(wù),解鎖軟件安全新標(biāo)準(zhǔn)

    在數(shù)字化時(shí)代,軟件的安全性日益受到關(guān)注,而開(kāi)源軟件的快速發(fā)展也帶來(lái)了新的挑戰(zhàn)。再次背景下,華為開(kāi)源治理服務(wù)華為開(kāi)源治理服務(wù) CodeAr
    的頭像 發(fā)表于 12-10 21:00 ?927次閱讀
    華為<b class='flag-5'>云</b> CodeArts?<b class='flag-5'>開(kāi)源</b>治理服務(wù),解鎖軟件安全新標(biāo)準(zhǔn)

    php的源碼是什么開(kāi)源語(yǔ)言

    PHP的源碼是用C語(yǔ)言編寫的,是一種開(kāi)源的服務(wù)器端腳本語(yǔ)言。下面是關(guān)于PHP源碼的詳細(xì)介紹。 一、PHP簡(jiǎn)介 PHP(全稱:PHP: Hypertext Preprocessor)是一種開(kāi)源
    的頭像 發(fā)表于 12-04 16:11 ?1587次閱讀