【Unitree Go2】SDKの概要について【unitree_sdk2】

初めに


Go2 R&Dがついに日本上陸しました。
SDKもGo1の時から大幅アップデートしています。
本記事では、Go2 SDKのexampleの概略についてご案内します。

 

環境


環境は、次のようなものを想定しています。

  • 機種: Go2 R&D(Edu), R&D+(Edu+)(AIR/PROではないもの)
  • 実行コンピュータ:ubuntu20

※本記事は23/12/28時点でのものです。SDKは予期せぬタイミングでアップデートされることがございます。
https://github.com/unitreerobotics/unitree_sdk2/

 

1.環境設定


Go2の背中のOrinもしくは、LANケーブルで接続した外部PCで環境設定します。
具体的な設定方法については下記の記事をご覧ください:

  • Docking StationでのSDK or ROS2を使う(作成予定)
  • 外部PCでのSDK or ROS2を使う(作成予定)

 

2.SDKを使ってみる


2-1. SDKのフォルダ構成

SDKのフォルダ構成としては、exampleフォルダ内にサンプルコードが含まれており、それぞれ以下のような対応関係になります。

2-2. それぞれのexampleの概要
example名 Robotが動くか High or Low 備考 参考リンク
test_publisher 動かない DDSトピックの送信サンプル DDS_services
test_subscriber 動かない DDSトピックの受信サンプル DDS_services
high_follow_sin 動く High Level Path追従 sports_services
sportmode_test 動く High Level Path追従(他の動きの実装もあり) High_motion_control
low_level 動く Low Level Low Levelの例 Basic_services
wireless 動く JoystickコントロールをJoystickを使わずに行う(DDSトピックrt/wirelesscontrollerの配信) Get_remote_control_status
advanced_gamepad 動かない Joystickコントローラーの数値の読み取り(DDSトピックrt/wirelesscontrollerの受信) Get_remote_control_status
state_machine_example 動かない $ ./state_machine_example –param ../example/state_machine/params/ で使用可能。RobotのSTATESを、joystickに応じて変更する。その他Robotの状態の読み取り等 Basic_services
test_jsonize 動かない Jsonの使い方サンプル
robot_state_client_example 動く High Level ロボットの状態の取得 RobotStateClient
sport_client_example 動く High Level 速度指定でのシンプルなHigh Level制御。関節ロック状態だと動かないため、joystick操作したら動くような状態になっていることを確認してから行う。前方方向に0.5m/sで進み続ける。ctrl+cで止める DDS_communication sports_services
video_client_example 動かない High Level 内部ヘッドカメラ画像の取得/保存 Multimedia_Services
vui_client_example 動かない High Level 内部ヘッドライトへの指令 VuiClient Light_control
2-3. SDKの概説

sdkが一新され、Go1に比べて機能が充実しています。
特にGo1まででは実装されなかった、SDKを用いた頭部LEDの指令やカメラ画像の取得、path追従が可能になっています。またexampleにはありませんが、lidarの情報取得も行えるようになりました。(LiDAR_service

Go1と同じようなイメージで使いたい場合は、sport_client_exampleがそれに当たります。IMUの情報などRobotの状態の受信については、Go1の時にはあったHighStateというものはなくなりSportModeState(rt/sportmodestate)もしくはLowState(rt/lowstate)から取得可能です。
特にインクルードファイルgo2/sport/sport_client.hppや、公式ドキュメントsports_servicesを参考にしてください。

 

おわりに

Go2のSDKのexampleを一通り見てきました。
この記事が少しでも役に立てたのなら幸いです。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です