Open1

ROS2と仮想環境(WSL2, venv, pyenv)の相性が悪い

ghostwhiteghostwhite

背景

Windows11上のWSL2で動作するROS2を中心としたシステムの開発をしていたところ,マイコンやbluetoothデバイスに直接アクセスできない.
そのため解決策を調べていたところ,望んでいない複雑なシステムが必要となってしまった.

課題

マイコン(シリアル通信)

  • WSL2からusbデバイスは認識されない
  • デバイスのアタッチ等でWSL2で認識できるようにする必要がある

Bluetoothデバイス

  • WSL2からBluetoothデバイスは認識できない
  • Windowsで接続したのちにrosbridgeを通じて送信する必要があった

Python

  • ROS2が認識するPythonは基本的にシステムにインストールされたPython
  • したがって,venv+pyenvなどの仮想環境のpythonが認識されず,ModuleNotFoundError: No module named 'catkin_pkg'等のエラーが出る

まとめ

ROS2はWindowsにも導入可能だが,UbuntuとMacでの開発がメインな自分には環境構築,実装が大変そうだったので仮想環境を試したが,実際に大変でした.
とりあえず,諦めて普通のUbuntu使います.