テーマ:ロボットと生きる未来をデザインするハッカソン(RobotMateHub)
おもてなしの所作と会話で、"ちょっと嬉しい" を届けるロボット。
効率化のためのロボットではなく、人の心に寄り添うロボットを目指しました。 「やらなくていいこと」ではなく、「やってくれたら嬉しいこと」 にこそ価値があると考え、 和の所作(礼・拍手・お点前)を Unitree G1 に実装しました。
UnitreeG1_hackathon/
├── demo/ # G1 実機動作スクリプト
│ ├── pre/ # 定義済みアクション系デモ
│ │ ├── nirei_nihakushu_ichirei.py # 二礼二拍手一礼
│ │ ├── omotenashi.py # おもてなし歓迎シーケンス
│ │ ├── otemae.py # お点前(茶道風)
│ │ ├── clap.py # 拍手単体テスト
│ │ ├── test_audio.py # 音声動作確認
│ │ ├── seiza.py # 正座
│ │ ├── chasen_motion.py # 茶筅モーション
│ │ ├── ojigi.py # お辞儀
│ │ ├── ippon.wav # 音声ファイル
│ │ └── clap.wav # 音声ファイル
│ ├── ippon_jime.py # 一本締め(TTS + Clap)
│ ├── play_harebare.py # CSVモーション再生
│ └── harebare.csv # モーションデータ
├── movie2motion/ # 動画 → G1モーションCSV 生成
│ └── movie2motion.ipynb # Colaboratory用 Notebook
├── slides/ # 発表スライド
│ └── index.html
├── unitree_sdk2_python/ # Unitree Python SDK
└── reference/ # サンプルコード
# unitree_sdk2_python(Python 3.10 推奨)
pip install -e ./unitree_sdk2_pythonネットワーク設定
| デバイス | IP |
|---|---|
| 開発PC | 192.168.123.99 |
| Jetson Orin(G1内部) | 192.168.123.164 |
python demo/pre/<スクリプト名>.py <ネットワークインターフェース名>
# 例
python demo/pre/omotenashi.py eth2| 環境 | インターフェース確認 | 例 |
|---|---|---|
| WSL2 | ip a |
eth2 |
| macOS | ifconfig |
en11 |
注意事項
- 実行前にロボット周辺 1m 以上の空間を確保してください
- Enter 入力後にモーションが開始します
- 緊急停止はコントローラーの
L2+Aで行ってください
神社参拝の作法を再現します。
| ステップ | 動作 | アクション |
|---|---|---|
| 1 | 一礼 | LowStand |
| 2 | 二礼 | LowStand |
| 3 | 一拍手 | clap |
| 4 | 二拍手 | clap |
| 5 | 一礼 | LowStand |
python demo/pre/nirei_nihakushu_ichirei.py eth2来客を迎える歓迎シーケンスです。
| ステップ | 動作 | アクション |
|---|---|---|
| 1 | お辞儀 | LowStand |
| 2 | いらっしゃいませ | high wave |
| 3 | ようこそ | heart |
| 4 | よろしくお願いします | shake hand |
| 5 | お辞儀 | LowStand |
python demo/pre/omotenashi.py eth2茶道の所作を定義済みアクションで表現します。
| ステップ | 動作 | アクション |
|---|---|---|
| 1 | 一礼 | LowStand |
| 2 | お湯を注ぐ | right hand up |
| 3 | 茶筅で点てる | clap |
| 4 | お茶をどうぞ | shake hand |
| 5 | 一礼 | LowStand |
python demo/pre/otemae.py eth2TTS アナウンス → Clap × 3回 の一本締めシーケンスです。
| ステップ | 内容 |
|---|---|
| TTS | "Everyone, thank you for your hard work today. Please clap your hands." |
| TTS | "Hey!" |
| Clap × 3 | 一本締め |
| TTS | "Thanks for today, yeah!" |
python demo/ippon_jime.py eth2harebare.csv の関節角度データを arm_sdk で再生します。
# 基本(30fps・等速)
python demo/play_harebare.py eth2
# fps・速度を指定
python demo/play_harebare.py eth2 30 0.5 # 0.5倍速おもてなしの所作をロボットに直接実装するのは難しい。 そこで 人の動画からモーションを自動生成する仕組み を構築しました。
mp4 動画
↓ Step 1-2: GEM-X
SOMA BVH(77関節 3Dポーズ)
↓ Step 3-4: SOMA Retargeter
G1 関節CSV(29 DOF)
movie2motion/movie2motion.ipynb を Google Colaboratory で開いて実行してください。
参考: NVlabs/GEM-X
※ 今回は安定性が確保できず実機動作は断念。Colaboratory の構築と CSV 生成までを実装・公開しています。
| 項目 | 値 |
|---|---|
| 自由度(本体) | 29 DoF |
| 腕 | 7 DoF × 2(肩3+肘1+手首2+手先1) |
| 腰 | 3 DoF |
| 脚 | 6 DoF × 2 |
| 身長 | 約127cm |
| 計算モジュール | Jetson Orin NX 16GB |
| 低レベル通信 | unitree_hg(DDS) |
| 制御周波数 | 500Hz |