ROS 2 実践コース ── つながりを観察し、設計し、確かめる
ROS 2 は、ロボットのソフトウェアを「小さなプログラム(ノード)をつないだもの」として作るためのしくみです。このコースでは、自分の Windows PC に講義用の環境を用意し、前半はシミュレーター(turtlesim)で、後半は四足歩行ロボット DOGZILLA S2 の実機で、ROS 2 を学びます。
いまはノードのコードを AI に頼めば数秒で書いてもらえます。一方で、そのノードが設計どおりにつながっているか、届いているか、止まるべきときに止まるかは、動いているシステムを自分で調べないと分かりません。そこでこのコースでは、コードは AI に書かせてかまわないことにして、手を動かす時間を「観察する・設計する・確かめる」ことに使います。
このコースで身につけること
- システムは、トピックでつながった小さなノードの集まりであること(計算グラフ)
- トピック名・型・周期を先に決めれば、中身を誰が書いてもつながること(インターフェースは契約)
- remap・名前空間・パラメータ・launch で、コードを変えずにつなぎ方を変えられること
- トピック・サービス・アクションを、頼みたいことに合わせて使い分けること
ros2コマンドや rqt_graph で、動いているシステムを外から調べられること- ロボットを止める仕組みは、自分のコードではなくロボット側に置くこと
このコースの受け方
| 授業で受ける人 | ひとりで学ぶ人 | |
|---|---|---|
| 進め方 | 授業の週に合わせて、1 回に 1 記事ずつ進めます | 表の上から順に、自分のペースで進めます |
| ロボット | 第 3 週から、授業で用意する DOGZILLA S2 を 1 人 1 台使います | 表の「ロボット」が「不要」の回は、PC だけで進められます。ロボットを使う回は、DOGZILLA S2 を用意し、ロボット側の準備(準備中)を済ませてから進めます |
| 「先生の合図」と書いてあるところ | 先生が「始めてよい」と言うまで、ロボットを動かしません | ほかの人に見ていてもらい、周りに人や物がなく、すぐに電源を切れる状態にしてから進めます |
| 困ったとき | 先生に聞きます | 各記事の「つまずきやすい点」を見ます |
カリキュラム
| 授業での時期 | 内容 | ロボット |
|---|---|---|
| 授業の前 | #00 PC の準備(Docker Desktop と講義用の環境) | 不要 |
| 授業の前 | #01 ROS 2 とは何か | 不要 |
| 授業の前 | #02 Linux の端末に慣れる | 不要 |
| 第 1 週 1 コマ目 | talker と listener を壊して調べる(準備中) | 不要 |
| 第 1 週 2 コマ目 | 設計シートを書いて AI に作らせ、ツールで確かめる(準備中) | 不要 |
| 第 2 週 1 コマ目 | turtlesim で 3 つの通信パターンを試す(準備中) | 不要 |
| 第 2 週 2 コマ目 | コードを変えずにつなぎ替える(launch・名前空間・remap)(準備中) | 不要 |
| 第 3 週 1 コマ目 | ロボットにつないで、境界の向こうを調べる(準備中) | 使う |
| 第 3 週 2 コマ目 | 安全の層を理解してから歩かせる(準備中) | 使う |
| 第 4 週 1 コマ目 | 座標と時間を調べる(QoS・TF・タイムスタンプ)(準備中) | 使う |
| 第 4 週 2 コマ目 | 記録して、ロボットなしで考える(rosbag)(準備中) | 前半だけ |
| 第 5 週 1 コマ目 | センサーから行動へ(scan_avoid の構造と実測)(準備中) | 使う |
| 第 5 週 2 コマ目 | まとめ課題を設計する(知覚・判断・行動に分ける)(準備中) | 一部 |
| 第 6 週 1 コマ目 | 組み上げて、3 段階で試験する(準備中) | 使う |
| 第 6 週 2 コマ目 | 発表と、SLAM・Nav2 のデモ(準備中) | 使う |
授業では、各週 90 分 × 2 コマで進めます。1 コマ目は、わざと食い違いや通信切れを起こして原因を調べる実験、2 コマ目は、設計シートを書いて AI に作らせ、ツールで確かめる課題です。
延長コース(選択制)
第 6 週までを終えたあとに、興味や時間に合わせて選んで受けるコースです。全部を順に受ける必要はありません。どれも同じ PC の環境とロボットを使い、回の番号はコースごとに A1・A2 … のように振ります。
| コース | 内容 | 週 | 前に受けるコース | ロボット |
|---|---|---|---|---|
| 延長 A | ROS 2 の部品を自分で作る(自作メッセージ・サービス、executor・launch・テスト)(準備中) | 2 週 | なし | 不要 |
| 延長 B | 脚の運動学(URDF・TF・順運動学・逆運動学・IMU)(準備中) | 3 週 | なし | 後半だけ |
| 延長 C | 画像認識(カメラ・OpenCV・MediaPipe・YOLO)(準備中) | 3 週 | なし | 使う |
| 延長 D | LLM とロボット(ツール呼び出しと安全の層)(準備中) | 3 週 | 延長 A | 使う |
| 延長 E | 地図と自律移動(SLAM・Nav2)(準備中) | 3 週 | なし | 使う |
| 延長 F | 総合制作(班で設計し、分担して作り、つないで床で動かす)(準備中) | 2 週 | 延長のどれか 1 つ | 使う |
AI の使い方のルール
- AI に渡すのは「設計シート」です。ノード名・入出力のトピック・型・周期・パラメータ・止まる条件を、先に自分で決めます。
- 動いたかどうかではなく、設計シートどおりかを確かめます。
ros2 node info・ros2 topic info -v・rqt_graph の結果を、設計シートと並べて残します(授業ではこれを提出します)。 - ロボットに出す前に、シミュレーションか記録データ → 机の上での確認 → 床の順に進めます。
- 説明できない部分があるコードは、ロボットに出しません。「何を受け取り、何を出し、いつ止まるか」を答えられるようにしておきます。
用意するもの
- Windows 11(または 10)の PC。メモリ 8 GB 以上、C: ドライブに十分な空きが必要です(#00 のチェックツールで確かめます)
- Docker Desktop(無料)
- ロボットを使う回では、Yahboom の四足歩行ロボット DOGZILLA S2。授業では 1 人 1 台を用意します
ROS 2 の各機能を 1 つずつ読み物として確かめたいときは、ROS2コースの各章もあわせて使ってください。
