1. 程式人生 > 資訊 >鐵蛋變強!小米官方公佈仿生四足機器人 CyberDog OTA 升級詳細內容:遛狗...

鐵蛋變強!小米官方公佈仿生四足機器人 CyberDog OTA 升級詳細內容:遛狗...

2 月 12 日訊息,今年 1 月份,小米仿生四足機器人 CyberDog—— 鐵蛋,進行了一次 OTA 升級,本次鐵蛋升級都解鎖了哪些新功能?今天小米官方帶來了詳細介紹。

下面是視訊:

App 快速連線

新增快速連線功能。當首次通過藍芽連線鐵蛋後,鐵蛋在後續開機時會自動連上之前使用的 Wi-Fi,若此時手機也連線上了該 Wi-Fi,App 可直接通過快速連線功能搜尋到已連線到該 Wi-Fi 的鐵蛋,無需再連線藍芽,連線速度可提高到 5 秒左右。

遛狗步態

  • 步態中增加遛狗模式,可通過狗繩牽引操作機器人運動,在 App 中點選遛狗即進入該模式。

  • 狗繩推薦安裝於機器人頸部。

  • 進入遛狗模式後,鐵蛋會跟隨牽引力的方向執行前進、後退、轉彎等動作。

  • 前向或者側向牽引時,機器人頭部沿著牽引力方向運動,後向牽引時,機器人尾部沿著牽引方向運動。

  • 牽引力為零,機器人原地踏步,牽引力越大,運動速度越快。

  • 當牽引前進速度大於一定值後,機器人會自主前進,可通過狗繩調整方向和減速。

  • 遛狗模式下,請保持狗繩處於可控範圍。

運動控制 SDK 介面

開放運動控制層 12 個關節電機的伺服控制介面,支援使用者基於 lcm 通訊協議適配和開發新的控制演算法。

SDK 程式碼見:https://github.com/ MiRoboticsLab。

使用者可參考 sdk 中 Example_MotorCtrl.cpp 編寫自己的控制程式碼後,按如下步驟在實際機器人上部署執行。

一、安裝依賴

1)安裝 lcm (本地部署時需要)

$gitclonehttps://github.com/lcm-proj/lcm.git$cdlcm$mkdirbuild$cdbuild$cmake../$make$sudomakeinstall

2)安裝 docker (運控部署時需要)

按照連結所附步驟進行安裝:https://docs.docker.com/ engine / install / ubuntu/

#給docker設定root許可權:sudogroupadddockersudousermod-aGdocker$USER

3)下載交叉編譯所需 docker 映象

$wgethttps://cdn.cnbj2m.fds.api.mi-img.com/os-temp/loco/loco_arm64_20220118.tar$dockerload--inputloco_arm64_20220118.tar$dockerimages

二、登入機器人

將本地 PC 連線至鐵蛋的 USB download type-c 介面 (位於中間),等待出現”L4T-README”彈窗

$ping192.168.55.100#本地PC被分配的ip$ssh[email protected]#登入nx應用板,密碼123$ssh[email protected]#登入運動控制板

三、修改模式

修改配置開關,啟用使用者控制模式,執行使用者自己的控制器:

$cd/robot#登入運動控制板後$./initialize.sh#拷貝出廠程式碼到可讀寫的開發區(/mnt/UDISK/robot-software),切換到開發者模式,僅需執行一次$#切換mode:1(0:預設模式,1使用者程式碼控制電機模式),重啟機器人生效$vi/mnt/UDISK/robot-software/config/user_code_ctrl_mod.txt

1)本地部署

執行在 pc 端 (linux) 難以保證實時 lcm 通訊,僅推薦編譯驗證和簡單位控測試。

注:通訊失敗時無法正常啟用電機控制模式 Motor control mode has not been activated successfully

$ping192.168.55.233#通過typec線連線Cyberdog的Download介面後,確認通訊正常$ifconfig|grep-B1192.168.55.100|grep"flags"|cut-d':'-f1#獲取該ip對應網路裝置,一般為usb0$sudoifconfigusb0multicast#usb0替換為上文獲取的168.55.100對應網路裝置,並配為多播$sudorouteadd-net224.0.0.0netmask240.0.0.0devusb0#新增路由表,usb0對應替換$mkdirbuild#進入sdk程式碼倉後$cdbuild$cmake..$make-j4$./Example_MotorCtrl

2)NX 應用板部署

因非實時系統,僅推薦編譯驗證和簡單位控測試。

$scp-rcyberdog_motor_sdk[email protected]:/home/mi/#原始碼入應用板,密碼123$ssh[email protected]$cd~/程式碼資料夾$mkdirbuild$cdbuild$cmake..$make-j2$ping192.168.55.233#測試通訊$./Example_MotorCtrl

3)運控板交叉編譯部署

為了能使編譯的檔案可以直接在機器人上執行,需要在特定的 docker 映象環境下編譯,具體步驟如下:

$dockerrun-it--rm--namecyberdog_motor_sdk-v/home/xxx/{sdk_path}:/work/build_farm/workspace/cyberdogcr.d.xiaomi.net/athena/athena_cheetah_arm64:2.0/bin/bash$cd/work/build_farm/workspace/cyberdog/$mkdironboard-build$cdonboard-build$cmake-DCMAKE_TOOLCHAIN_FILE=/usr/xcc/aarch64-openwrt-linux-gnu/Toolchain.cmake..$make-j4$exit

編譯成功後, 將生成的.so 檔案 libcyber_dog_sdk.so 和可執行檔案 Example_MotorCtrl 拷貝到運控 / mnt / UDISK 目錄下。

$ssh[email protected]"mkdir/mnt/UDISK/cyberdog_motor_sdk"$cd~/{sdk_path}/onboard-build$scplibcyber_dog_motor_sdk.soExample_MotorCtrl[email protected]:/mnt/UDISK/cyberdog_motor_sdk$ssh[email protected]$cd/mnt/UDISK/cyberdog_motor_sdk$exportLD_LIBRARY_PATH=/mnt/UDISK/cyberdog_motor_sdk#設定so庫路徑變數$./Example_MotorCtrl

如何新增開機自啟動:

將此配置檔案 (注意結尾逗號) 修改重啟運控程式 / mnt / UDISK / manager_config / fork_para_conf_lists.json

例:"600003": {"fork_config":{"name": "Example_MotorCtrl", "object_path": "/cyberdog_motor_sdk/", "log_path": "","paraValues": ["", "",""] }}

注:電機無 CAN 匯流排超時失能,故結束時需先暫停 MotorCtrl 程序,超時後自動趴下。

四、錯誤標誌位含義

//bit0:lostcontrolover10mswarn,thetauandqd_deswillbedividedby(over_time/10.0)//bit1:lostcontrolover500mserr,enterhighdampingmode,kp=0,kd=10,tau=0;//bit2:abadmotordiffangleover8degrees,andlimittoit//bit3:hipmotordiffangleover10degrees,andlimittoit//bit4:kneemotordiffangleover12degrees,andlimittoit

注:為了避免通訊超時導致危險,報 err_flag: 0x02 communicate lost over 500ms 後先排除故障, 關閉 Example_MotorCtrl 例程程序, 再重啟運控程式或者直接重啟運控板才能清除錯誤。

#重啟運控程式:ssh[email protected]"ps|grep-E'Example_MotorCtrl'|grep-vgrep|awk'{print\$1}'|xargskill-9"#需先於主程序暫停,避免急停ssh[email protected]"ps|grep-E'manager|ctrl|imu_online'|grep-vgrep|awk'{print\$1}'|xargskill-9"ssh[email protected]"exportLD_LIBRARY_PATH=/mnt/UDISK/robot-software/build;/mnt/UDISK/manager/mnt/UDISK/>>/mnt/UDISK/manager_log/manager.log2>&1&"#重啟運控板系統:ssh[email protected]"reboot"

04 低功耗模式

機器在趴下後 passive 模式,電機檢測控制指令,在沒有電機位置速度力矩的控制情況下連續檢測 15 秒後,電機進入低功耗模式,此時功耗降低,且無電機噪音,在收到控制指令後,電機自動恢復到正常模式。

05 圖傳延遲

修改 App 端播放參數,通過減小圖傳影象的出隊時間並使用軟解碼的方式來降低圖傳延遲時間,同等網路情況下減小圖傳延遲 500ms 左右。

06 拎狗保護

由於機器人在行走和姿態展示過程中提起會進入急停,為了提高使用者體驗,本次升級提供了了提起保護功能;

提起保護僅在姿態展示、緩跑、小跑、奔跑、跳跑、跳躍、遛狗和轉圈功能中起作用,其他功能不會觸發提起保護;

若要使用這項功能,請將機器人高度設定為 0.30m;

在上述功能執行過程中,使用者可以通過背部的把手將機器人提起,提起後機器人會打斷當前功能並進入高阻尼模式;

進入高阻尼模式後 App 上不會有提示,但是可以明顯感覺到機器人腿部各個關節已經鎖定,並有較大阻尼;

進入高阻尼模式後,使用者可以任意將機器人移動,待需要繼續使用時,將機器人放置在地面上,機器人會自動恢復被打斷的功能;

注意事項

  • 舞蹈功能沒有開放提起保護功能,在舞蹈中提起機器人,機器人仍然會進入急停;

  • 儘量不要在快速運動過程中提起機器人,此情況可能進入急停;

  • 在姿態展示過程中機器人足底有可能在地面滑移,滑移幅度過大的情況可能觸發提起保護;

  • 在切換功能後或機器人站定後,提起保護有 1 秒延時,請在延時後使用提起保護功能;

  • 在機器人行走過程中讓機器人抬頭或低頭會關閉提起保護功能;

  • 進入高阻尼模式後,儘量平穩將機器人放置在地面上使其恢復原有功能;

  • 在高阻尼模式下不要切換功能或推動搖桿。