🟦 完全版:セットアップ手順書(初心者〜中級者向け)
(Moorebot Scout × ROS1 Noetic × WSL2 + VS Code) を作成します。 「これさえ読めば必ず成功する」 ことを目的として、 抜け漏れ無しで、工程書レベルの内容になっています。==================================================
🟦 Moorebot Scout と PC を連携するための完全手順書
==================================================
📌 想定環境
- Windows 10 / 11
- WSL2(Linux 仮想環境)
- Ubuntu 20.04(Focal)
- ROS1 Noetic
- VS Code
- Moorebot Scout(ROS1 マスター搭載)
0. なぜ Ubuntu 20.04 を使うのか(重要)
ROS Noetic は Ubuntu 20.04 専用です。 Windows のwsl --install は“最新Ubuntu(24.04)”を入れてしまい、
これは Noetic 非対応なので必ずエラーになります。
最初から Ubuntu-20.04 を指定するのが唯一の正解です。
1. WSL2 + Ubuntu 20.04 のインストール
🟩 Step 1-1:PowerShell を管理者として起動
- スタート →「PowerShell」右クリック →「管理者として実行」
🟩 Step 1-2:WSL2 + Ubuntu 20.04 をインストール
wsl --install -d Ubuntu-20.04
Windows が再起動を要求したら再起動。
2. Ubuntu 20.04(WSL2)初期セットアップ
再起動後、自動で Ubuntu が起動するので:Enter new UNIX username:
- 任意のユーザー名(例:cits24)
- 任意のパスワード(見えないが入力されている)
3. VS Code と WSL の統合設定
🟩 Step 3-1:Visual Studio Code を開く
(Windows 側)🟩 Step 3-2:「WSL」拡張機能をインストール
- 拡張機能(左側の四角)
- 「WSL」で検索
- Microsoft製「WSL」 をインストール (英語名:Remote - WSL)
🟩 Step 3-3:Python 拡張機能もインストール
- 検索 →「Python」
- Microsoft製のものをインストール
4. Ubuntu(WSL)から VS Code を開く(超重要)
Ubuntu ターミナルで:cd ~
code .
VS Code 左下が WSL: Ubuntu-20.04 と表示されれば成功。
5. ROS Noetic のインストール(Ubuntu 20.04)
🟩 Step 5-1:更新
sudo apt update
sudo apt upgrade -y
🟩 Step 5-2:ROS の鍵を追加
sudo apt install -y curl
sudo curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
🟩 Step 5-3:ROS リポジトリを追加
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu focal main" > /etc/apt/sources.list.d/ros1-latest.list'
🟩 Step 5-4:更新
sudo apt update
🟩 Step 5-5:ROS Noetic(最小構成)をインストール
sudo apt install -y ros-noetic-ros-base
🟩 Step 5-6:rosdep をインストール
sudo apt install -y python3-rosdep
sudo rosdep init
rosdep update
🟩 Step 5-7:ROS 環境を bash に追加
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
6. ROS 動作確認(PC 単体)
roscore
以下が出たら成功:
started core service [/rosout]
Ctrl + C で停止。
7. Scout 用 Python ノード作成(PC 内テスト)
🟩 Step 7-1:作業ディレクトリ作成
mkdir ~/scout_scripts
cd ~/scout_scripts
code .
🟩 Step 7-2:Python ファイル作成
scout_cmdvel_test.py を作り以下を貼る:
#!/usr/bin/env python3
import rospy
from geometry_msgs.msg import Twist
def main():
rospy.init_node('scout_cmdvel_test', anonymous=True)
pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)
rospy.sleep(1.0)
vel = Twist()
vel.linear.x = 0.0
vel.linear.y = 0.1
vel.angular.z = 0.0
rate = rospy.Rate(10)
start_time = rospy.Time.now()
duration = rospy.Duration(2.0)
rospy.loginfo("Publishing /cmd_vel for 2 seconds...")
while not rospy.is_shutdown():
if rospy.Time.now() - start_time < duration:
pub.publish(vel)
else:
pub.publish(Twist())
rospy.loginfo("Stop and exit.")
break
rate.sleep()
if __name__ == "__main__":
main()
🟩 Step 7-3:実行権限
chmod +x scout_cmdvel_test.py
🟩 Step 7-4:PC 内 roscore でテスト動作
ターミナル1:roscore
ターミナル2:
./scout_cmdvel_test.py
成功ログ:
Publishing /cmd_vel for 2 seconds...
Stop and exit.
8. Scout と接続(ロボット実機制御)
🟩 Step 8-1:Scout の IP アドレスを確認
(アプリ or ルーター管理画面) 例:192.168.1.50
🟩 Step 8-2:PC(WSL)側設定
export ROS_MASTER_URI=http://192.168.1.50:11311
export ROS_IP=$(hostname -I | awk '{print $1}')
🟩 Step 8-3:Scout のトピックを取得
rostopic list
Scout のトピックが見えれば成功。
🟩 Step 8-4:実機へ /cmd_vel を送信
cd ~/scout_scripts
./scout_cmdvel_test.py
Scout が少し前進 → 停止すればOK。
9. 次のステップ(任意)
- Scout のカメラ画像を Python で subscribe
- OpenCV + landmark-based navigation
- SLAM / Visual Odometry
- ジョイスティック操作(PS3 / Xbox)
- 自律走行アルゴリズムの実装
==================================================
🟦 まとめ
==================================================
この手順書により、 Moorebot Scout × PC × WSL2 × ROS1 のセットアップが 確実に成功する ようになります。 特に重要ポイントは:🔥 ROS Noetic = Ubuntu 20.04 でしか動かない
➡ 最初からwsl --install -d Ubuntu-20.04 を使う
🔥 VS Code は必ず WSL(Ubuntu)モードで使う
➡code . を使う
🔥 Scout は ROS マスターなので PC 側で roscore を起動しない
➡ROS_MASTER_URI を Scout に向ける
必要ならこの手順書を PDF / Google Docs / Markdown / GitHub README 化 などもできます。 どの形式で出力しますか?
code .について解説してください
了解です!code . は VS Code を使ううえで最も重要なコマンドのひとつなので、
「なぜ必要なのか」「どう動くのか」「Windows版とWSL版の違い」まで、
完全に理解できるように丁寧に説明します。
🔵 結論:code . は “このフォルダを VS Code で開く” コマンド
code → VS Code を起動するコマンド
. → “カレントディレクトリ(今いるフォルダ)” を意味する
つまり:
👉 「いま開いているフォルダを VS Code で開いてください」
という意味になります。🔵 なぜ今回の ROS / Ubuntu 開発では特に重要なのか?
あなたは WSL2(Ubuntu)内で ROS を動かしています。 WSL の Ubuntu にあるファイルを VS Code で編集するには、 WSL 内からcode . を実行する必要があるためです。
これをしないで Windows 側から直接 VS Code を開くと:
- Windows 側の VS Code が開く
- WSL の Ubuntu とはつながらない
- ROS / Python / パス がすべて Windows になってしまう
- プログラムが動かなくなる
🔵 WSL 内で code . をすると何が起こる?
① WSL(Ubuntu)→ VS Code 用のサーバが自動起動
VS Code が WSL 内に専用の拡張サーバを起動します。② VS Code が “WSL モード” に切り替わる
ウィンドウの左下に:✔ WSL: Ubuntu-20.04
と表示されます。 これが VS Code が Ubuntu の中で動いている状態です。③ 以降すべての操作が Ubuntu 内で実行される
- エクスプローラのファイルは全部 Ubuntu の
/home/xxx/... - ターミナル → Ubuntu の bash
- Python → Ubuntu の
/usr/bin/python3 - ROS → Ubuntu のパスが有効
scout_cmdvel_test.py→ Ubuntu のプログラムとして動作
🔵 具体例:code . を使う前と後の違い
| 操作 | Windows から VS Code を開いた場合 | Ubuntu で code . を実行した場合 |
|---|---|---|
| Python | Windows の Python | Ubuntu の Python |
| ROS | 動かない | ROS Noetic が使える |
| パス | C:\Users... | /home/ubuntu/... |
| ファイル保存 | Windows に保存 | Ubuntu に保存 |
| Scout と通信 | できない | できる(ROS) |
code . が必要!
🔵 使い方(正しい手順)
- Ubuntu(WSL)を開く
- 作業したいフォルダへ移動
例:
cd ~/scout_scripts - 次を実行:
code . - VS Code が開き、左下に:
✔ WSL: Ubuntu-20.04
と表示されれば成功。
🔵 よくある質問:code . と普通に VS Code を開く違いは?
❌ Windows で VS Code を開いた場合
→ Windows 環境で動作する → ROS が無い → Python も Windows 版になる → WSL の Ubuntu とつながらない → Scout の通信ができない✔ code . で開いた場合
→ Ubuntu(WSL)環境が VS Code の実行環境になる
→ Python, ROS, ファイルパスが全部 Ubuntu
→ Scout と直接 ROS で通信できる
🔵 まとめ
code . は:
「このフォルダを WSL(Ubuntu)モードの VS Code で開く」魔法のコマンドであり、 ROS、Python、Ubuntu の環境を VS Code に完全統合するために欠かせません。 実質的に:
🚀 ROS + Python の開発は必ず code . から始まる
と言ってもいいほど重要です。
必要なら、
code .の仕組み(Remote Server の動作)- Windows と Ubuntu のファイルシステムの違い
- どこにファイルを置くべきか なども詳しく解説できます。
roscoreについて解説してください
了解です!roscore は ROS(Robot Operating System)を使う上で最も大事なコマンドのひとつなので、
仕組み・役割・実際の流れをわかりやすく完全解説します。
🔵 1. roscore とは何か?(一言で言うと)
👉 ROS システム全体の「心臓部(中央司令室)」を起動するコマンド
- ノード同士が通信するための “マスター” を起動
- 通信を監視しログを管理する “rosout” を起動
すべての ROS ノードは roscore に登録され、そこを通じて通信し合うという中心的役割を持ちます。
🔵 2. roscore を起動すると何が立ち上がる?
roscore 実行時、内部では以下の3つが起動します:
| 起動プロセス | 役割 |
|---|---|
| rosmaster | ノード一覧・トピック一覧・サービス一覧を管理する“電話交換手” |
| rosout | すべてのログ(INFO/WARN/ERROR)を集める“ログシステム” |
| parameter server | パラメータ(設定値)を保持する“設定サーバ” |
started core service [/rosout]
は、
➡ “rosout が正常に起動した”
➡ “rosmaster も動き出した”
ことを意味します。
🔵 3. roscore の役割(すごく重要)
① ノード間通信の仲介(master)
ROS はノード同士が話し合う仕組みですが、そのためには住所録が必要です。 その「住所管理システム」が roscore(マスター)です。 例:- ノードA「/cmd_vel に送ります」
- ノードB「/cmd_vel を受け取りたいです」 ➡ roscore「お互いつないでいいよ」
② ログ管理(rosout)
すべてのノードが出すログを/rosout に集約します。
VS Code で ROS プログラムを実行すると:
[INFO] [xxx]: Publishing /cmd_vel...
などが出ますが、
これは rosout が動いているからです。
③ パラメータサーバ
/use_sim_time や /robot_description のような設定値を管理し、
ノードから読み書きできます。
🔵 4. roscore が必要なタイミング
✔ ロボットを動かすとき
(あなたの/cmd_vel の publish も、roscore の管理下にある)
✔ 他のノードと通信したいとき
- slam
- ナビゲーション
- カメラ画像 subscribe
- LiDAR subscribe
✔ トピック一覧を見たいとき
rostopic list
は roscore を見に行きます。
🔵 5. 逆に roscore が不要なとき
❌ Python の普通のプログラム
(ROS を使わなければ不要)❌ Windows だけで作業しているとき
(ROS は Ubuntu 内でのみ動作)🔵 6. よくある疑問:「roscore は1台だけ必要?」
はい、基本は 1台だけです。- PC 内でテストする → PC の roscore を使う
- 実機 Scout に接続する → Scout が roscore を持っているので PC は起動しない!!
Scout を動かすときは PC 側で roscore を起動してはいけません。
理由: “マスターが2つ” あると通信先が分裂するため。🔵 7. あなたの状況に当てはめると
✔ PC 内テスト
あなたが行った:roscore
./scout_cmdvel_test.py
これは PC 内だけで ROS ノードのテストができている状態。
✔ Scout と接続する時
Scout には すでに roscore が搭載されています。 だから:- PC 側で roscore を止める(Ctrl + C)
- PC 側は「ノード」として参加するだけ
export ROS_MASTER_URI=http://<Scout_IP>:11311
これが Scout の roscore を使うという宣言です。
🔵 まとめ(超重要ポイント)
- roscore = ROS の心臓(中央司令室)
- ノード同士をつなぎ、ログを集め、設定を管理する
- PC テストでは PC の roscore を使う
- Scout とつなぐときは Scout の roscore を使うため PC の roscore は停止
ROSMasterURIを Scout に向けると、PC が “Scout の一部” になる
必要なら、以下も解説できます👇
- roscore の内部機構
- roscore と rospy の通信シーケンス
- roscore が無いときの典型エラー
- WSL2 での roscore の注意点
📘 Moorebot Scout × ROS1 × PC(WSL1)
セットアップ手順書 + 現状まとめ(誰でも同じところまで再現できる版)
この文書は、 「Moorebot Scout を ROS1 から操作する環境を、他の人が再構築できるようにする」 ことを目的に作成されています。1️⃣ プロジェクトの目的
- Moorebot Scout を ROS1 ノードとして外部 PC から制御する。
/cmd_velを Publish して Scout を動かす。/CoreNode/jpgなどから カメラ画像を ROS 経由で取得したい。
2️⃣ 使用環境
■ Scout 側
- OS:独自 Linux
- ROS:ROS Melodic(/opt/ros/melodic)
- ROS マスター:Scout 本体
→
192.168.11.7:11311
■ PC 側
- OS:Windows 11
- ROS ノード実行環境:Ubuntu 20.04 (WSL1) → ROS Noetic を使用
- PC(Wi-Fi)のアドレス:
192.168.11.8
■ ネットワーク
- Scout と PC を同じ Wi-Fi に接続 (例:192.168.11.x の同一サブネット)
3️⃣ セットアップ手順(PC側)
STEP 1 : Ubuntu-20.04 (WSL) を導入
PowerShell(管理者)で:wsl --install -d Ubuntu-20.04
インストール後:
wsl --set-version Ubuntu-20.04 1
→ WSL1 にする理由:ROS1 の TCP 双方向通信が安定するため
STEP 2 : ROS Noetic をインストール(Ubuntu-20.04側)
sudo apt update
sudo apt install -y curl
ROS リポジトリ追加:
sudo curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu focal main" > /etc/apt/sources.list.d/ros1-latest.list'
sudo apt update
ROS 本体:
sudo apt install -y ros-noetic-ros-base python3-rosdep python3-rostopic ros-noetic-geometry-msgs
rosdep 初期化:
sudo rosdep init
rosdep update
bashrc 自動設定:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
STEP 3 : VS Code + WSL の設定(任意)
code .
左下に「WSL: Ubuntu-20.04」と表示されればOK。
4️⃣ Scout との ROS 通信を有効化
STEP 1:Scout の IP を確認
アプリ or ルーターから192.168.11.7 を確認。
STEP 2:PC 側の IP を確認
Windows のipconfig → Wi-Fi IPv4 → 192.168.11.8
STEP 3:(重要)ROS ネットワーク設定
Ubuntu(WSL1)で:source /opt/ros/noetic/setup.bash
export ROS_MASTER_URI=http://192.16
export ROS_IP=192.16
確認:
echo $ROS_MASTER_URI
echo $ROS_IP
Scout のトピックが見えるか確認:
rostopic list
→ /cmd_vel や /CoreNode/jpg など多数表示されれば成功。
5️⃣ /cmd_vel を使った動作テスト
STEP 1:ターミナルAで監視
rostopic echo /cmd_vel
STEP 2:ターミナルBで送信
rostopic pub -1 /cmd_vel geometry_msgs/Twist \
'{linear: {x: 0.0, y: 0.2, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}'
結果
- Scout が動く → OK
rostopic echoに値が出る → OK
6️⃣ Teach ロガー(画像+ログ保存ツール)の準備
- Teach ロガーの Python スクリプト・ログ保存ディレクトリ作成済み
- 自作メッセージ(
roller_eye/frame)もcatkin_wsでビルド済み rosmsg show roller_eye/frameが正しく参照できる状態
7️⃣ 問題(未解決ポイント)
🟥 Scout のカメラ画像が ROS に Publish されていない
以下のトピックを echo しても、1行も出ない:/CoreNode/jpg/CoreNode/h264/CoreNode/obj
/opt を確認したところ:
/opt/
├ ros/
│ └ melodic/
└ sockproxy/
❗ 他のユーザーの Scout にある
/opt/robot や /opt/roller_eye が存在しない。 → Local Streaming Mode のアプリ自体が入っていない可能性が濃厚。8️⃣ 技術的分析(まとめ)
✔ ROS ネットワークの問題ではない
(/cmd_vel は正常、ノード登録も正常)✔ 画像が出ない原因は「Scout 本体側」
推測される原因:- ファームウェア更新で ローカル映像配信機能が削除された
- LocalApp(ローカルストリーミングアプリ)不在
- Cloud モード優先でローカル出力が無効
/CoreNode/jpgは存在するが トピックはダミーで Publish されていない
9️⃣ 現在の確度の高い仮説
この個体の Scout は、ローカル用の映像ストリームアプリ(LocalApp)がインストールされていない。 そのため、ROS に画像を出力できない状態である。
🔟 次のステップ(他の人へ依頼する事項)
- あなたの Scout では
/CoreNode/jpgにデータ流れてますか? - /opt に
/robotや/roller_eyeが存在しますか? - ファームウェアのバージョンはいくつですか?
- ローカル映像配信は今もサポートされていますか?
- Cloud/Local モード切替で画像出力が変化しますか?
1️⃣1️⃣ いまの結論
- ROS 側セットアップは 完全に成功
- 足回り(/cmd_vel)も 制御可能
- Teach ロガー環境も ほぼ完成
- 残る問題は Scout のカメラが ROS に Publish されていないことだけ
必要なら:
- 研究室用の「PDF化した正式手順書」
- Markdown / Word / Notion 用のフォーマット
- 短縮版 / 要点版 / 後輩向け「1ページ資料」




