この記事の要点
- SDK は、自分たちのプログラムからロボットの状態を読み、動きを指令するための開発キットで、Unitree は unitree_sdk2、Booster は booster_robotics_sdk を GitHub で公開しています。
- 低レベル制御は、関節(モーター)ごとに目標の角度・速度・ゲイン(kp・kd)・トルクを送る使い方で、立つ・歩くなどの動作を指令する高レベル制御とは分かれています。
- ロボマで扱う機種のうち開発用 SDK に対応しているのは、Booster K1・T2 の全グレードと、Unitree G1 EDU の各グレード・H2 EDU・H2 Plus です。
- Unitree G1(Basic)・G1 Pro・G1+・H2 は SDK 非対応で、Unitree R1 シリーズはカタログに記載がないため、購入前の確認が必要です。
01SDK とは
ロボットの SDK(ソフトウェア開発キット)とは、自分たちのプログラムからロボットの状態を読み取り、動きを指令するためのライブラリとサンプルの一式です。ロボマの商品ページでは「開発用 SDK」の欄に対応・非対応を出しています。
Unitree と Booster は、どちらも SDK を GitHub で公開しています。どちらも DDS という通信の仕組みを使い、ロボットとパソコンの間でデータをやり取りします。
| 項目 | Unitree(unitree_sdk2) | Booster(booster_robotics_sdk) |
|---|---|---|
| 言語 | C++。Python は unitree_sdk2_python(Python 3.8 以上) | C++。Python は pip パッケージ booster_robotics_sdk_python |
| ビルド環境の OS | Ubuntu 20.04 LTS | Ubuntu 22.04 LTS |
| CPU | aarch64・x86_64 | aarch64・x86_64 |
| コンパイラ | gcc 9.4.0 | gcc 11.4.0 |
| 通信の仕組み | Cyclone DDS(Python 版は cyclonedds 0.10.2) | Fast DDS |
| サンプル | 機種ごとのフォルダ(g1・h2・go2 など)に高レベル・低レベルの例 | example/high_level と example/low_level に分けた例 |
02高レベル制御と低レベル制御の違い
高レベル制御は、立つ・座る・この速度で歩く、といった動作をメーカーの制御ソフトに任せて指令する使い方です。低レベル制御は、関節(モーター)ごとに目標の角度・速度・ゲイン・トルクを直接送る使い方です。
| 項目 | 高レベル制御 | 低レベル制御 |
|---|---|---|
| 送るもの | 動作の指令(立つ・伏せる、速度、姿勢、軌道) | 関節ごとの目標の角度(q)・角速度(dq)・ゲイン(kp・kd)・トルク(tau) |
| 読めるもの | ロボット全体の状態(位置・速度など) | 関節ごとの状態、IMU、バッテリーの電圧 |
| メーカーの運動サービス(sport_mode) | 動かしたまま使う | 指令がぶつからないよう、アプリで止めてから使う |
Unitree の G1 用の低レベル制御のサンプル(g1_ankle_swing_example)は、29個のモーターについて目標の角度・角速度・kp・kd・トルクを持ち、2ミリ秒ごとに rt/lowcmd という宛先へ指令を送り、rt/lowstate から状態を読みます。指令を送る前に、メーカーの運動制御を解除する手順も含まれています。
Booster の低レベル制御のサンプル(b1_low_sdk_example)は、ロボットを Prepare モードにしてから起動し、リモコンか API で Custom モードに切り替えて関節を制御する手順です。サンプルでは関節ごとに kp・kd・トルクの値を設定しています。
unitree_sdk2_python の低レベルのサンプルは、安全のために小さいゲイン(kp=10、kd=1)で1つの関節を0度に保ち、別の関節に1N·mのトルクをかけ続ける内容です。低レベル制御はメーカーの運動サービスを止めて使うため、メーカーのサンプルと手順書に従って、小さい値から試してください。
03ロボマで扱う機種の SDK 対応
SDK に対応しているかは、シリーズではなくグレードで決まります。公式リポジトリに機種名のフォルダ(g1 など)があっても、そのシリーズのすべてのグレードで使えるわけではありません。
- Booster:K1(Geek・Geek アップグレード・Education・Professional)と T2(Education・Pro)の全グレードが対応しています。
- Unitree G1:EDU の各グレード(Standard・Plus・Ultimate A〜F)が対応し、G1(Basic)・G1 Pro・G1+ は非対応です。
- Unitree H2:H2 EDU と H2 Plus が対応し、H2 は非対応です。
- Unitree Go2:EDU が対応(価格はお問い合わせ)、X は二次開発に一部対応、Air・Pro は非対応です。
- Unitree R1:SDK の対応状況はカタログに記載がありません。ご購入前にお問い合わせください。
| 機種 | 価格(税込) | 関節の数 | 開発用 SDK |
|---|---|---|---|
| Booster K1 Geek | ¥1,818,000 | 22軸 | 対応 |
| Booster K1 Education | ¥2,824,000 | 22軸 | 対応 |
| Booster T2 Education | ¥6,864,000 | 31軸 | 対応 |
| Booster T2 Pro P1 | ¥8,083,000 | 31軸 | 対応 |
| Unitree G1 | ¥3,578,000 | 23軸 | 非対応 |
| Unitree G1+ | ¥3,926,000 | 25軸 | 非対応 |
| Unitree G1 EDU Standard | ¥10,630,000 | 23軸 | 対応 |
| Unitree G1 EDU Plus | ¥12,949,000 | 29軸 | 対応 |
| Unitree H2 | ¥7,712,000 | 31軸 | 非対応 |
| Unitree H2 EDU | ¥16,759,000 | 31軸 | 対応 |
| Unitree H2 Plus | ¥23,973,000 | 31軸 | 対応 |
| Unitree R1 EDU | ¥2,829,000 | — | — |
「—」はカタログに記載がない項目です。関節の数が多いほど、低レベル制御で扱う関節も増えます。関節の数の読み方は ロボットの自由度(軸数)とは をご覧ください。
04始める前に確認すること
- グレード:選んだグレードが「開発用 SDK」に対応しているか、商品ページで確認します。
- 開発用パソコン:README のビルド環境は、unitree_sdk2 が Ubuntu 20.04 LTS、booster_robotics_sdk が Ubuntu 22.04 LTS です。
- ネットワーク:Unitree のサンプルは、ロボットにつないだネットワークインターフェースの名前(例 enp2s0)を指定して動かします。Booster K1 はギガビット Ethernet、T2 は Ethernet の外部ポートがあります(カタログ)。
- モードの切り替え:低レベル制御の前に、Unitree はアプリで高レベルの運動サービスを止め、Booster は Prepare モードから Custom モードに切り替えます。
- シミュレーション:Booster は Booster Studio(シミュレーション)を用意し、booster_deploy は同じ制御コードを MuJoCo のシミュレーションと実機で動かす仕組みです。Unitree も GitHub で unitree_mujoco を公開しています。
- 安全:Booster K1・T2 はソフト・ハードの緊急停止と、低電圧・関節温度の警告を備えます。Unitree は G1 の公式ページで、人との間に十分な安全距離を取るよう求めています。
ROS 2 から動かしたい場合は ROS 2 とは を、機種ごとの違いは ヒューマノイド比較 をご覧ください。研究の内容に合うグレードが分からない場合は、相談フォーム からお問い合わせください。
よくある質問
QSDK 非対応の機種でも、自分のプログラムで関節を動かせますか?
ロボマのカタログで SDK 非対応としている Unitree G1(Basic)・G1 Pro・G1+・H2 は、自分たちのプログラムで関節を動かす用途の候補になりません。関節を制御したい場合は、G1 EDU・H2 EDU・H2 Plus か Booster K1・T2 から選んでください。
QPython でも開発できますか?
できます。Unitree は unitree_sdk2_python(Python 3.8 以上)を、Booster は pip パッケージの booster_robotics_sdk_python を公開しています。
Q低レベル制御で気をつけることは何ですか?
Unitree はアプリで高レベルの運動サービスを止めてから、Booster は Prepare モードから Custom モードに切り替えてから使います。メーカーのサンプルは小さいゲインで試す内容なので、手順書に従い、人との距離を十分に取って試してください。
QUnitree Go2 は SDK に対応していますか?
Go2 EDU が対応しています(価格はお問い合わせください)。Go2 X は二次開発に一部対応し、Go2 Air と Go2 Pro は非対応です。
参考資料
この記事について:メーカーの公開資料と当店の商品データをもとに HiroshimAI株式会社 が作成しています。作成には AI を使い、仕様の数値は商品データと参考資料に照らして確認しています。価格は表示時点の税込価格で、商品データから自動で表示しています。




