PCL, PCL.rtcプラグイン

PCLプラグインはPoint Cloud Libraryを利用してポイントクラウドを表示するプラグインで、PCL.rtcプラグインはrtcpclを利用してOpenRTM経由でポイントクラウドを表示させるプラグインです。

PCLプラグイン

プラグイン名: PCL
依存プラグイン: Grasp, GeometryHandler

プラグインを利用する前に以下のコマンドを実行してください。Ubuntuのバージョンにより異なります。

Ubuntu16.04の場合

 $ sudo apt-get install libpcl-dev
 $ sudo apt-get install libproj-dev

Ubuntu16.04以前の場合

 % sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
 % sudo apt-get update
 % sudo apt-get install libpcl-1.7-all-dev

なお、これはextplugin/graspPlugin/PCL/install-requisities-ubuntu.sh に同じ内容があります。

次に、ccmake においてプラグインとしてGraspとGeometryHandlerとPCLを指定してコンパイルしてください。また、ccmake で、一度cを押した後にBUILD_GRASP_PCL_PLUGINというオプションが現れ、デフォルトではOFFになっていますが、これを ONにしてください。ちなみに、ChoreonoidのデフォルトでBUILD_PCL_PLUGINというオプションがありますが、これではありません。

ここで、ccmake でcを押した後、以下のようなメッセージが出ることがあります。

 ** WARNING ** io features related to pcap will be disabled

この場合は、e → c → e → g か、e → g でMakefileが生成されます。そして、Choreonoidをコンパイルし、Choreonoidを起動してください。PCLバーが追加されていると思います。このバーに含まれるボタンはそれぞれ以下のような機能を持っています。

RGB: カラーモードのON/OFF
Cap: ポイントクラウドをキャプチャする
Seg: セグメンテーションする
Tri: ポイントクラウドをポリゴンに変換する
Cyl: シリンダーセグメンテーション
MinZ:範囲を限定し、その範囲の中で座標が最少のポイントを求める
Dif: 二つのポイントクラウドの差分を求める
Cube:ポイントクラウドのポイントを立方体のVRMLモデルで置き換える
Grabber On/Off : Cap2ボタンと併用する。このボタンを押すことでポイントクラウドがキャプチャできる状態にし、Cap2ボタンでキャプチャする。(CapボタンはGrabberOn/OffボタンとCap2ボタンを連続して押していることの相当する。)
Cap2: 高速にポイントクラウドをキャプチャする。

最後に、/dev/usb以下にスーパーユーザ以外が常にアクセスできるようにするには、/etc/udev/rules.dに45-xaiox.rulesという名前のファイルを作り、その中に

 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0777", GROUP="[your group name]"

と書きます。

PCL.rtcプラグイン

プラグイン名: PCL.rtc
依存プラグイン: Grasp, GeometryHandler

本プラグインを利用する前に、以下のコマンドを実行してください。

 % cd ~/src/Choreonoid/extplugin/graspPlugin/PCL.rtc
 % ./install-resuisities-ubuntu.sh

これにより、Point Cloud Library version 1.1がインストールされます。次に、このシェルスクリプトのメッセージに従って、rtcpclをインストールします。rtcpclのインストールの詳細についてはRTCPCL のコンパイルを参照して下さい。ただ、このリンクの中で記述してあるソースの改編についてはgraspPlugin/PCL/rtcpcl以下に置いたソースは全て適用済です。

次に、ccmake においてプラグインとしてGraspとPCL.rtcを指定してコンパイルしてください。また、ccmake の際にBUILD_PCL_PLUGIN は ONにしてください。そして、Choreonoidをコンパイルし、Choreonoidを起動してください。PCLバーが追加されていると思います。このバーに含まれるボタンはそれぞれ以下のような機能を持っています。

Cap: ポイントクラウドをキャプチャする
MinZ:範囲を限定し、その範囲の中で座標が最少のポイントを求める
Cube:ポイントクラウドのポイントを立方体のVRMLモデルで置き換える

rtcpcl2.jpg



その他Tips

VRMLモデルからポイントクラウドへの変換は、PCLプラグインのPointCloudUtility.hにある PointCloudUtil::modelToPiontCloudでおこなう。使用方法はPCL/Calibration.cppの414から421行目が参考になる。