ROSとPCLを組み合わせたNodelet対応Nodeを書く

ROSとPCLを組み合わせて点群処理するNodelet

に前回NodeletをLaunchで立ち上げることに関して触れてますが、今回はPCLとNodeletに対応したNodeを書く流れをまとめておきます.

http://wiki.ros.org/nodelet/Tutorials/Porting%20nodes%20to%20nodelets
にもポーティングの流れがあります.

Nodeletに対応する場合はlaunchしてNodeletがロードできるようにnodelets.xmlを記述しそれがあることをpackage.xmlで書いておく必要があります.そこから始めます.

  1. 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に記述すれば使用することができるはずです.

 

About the author

コメントを残す