に前回NodeletをLaunchで立ち上げることに関して触れてますが、今回はPCLとNodeletに対応したNodeを書く流れをまとめておきます.
http://wiki.ros.org/nodelet/Tutorials/Porting%20nodes%20to%20nodelets
にもポーティングの流れがあります.
Nodeletに対応する場合はlaunchしてNodeletがロードできるようにnodelets.xmlを記述しそれがあることをpackage.xmlで書いておく必要があります.そこから始めます.
- package.xmlに以下のようなものを書く.ビルドの依存関係も書く必要あり.今回はpcl_rosにも依存させるのでpcl_rosへの依存も記述ください.
2. test_nodelets.xmlを記述 (test_pcl_rosのパッケージでTestFilterを作っている例)
以上でNodeletパッケージからこのパッケージの中身(TestFilter)を見つけてもらえるようになります.
次はもう実装です.
3. hファイルを実装します.
pcl_nodeletに依存します. ここからはNodeletの実装というよりpcl_rosに依存させた場合の実装になっていますのでご注意ください.実装するクラスは必ずpcl_ros::PCLNodeletの子にします.
4. cppファイルを実装します.
色々と書き方が特殊になります.onInitの中でほとんど特別なことは閉じています.あとは最後のマクロも大事なのでお忘れなく.
以上でNodeletが完成するので、launchに記述すれば使用することができるはずです.