一、宇樹SDK2整體介紹
宇樹機器人(Unitree)作為全球領先的四足機器人研發企業,其推出的unitree_sdk2是面向旗下Go2、H1、B2等系列機器人的第二代軟件開發工具包。該SDK提供了豐富的接口和示例代碼,支持開發者快速實現機器人控制、狀態獲取、傳感器數據處理等功能,是入門宇樹機器人開發的核心工具。

unitree_sdk2的核心優勢在于:
?跨平臺支持:兼容x86_64和aarch64架構的Ubuntu 20.04系統
?多機器人適配:統一接口支持Go2、H1、B2等多款機器人
?功能全面:涵蓋運動控制、狀態監測、視頻流獲取、語音交互等能力
?易于擴展:提供CMake集成示例,方便開發者搭建自定義項目
官方文檔中心(Unitree Document Center)提供了更詳細的技術文檔,建議作為開發過程中的重要參考。
二、SDK目錄結構與核心功能
1.目錄結構解析
unitree_sdk2的源碼結構清晰,主要包含以下核心目錄:
unitree_sdk2/├── example/ # 示例代碼目錄│ ├── go2/ # Go2機器人示例│ ├── h1/ # H1機器人示例│ ├── b2/ # B2機器人示例│ ├── state_machine/ # 狀態機控制示例│ └── wireless_controller/# 無線控制器示例├── include/ # 頭文件目錄│ └── unitree/robot/ # 機器人控制核心接口└── README.md # 環境配置與編譯說明
2.核心功能點
從示例代碼中可以梳理出SDK的核心功能:
(1)基礎控制功能
?運動控制:支持機器人站立(StandUp())、下蹲(StandDown())、移動(Move(vx, vy, vw))等動作
?步態切換:通過SwitchGait()實現不同運動模式(如慢走、快跑、爬樓梯)的切換
?速度控制:通過SpeedLevel()調整運動速度等級
(2)狀態獲取功能
?機器人狀態:通過RobotStateClient獲取關節角度、IMU數據、電池狀態等
?服務狀態:通過ServiceList()查詢當前激活的服務列表及運行狀態
?傳感器數據:支持獲取攝像頭圖像(VideoClient)、超聲波等傳感器數據
(3)高級功能
?軌跡跟蹤:通過TrajectoryFollow實現預設路徑的精確跟蹤
?語音交互:通過VuiClient控制機器人的語音交互模塊
(4)開發輔助功能
?日志系統:支持自定義日志輸出路徑和格式
?參數配置:通過YAML文件加載機器人控制參數
?線程管理:提供周期性控制線程封裝,簡化實時控制邏輯
三、環境搭建步驟
1.系統要求
?操作系統:Ubuntu 20.04 LTS
?架構:x86_64(開發機)或aarch64(機器人本體)
?編譯器:GCC 9.4.0
2.依賴安裝
執行以下命令安裝必要依賴:
apt-getupdateapt-getinstall-y cmake g++build-essential libyaml-cpp-dev libeigen3-dev libboost-all-dev libspdlog-dev libfmt-dev
3.編譯與安裝
(1)編譯示例代碼
mkdirbuildcdbuildcmake ..make
(2)安裝SDK到系統目錄
# 安裝到默認路徑sudo make install# 或指定安裝路徑cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unitree_roboticssudo make install
(3)項目集成
參考example/cmake_sample中的配置,在自定義項目的CMakeLists.txt中通過以下方式引入SDK:
find_package(unitree_sdk2 REQUIRED)target_link_libraries(your_project unitree_sdk2)
四、常見問題與解決方法
1.編譯錯誤
?問題:CMake版本不足
解決:升級CMake至3.10以上版本:sudo apt-get install cmake --upgrade
?問題:依賴庫缺失
解決:檢查是否已安裝所有依賴,特別是libyaml-cpp-dev和libeigen3-dev
2.運行時錯誤
解決:運行示例時需指定網絡接口(如eth0),例如:./go2_robot_state_client eth0
?問題:API版本不匹配
解決:檢查客戶端與服務器的API版本是否一致,通過GetApiVersion()和GetServerApiVersion()驗證
?問題:服務調用失敗
解決:確保機器人已啟動對應服務,可通過ServiceList()查詢服務狀態
3.硬件相關問題
?問題:H1機器人關節跟蹤實驗失敗
解決:必須先將機器人懸掛起來再運行測試,避免硬件損壞
?問題:運動指令無響應
解決:檢查機器人是否處于正確模式(如運動模式需先激活sport_mode)
五、入門實戰建議
1.從示例開始:先運行基礎示例(如go2_stand_example),熟悉機器人控制流程
2.調試工具:利用示例中的日志輸出和狀態打印功能,理解數據流向
3.模塊化學習:
?運動控制:重點研究go2_sport_client.cpp
?狀態獲取:分析go2_robot_state_client.cpp
?低電平控制:參考h1/low_level目錄下的示例
1.漸進式開發:先基于現有接口實現簡單功能,再逐步深入到自定義控制算法
宇樹SDK2為開發者提供了通往機器人開發的便捷路徑,無論是高校科研、企業應用還是個人興趣,都能通過這個工具包快速實現創意。動手實踐是最好的學習方式,不妨從編譯第一個示例開始,開啟你的機器人開發之旅吧!
-
機器人
+關注
關注
213文章
31007瀏覽量
221811 -
宇樹科技
+關注
關注
1文章
51瀏覽量
806
發布評論請先 登錄
入門宇樹機器人開發:從SDK源碼探索到實戰操作
評論