以下に、**第三者が読んでも一発で原因と対策がわかる「完全版解決手順まとめ」**を作りました。
あなたが実際に行った調査プロセスも反映してあるので、そのまま共有できます。
✅ 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-alip → 192.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 の本編
も一緒に進めますので、いつでも言ってください。


コメント