Moorebot Scout × ROS1 × PC(WSL1) 「カメラ映像が ROS に出てこない問題」完全解決まとめ

著者:副業の宮殿|製造業に携わる現役エンジニア。技術士試験対策書籍をKindleで複数出版。技術ブログ「副業の宮殿」にて製造業DX・AI活用の情報を発信中。

以下に、**第三者が読んでも一発で原因と対策がわかる「完全版解決手順まとめ」**を作りました。
あなたが実際に行った調査プロセスも反映してあるので、そのまま共有できます。


✅ Moorebot Scout × ROS1 × PC(WSL1)

「カメラ映像が ROS に出てこない問題」完全解決まとめ

Moorebot Scout を ROS1(Melodic)で動かし、PC(ROS Noetic / WSL1)と連携するときに多くの人が遭遇するのが、

「/CoreNode/h264 や /CoreNode/jpg に何も流れてこない」
「rostopic echo が何も返さず固まる」

という問題です。

本ケースでは、
「Scout 本体は正常に映像を publish しているのに、PC 側で受信できない」
という症状でした。

原因は意外にも ネットワーク名解決(hostname 解決) でした。


🎯 結論(最短版)

原因:
Scout が自分のホスト名を linaro-alip として ROS マスターに登録するが、
PC(WSL)がこの名前を解決できず、publisher に TCP 接続できないため、
rostopic echo が「何も出ないまま待ち続ける」状態になっていた。

解決策:
PC の /etc/hosts へ以下を追加し、
linaro-alip192.168.11.7
の名前解決を可能にする。

192.168.11.7   linaro-alip

これで PC は SCOUT に直接接続できるようになり、映像もセンサも全て受信可能になる。


🔍 詳細まとめ(原因・調査・解決)

目次

■ 1. 症状

  • /cmd_vel などは正常に動く(PC → SCOUT 通信はOK)
  • rostopic list には /CoreNode/h264/SensorNode/... が全部見える
  • しかし PC 側で rostopic echo -n 1 /CoreNode/h264 をしても 一切出てこない
  • /SensorNode/simple_battery_status も同様に 0件のまま

→ つまり PC はトピックの存在は見えるが、実データは受け取れない


■ 2. SCOUT 本体の状態は正常だった

Scout に SSH し、同じコマンドを実行すると…

rostopic echo -n 1 /CoreNode/h264
→ seq: ... data: [0,0,0,1,33,...](正常)

💡 Scout 本体は映像を正しく Publish していた。
→ 問題は Scout 側ではなく、PC との接続ルートにあった。


■ 3. 原因:SCOUT のホスト名を PC が解決できていなかった

SCOUT 側の環境変数:

ROS_MASTER_URI=http://localhost:11311
ROS_IP=(空)
ROS_HOSTNAME=(空)
hostname -I → 192.168.11.7

ROS は ROS_IP が空の場合、
ホスト名(この場合 linaro-alip)で自分を名乗る

結果:

  • SCOUT → master: OK
  • PC → master: OK
  • master → PC に「publisher は http://linaro-alip:xxxx/」と通知
  • PC は linaro-alip を DNS/hosts で解決できない
  • 接続できず、rostopic echo は無言で待ち続ける

という構図。


■ 4. 解決:WSL の /etc/hosts に 1 行追加

WSL の Ubuntu で:

sudo nano /etc/hosts

末尾に以下を追記:

192.168.11.7   linaro-alip

保存して ping テスト:

ping -c 2 linaro-alip
→ 192.168.11.7 に正常に通る

これにより、

  • ROS master が渡す publisher URI(linaro-alip:xxxxx)
  • PC 側の subscriber

の間で TCP コネクションが張れるようになり、映像・センサデータが受信可能へ。


■ 5. 修正後の動作確認

PC(WSL1)で:

rostopic echo -n 1 /SensorNode/simple_battery_status
→ status: [1, 87, 0]

rostopic echo -n 1 /CoreNode/h264
→ seq: ... / data: [0,0,0,1,33,...]

両方正常に1フレーム取得できる!


🟩 完全に解決したポイント

  • ROS ネットワークは正常に接続された
  • Scout 本体のカメラは正しく Publish されている
  • PC 側は /etc/hosts の修正で Publish 元と接続できるようになった
  • Teach & Repeat / VPR に必要な映像も PC で取得可能になった

📦 他の人が同じ問題に遭遇した場合のチェックリスト

1. rostopic list には出るのに、echo が何も出ない

名前解決 / Publisher への TCP 接続問題の可能性大

2. SCOUT 側で echo してみる

→ SCOUT 内で出るなら、PC 側の問題

3. PC 側 /etc/hosts に以下を追加:

192.168.11.7   linaro-alip

4. ping linaro-alip が通るか確認

→ yes なら ROS 通信も通るようになる


📝 最後に

この問題は ネットワーク + ROS の典型的な落とし穴で、
Moorebot Scout 固有ではなく ROS 全般でよく起こります。

「トピックは見えるのに echo が出ない」
という場合、まず「Publisher のホスト名が解決できているか」を疑ってください。


必要であれば、
この問題を英語版(GitHub Issues / Discord 用)にもまとめ直します。

また、次のステップ
▶ H.264 → 画像変換ノード
▶ Teach ロガー構築
▶ VPR + Teach & Repeat の本編

も一緒に進めますので、いつでも言ってください。

あわせて読みたい

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次