
Unitree Go2 EDU のフロア巡回機能を 9 つの機能に分解してみた
はじめに
atsu です。
見回り業務を犬型ロボットで自動化できないかと考え、Unitree Go2 EDU 実機でフロアを巡回するソフトウェアを開発し、 動かしてみました。
以下の動画が、複数の巡回ポイントを障害物を回避しながら巡回している動画です。
本記事では巡回ロボットを9つの機能に分解して、それぞれが何を担当しているのかをざっくり眺めます。専門用語は最小限に絞り、 ロボット開発が初めての方でも読めるよう整理しました。各機能の中身や実装の話は別記事で深掘りします。
この記事でわかること
- 巡回ロボットの中身を「9つの機能」で理解できるようになる
- 各機能が何を担当していて、どう繋がっているかを把握できる
環境
- ロボット: Unitree Go2 EDU (Jetson Orin NX 16GB 搭載)
- 開発 PC: M3 Mac Pro
巡回シナリオ
人がいなくなったフロアで、犬型ロボットが1体で巡回します。歩く経路はあらかじめ設定した経由点(以降 WP)を順番に巡る形。 歩行中はずっとカメラで監視していて、人を見つければ警告音を鳴らして検知時の画像を保存します。何も起きなければ淡々と次のWPへ進みます。
文章で書くと単純ですが、中身は 9 つの機能が連動しています。
9 つの機能の全体像
巡回ロボットを役割ごとに9つに分けると次の通りです:
| # | 機能 | 何をする? | 使用ツール |
|---|---|---|---|
| 1 | マップを覚える | 部屋の地図を、 ロボットを一度歩かせるだけで自動生成 | slam_toolbox |
| 2 | 自分の場所を知る | 地図上で「今ロボットがどこにいるか」 を継続的に推定 | Nav2 AMCL |
| 3 | 目的地まで走る | 行きたい場所を指示すると、 経路を計算して歩く | Nav2 |
| 4 | 障害物を避ける | 動的な障害物 (人 / 椅子 / 物) を見て避ける | Nav2 costmap |
| 5 | 人を見つける | カメラ映像から「人が映っている」 を判定 | YOLOv8 (ultralytics) |
| 6 | 警告音を鳴らす | 検知に合わせて内蔵スピーカーから音を出す | audiohub (Unitree DDS API) |
| 7 | 記録を残す | 巡回中の全データを丸ごと録画 | rosbag2 |
| 8 | 遠隔から見る | 手元の Mac からロボットの状態をリアルタイムで監視 | Foxglove + rosbridge |
| 9 | 全部をまとめて動かす | 環境差を気にせず、 どこでも同じように動く | Docker (moby) |
これらの9つがどう繋がっているかを図にすると次の通りです。
各機能を1つずつ簡単に紹介します。
1. マップを覚える
ロボットが自律的に動くには、まず「自分のいる場所はこういう形をしている」 という地図が必要です。距離センサーで周囲を測りながら一回フロアを歩かせると、上から見た2Dの地図が自動で出来上がります。一度作って保存しておけば、同じフロアならずっと使い回せます。
2. 自分の場所を知る
地図ができても、ロボット自身が「いま地図のどこに立っているか」 を知らないと動けません。周囲の壁の形と地図上の壁の形を照らし合わせて、確率的に位置を当てていきます。起動直後は位置が定まりませんが、数秒〜数十秒で 1 点に収束します。
3. 目的地まで走る
「あの WP まで行ってほしい」 と渡すと、地図上で経路を計算し、 経路に沿って歩く速度指令を細かく出し続けます。行き詰まったら回復行動を取って迂回するなど、「経路追従」 という 1 つのまとまった行動として管理しています。
4. 障害物を避ける
事前に作った地図には固定の壁しか写っていません。巡回中に新しく現れた人や椅子は、距離センサーで見えた瞬間に「障害物」 として地図に重ねます。経路計画はその合成地図を使って迂回経路を引きます。
5. 人を見つける
Go2 内蔵のカメラで取った画像から、画像認識モデルで「人」 が映っているかをフレームごとに判定します。信頼度がしきい値を超えたら検知としてカウントし、続けて警告音と記録の処理に流れます。
6. 警告音を鳴らす
人を検知したら、 Go2 内蔵のスピーカーから短い警告音を 3 回鳴動させます。 警告音用の音声データをロボットに送り、 スピーカーから再生させる仕組みです。
7. 記録を残す
巡回中の位置 / 速度 / 距離センサー / カメラ画像など、 取れるものは全部録画します。 検知時には認識枠付きの画像や、 検知時刻・位置・信頼度などの詳細情報も別ファイルで保存します。 後から「この時刻、 この位置で、 この信頼度で人を検知した」 を全部突き合わせて追跡できます。
8. 遠隔から見る
ロボットの状況は、 手元の開発PCから可視化ツールに繋いでリアルタイムで眺められます。マップ・現在位置・経路・カメラ画像が一画面で見えるので、ログを取り直す手戻りが減ります。
9. 全部をまとめて動かす
Go2 は他の人と共有する開発機なので、機体本体には何もインストールしない方針にしています。 巡回に必要なソフト一式をまとめておいて、「これを起動するだけ」 で動くようにしています。後から「どの構成で走った巡回か」 を追跡できる仕組みも入れています。
さいごに
- 9 つの機能の組み合わせで簡単なフロア巡回ができました。
各機能の具体的な実装(使用ツール / 設定 / ハマりポイント)は別の記事で 1 つずつ深掘りしていきます。本記事は「ロボットがやっていることをどう分解できるか」 のざっくり地図として使ってもらえれば幸いです。










