我到處說小米沒開源,我真沒素質,其實人家已經開源了...不過是20個月前開的,是我的鍋. 小米機械狗CyberDog云體驗 其實在當時我已經寫一個這樣的與體驗的文章,聽著群里面的慫恿還在微博上面私信了雷軍(真的是屬于教唆犯罪了),結果當然是沒有尿我啦~ 不過之后也有讀者加我給我展示他買的狗子,哈哈哈,翻跟頭的聲音有點大了,之后AirLAB實驗室也有一只狗子,不過我也沒有去摸了,遺憾~ 好了,閑話不多說讓我們開始今天的這個文章主題.Cyberdog主要使用了MIT的開源代碼Mini Cheetah(也就是MPC) 以及 ROS 2的開源平臺制作的一個機器人.
傳感器包括:Intel Realsense D450深度攝像頭、AI交互相機、雙目超廣角相機、TOF傳感器、環境光傳感器、超聲波傳感器、慣性測量單元、GPS模組、地磁傳感器、光流計、6MIC環型陣列、觸摸傳感器.
CyberDog全身的自由度是12,單腿的自由度是3,即每只腳大腿關節處有兩個電機,小腿關節處有一個電機,共12個電機。
12個電機的組合讓CyberDog可以自由地做出奔跑、跳躍、空翻等高難度動作。據悉,這12個伺服電機均由小米自研,單個最大扭矩達32N·m,最大轉速為220rpm,可以讓這只14KG重的CyberDog以11.5km/h的速度前進.
CyberDog“小腦”使用的國內知名芯片設計廠商全志科技的Allwinner MR813。MR813將負責MPC算法的執行、運動控制、電源系統管理和OTA系統管理等工作。即CyberDog的四只腳以及上面的12個伺服電機,都將在MR813的控制下有序地行動,讓CyberDog不會出現順拐或者“撲街”。也就是說通過全志MR813芯片對全身的運動模塊進行控制。
MR813是全志針對運動機器人市場推出的高性能SoC,4核A53架構,主頻高達1.6GHz,擁有豐富的音視頻接口和運動驅動接口。
MR系列芯片已經在在掃地機器人產品上被廣泛應用,其中包括小米、石頭、追覓等。
藍色的全志的東西
就是這樣
Github上面的話是發現了一個新的庫,是關于電機控制的固件的,我還沒有看代碼,不知道是什么樣的.
好了,今天的主角是Cyberdog.一開始的代碼其實是小米自己的Gitlab服務器(應該是),在后面的時候遷移到Github上面. 我們從軟件的構架圖開始代碼的研究之旅,你也不要問我有沒有用,因為沒有人寫,寫也是論文的解讀,個人覺得做產品最可貴的事情就是把論文變成代碼.可能這些文章就像老師說的一樣,由于你的沒有耐心沒有寫下去,但是總歸是有用的.
這個是軟件的構架圖
系統框圖
這個看的可能更清晰
注意,這里兩個板子之間的通訊使用網口。
這個是在左上角的一部分節點,作用是使用手機的APP控制,至于藍牙是模塊實現了:注冊藍牙GATT service,發送BLE廣播,等待手機APP連接成功后,接收APP發送的Wifi信息,實現Wifi的聯網操作,并返回聯網結果,以及通過APP提供的命令,實現藍牙手柄的掃描,連接,達到通過手柄控制CyberDog的目的。
手機這里我也沒有用過,按照這個寫法,應該是可以在手機這里實時的看到狗子回傳的畫面,使用的RTSP,這個具體的控制使用的是GRPC.SHM是什么?我不知道,有同學可以給我解讀一下.
CAN是這里使用的通信方式,至于是什么作用,這里就看命名方式就行
就像這樣Node的作用,自己看名字吧,沒什么好說的
燈傳感器,語音助手,觸摸檢測,Intel的相機都是單獨的節點
這個是電池,還有語音功能,遠程的控制命令
定位,建圖,追蹤的功能在這里
上面的所有服務都集成到DDS,做統一的處理
目前要讀的源碼就是這些,太多了,朋友
核心的庫目前就是這三個
最核心的事情都放在這里,ROS2
通用類:
athena_bringup:啟動系統相關,在ROS 2的Launch啟動系統上設計了更簡約的啟動項管理,對啟動腳本(Python3)和啟動內容進行了隔離。通過簡單的參數配置,新的節點或新的進程便可被添加到啟動項,而無需修改腳本內容。同時也支持參數管理、調試和開關等功能。
athena_grpc:機器人與外部通訊的媒介,目前與手機App進行連接是基于GRPC的。
athena_utils:本項目的通用功能倉,包括基于cascade_lifecycle修改的LifecycleNode基類,和傳感器相關節點共用的基類等。
media_vendor:多媒體相關應用需要使用的CMake配置項。
toml11_vendor:toml11的橋接包。
感知類
athena_bms:CyberDog上的電池管理模塊,主要負責電池信息的接收與分發。
athena_body_state:該模塊實現了整機運動狀態的感知功能,并通過BodyState上報posequat和speed_vector兩種message的數據(posequat表示整機姿態四元數;speed_vector表示整機運動的瞬時速度,單位:m/s)。
athena_lightsensor:該模塊創建了機器人感知系統中Light Sensor的service和publisher,當機器人需要感知周圍環境光的強度時,可通過上層決策層啟動該service和publisher,獲取環境光照度信息。
athena_obstacledetection:該模塊創建了機器人感知系統中Ultrasonic Sensor的service和publisher。
athena_scenedetection:該模塊為機器人提供場景檢測功能,通過定位芯片獲取當前位置信息,同時通過衛星信號質量判斷機器人當前處于室內或室外。
交互類:
bluetooth:該模塊實現了:注冊藍牙GATT service,發送BLE廣播,等待手機APP連接成功后,接收APP發送的Wifi信息,實現Wifi的聯網操作,并返回聯網結果,以及通過APP提供的命令,實現藍牙手柄的掃描,連接,達到通過手柄控制CyberDog的目的。
wifirssi:該模塊的主要功能是創建定時任務,實時查詢當前已連接Wifi的信號強度,并通過ros2的topic通訊進行傳輸。
audio_base:該模塊用于播放多段或單段不定長PCM音頻數據、wav格式音頻文件,其底層實現為SDL2與SDL_mixer。
audio_interaction:該模塊用于實現整個音頻模塊的交互部分,主要包括與其它模塊之間關于通用播放的交互、語音助手相關控制與交互功能和與APP(grpc)之間關于音量調解的交互功能。
athena_audio
athena_camera:該模塊基于NVIDIA Argus和ROS 2實現了相機的基礎功能,包括拍照和錄像等,并為其他模塊(視覺SDK、圖傳等)提供調用接口。
athena_led:該模塊用于統一決策系統所有的LED燈效請求,基于ROS2 Service以及sensor_utils類實現,通過定義不同client的LED消息優先級以及timeout來實現對CyberDog頭燈和尾燈的控制顯示功能。
athena_livestream
athena_touch:該模塊提供了topic為TouchState的publisher, 繼承于athena_utils::LifecycleNode.
目前支持單指單擊報LPWG_SINGLETAP_DETECTED 和單指長按3s報LPWG_TOUCHANDHOLD_DETECTED事件。
athena_wireless
決策類:
athena_decisionmaker:面向業務層,負責實現具體業務功能。目前提供了automation_manager、ception_manager、interaction_manager和motion_manager。分別用于自動化功能、感知功能、人機交互功能和運動功能的管理和決策。該四個模塊均繼承cascade_manager,并在基礎上根據業務功能稍作改動。
athena_decisionutils:決策相關功能的基類和工具類集合,負責實現通用功能。目前提供了cascade_manager,該模塊繼承于athena_utils::LifecycleNode,具備級聯/并聯和單點控制的功能,可以快速管控其作用域下的節點的啟動和關閉。
接口類:
athena_interfaces:接口總抽象包。
automation_msgs:自動化功能相關接口。
cascade_lifecycle_msgs:級聯節點相關接口。
ception_msgs:感知功能相關接口。
interaction_msgs:交互功能相關接口。
motion_msgs:運動功能相關接口。
這個是開源的電機接口
SDK開放了電機驅動器和機身IMU傳感器接口,配合cyberdog 1.0.0.94及以上版本使用,方便用戶進行運動控制的二次開發。
具體的一個接口
通用的接口
在電機的內部還有很多的數據結構
電機的控制信息
審核編輯 :李倩
-
傳感器
+關注
關注
2550文章
51035瀏覽量
753076 -
開源
+關注
關注
3文章
3309瀏覽量
42471 -
機械狗
+關注
關注
0文章
18瀏覽量
4834
原文標題:小米Cyberdog源碼開源啦!
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論