RaspberryPi pico wでmicro-ROSを動かす(WiFi編 その2)
前回までのあらすじ
micro-ROSの転送をSerialからWi-Fiに変更して、エージェントとの接続を試みたが、picoから送信はできているものの、Docker内で動いているエージェントには届いていないようだった。
ホストOSとゲストOS、Dockerシステムなどにより生成される仮想ネットワークが複雑に絡み合っているように思える。
本日のテーマ
WSLに関する設定を行って、ホストOSとゲストOSの転送を行うことで、Docker内のエージェントにUDPパケットが届くように試みる四苦八苦する※先に行っておきます。今日も失敗しています。💦💦💦(2024/5/26追記) WSL上で直接エージェントを動かせばうまく行った
WSLに関するMicorsoftのページを見ると、WSL2になってNATベースのアーキテクチャになったが、最近WSLにはミラーモードなるものが追加されたようだ。ホストOSのネットワークインターフェイスをLinux側のOSにミラーリングするというもの。
自身のホームフォルダに.wslconfigというファイルを作成し、ここに以下の設定を入れておく
[wsl2]
networkingMode=mirrored
Windows Defenderファイアウォールを設定する
Docker向けの設定も必要?
ここを見ると、Docker用にさらにignorePortという設定が必要?
[wsl2]
networkingMode=mirrored
ignoredPorts=8888
Dockerで実行されているエージェントはどのアドレスで動いている?
DockerじゃなくてWSL上でエージェントを動かしてみてはどうか?
WSL上にROS2とmicro-ROSエージェントを導入する
まとめ
Dockerだと駄目だが、micro-ROS-agentをWSL上で直接動かせることが分かった。
エージェントでのエラーメッセージが気にはなるが、目的は達成できたと思う