Open1
ROS2と仮想環境(WSL2, venv, pyenv)の相性が悪い
背景
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使います.