Point Cloud Library を利用するためのRTコンポーネント RTC::PCL を、Ubuntu 10.04 でコンパイルしています。
http://openrtm.org/openrtm/node/1710
Ubuntu 10.04 では、レポジトリを登録することで apt-get が利用できます。
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl sudo apt-get update sudo apt-get install libpcl-1.1-dev
1.0 と 1.1 に対応しています。
2.8を使っています。
ポイントクラウドの大量のデータを送受信するために、CORBA の転送量を増やします。
/etc/omniORB4.cfg (環境によっては /etc
/omniorb/omniORB.cfg )の、giopMapMsgSize を修正します。
giopMaxMsgSize = 20971520
再起動の必要はありません。
export LD_LIBRARY_PATH=/usr/local/lib
git を使って、ソースをダウンロードします。
git clone https://github.com/gbiggs/rtcpcl.git
find_package(OpenRTM 1 REQUIRED)
find_package(Boost 1.42.0 REQUIRED regex)
git でソースを展開したディレクトリに入り、build ディレクトリを掘ってそこに入り、ccmake を実行します。
% cd rtcpcl % mkdir build % cd build % ccmake ..
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:70 (MESSAGE): REQUIRED_VARS (missing: DDS_INCLUDE_DIR DDS_C_LIBRARY DDS_CPP_LIBRARY DDS_CORE_LIBRARY VERSION_VAR) Call Stack (most recent call first): cmake/Modules/FindDDS.cmake:73 (find_package_handle_standard_args) CMakeLists.txt:32 (find_package)
#include <pointcloudSupport.h>
#if defined(DDS_SUPPORT) #include <pointcloudSupport.h> #endif
PointCloudTypes_PointCloudTypeSupport::delete_data(dds_out_);
#if defined(DDS_SUPPORT) PointCloudTypes_PointCloudTypeSupport::delete_data(dds_out_); #endif
#include <pcl/features/normal_3d.h>
#undef LOGGER_H #include <pcl/features/normal_3d.h>
build ディレクトリ内で、 make を実行します。
make が通ったら、make install してください。
% make % sudo make install
端末からRainbowTube サンプルと、Viewer サンプルを実行します。
% RTCPCLRainbowTube_standalone & % RTCPCLViewer_standalone &
次に、OpenNIサンプルを試します。
RTシステムエディタで All Deactivate して、RTCPCLRainbowTube0 を削除したら、端末から OpenNI サンプルを実行します。
% RTCPCLOpenNI &
RTCPCLOpenNI をアクティベートすると、次のようなエラーが出る場合があります。
vision@hiro-console:~/asahi/choreonoid-1.0.0/extplugin/graspPlugin/PCL$ RTCPCLOpenNI_standalone libusb couldn't open USB device /dev/bus/usb/002/005: Permission denied.
% sudo chmod 666 /dev/bus/usb/002/005