了解しました。 いままでの作業内容・成功点・失敗点・問題点・仮説・次の論点を、 第三者に状況説明できるように 短く、正確に、技術的に まとめます。 以下をそのままコピペして共有できます。

✅ Moorebot Scout × ROS1 × PC(WSL1)

「カメラ映像が ROS トピックに出てこない問題」の現状まとめ

■ 1. 現在の環境

  • ロボット:Moorebot Scout
  • Scout 側 ROS:ROS Melodic(/opt/ros/melodic)
  • PC:Windows11 + Ubuntu20.04(WSL1) + ROS Noetic
  • 通信:ROS_MASTER_URI を Scoutに設定
  • WSL1 に変更済み/cmd_vel などの通信は正常

■ 2. できていること(成功点)

  • /cmd_vel を publish すると Scout がちゃんと動く
  • rostopic list に Scout 側のすべてのトピックが表示される
  • roller_eye/frame のメッセージ型を ローカルの catkin_ws で構築し、正しく参照可能rosmsg show roller_eye/frame が正しく出る
  • Teach ロガー(画像+log.csv 保存スクリプト)の環境準備は完了 → /home/cits24/scout_logs/run1 フォルダは生成できている

■ 3. 問題点(失敗している部分)

🟥 /CoreNode/jpg, /CoreNode/h264 に “一切データが流れてこない”

  • rostopic echo /CoreNode/jpg → まったく出ない(1行も流れない)
  • rostopic echo /CoreNode/h264 → 同じく無反応
  • これは ネットワーク/環境の問題ではなく、Scout 本体側が映像を Publish していない 状態
スマホアプリではカメラ映像が見えるが、 ROS 側の画像トピックは Publish が 0 件

■ 4. エラーとなったトピック例

  • /CoreNode/jpg → 何も出ず
  • /CoreNode/h264 → 何も出ず
  • /CoreNode/objroller_eye/detect が無いと怒られるが、本質は同じ

■ 5. Scout 内部の状況(SSH 調査結果)

/opt 以下:

/opt
 ├ ros/
 │   └ melodic/
 └ sockproxy/

👉 /opt/robot や /opt/roller_eye が存在しない

多くのユーザーが使う「Local Streaming Mode」を提供する local_approbot_app がどこにもない。 そのため、
  • LocalApp(画像を ROS に流すアプリ)が起動していない
  • そもそも LocalApp がインストールされていない可能性もある
ことが濃厚。

■ 6. 状況分析(他のユーザーから見たポイント)

● 原因の可能性(強い順)

  1. Scout のファームが “Local ROS Streaming” を無効化しているバージョンである
  2. LocalApp(または同等のローカルAIアプリ)がプリインストールされていない個体
  3. 画像ストリームの内部パイプライン(CloudMode)が優先され ROS 出力が OFF
  4. /CoreNode/jpg トピックは「登録だけされているダミー」で Publish はされない設計
  5. メーカーがファーム更新でローカル画像配信機能を削除した可能性

● 特に重要な点

  • /CoreNode/jpg のトピック自体は存在しているが、Publish 数が 0
  • ROS ネットワークは完全に動いているため、 問題は ROS ではなく Scout の内部ソフトウェア構成

■ 7. 現在の仮説(高確度)

この個体の SCOUT には、ローカル向けの “LocalApp”(ROS 映像出力機能)が入っていない。 あるいは起動していない設定になっている。
そのため、画像はスマホアプリ専用の Cloud パイプラインで処理され、 ROS の /CoreNode/jpg へ出力されない。

■ 8. 今できる現実的な選択肢

A)Scout のカメラを使わず、外付け USB カメラで Teach & Repeat を進める(最も確実)

  • 足回りは Scout(/cmd_vel)
  • カメラは別(PC直結の USB カメラなど)
  • Teach & Repeat / VPR の研究は即開始できる

B)Scout の内部を深掘りして Local Streaming Mode を強制的に有効化する(難易度高)

  • /opt/ros/melodic の Node や Param を調査
  • CoreNode の起動引数や config を読む
  • CloudMode / LocalMode の切り替えを逆解析
  • ファームウェア依存の可能性が高く、確約が難しい

■ 9. 他の人に聞きたいポイント

  1. 彼らの Scout では /CoreNode/jpg/CoreNode/h264 にデータが流れているか?
  2. LocalApp(ローカルアプリ)が /opt/robot や /opt/roller_eye に存在するか?
  3. Cloud モードとローカルモードで画像配信挙動は変わるか?
  4. ファームウェアのバージョン差で ROS の画像トピックが出なくなるケースはあるか?
  5. Melodic 版 Scout の画像出力は、そもそもユーザー側で使える仕様なのか?

■ 10. いまの結論

  • ROS1 の通信は完全に成功している
  • Teach ロガーもほぼ完成
  • 残る問題は “Scout 本体が画像を ROS に publish していない” ことだけ
  • これはユーザー側の ROS 設定ではなく、デバイスの仕様/モードの問題

必要なら、この文章の「短縮版」や「技術者向け版」を作ることもできます。