結論
ROSのpythonでのdependencyは、ROS特有のライブラリだけの話であって、pythonでimportするライブラリをCMakeLists.txt
, package.xml
に書く必要はない。
環境
- ROS1 noetic
- WSL2(Windows11)
- Open3Dを含むROSパッケージ
再現手順
$ catkin build [Open3Dを含むROSパッケージ]
すると、以下のエラーが発生。
Could not find a package configuration file provided by "open3d" with any of the following names:
open3dConfig.cmake
open3d-config.cmake
原因
Open3DConfig.cmakeをつくるためにソースからビルドする必要あり ↑issue元
対策
以下の記事を参考に、Open3Dをビルド
そののち、CMakeLists.txt
に以下を追加。
set(Open3D_DIR /usr/local/lib/cmake/Open3D)
find_package(catkin REQUIRED Open3D)
自分はWSL上で行っていて、cmakeのバージョンが低いと出たので、
も実行した。
いろいろやったけど、結局だめ
最終的な解決策
Open3Dを含まない状態で、catkin build
して、rosrun
やroslaunch
でパッケージ名が使えるようになったら、Open3DをCMakeLists.txt
, package.xml
, コードに追加して実行する。
これでも、一応動くのでヨシ👈
[追記]
ROSのpythonでのdependencyは、ROS特有のライブラリだけの話であって、pythonでimportするライブラリをCMakeLists.txt
, package.xml
に書く必要はない。