🟦 完全版:セットアップ手順書(初心者〜中級者向け)
(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 の注意点





