===== Set up ROS ===== Recommended operating system is Ubuntu 12.04 LTS 64bit. Install ROS Groovy (see ''http://www.ros.org/wiki/groovy/Installation/Ubuntu''): sudo apt-get install ros-groovy-desktop-full ====== Installing RoboSherlock ====== Last Update: May 15th, 2013 Tested on: Ubuntu 12.04 with ROS Groovy ==== Standard libraries and PCL ==== First of all install some standard libraries and PCL trunk sudo apt-get install libicu-dev libxerces-c-dev openjdk-7-jdk libapr1-dev ros-groovy-pcl ros-groovy-openni-camera ros-groovy-openni-launch For using pcl trunk with groovy see: http://answers.ros.org/question/62979/how-do-i-use-pcl-17-with-groovy/ **Note:** you need to enable the //RSD// feature from the features submodule in pcl. To do this go to pcl root directory cd to features and edit the //CMakeLists.txt// file. Uncomment the lines contatining //rsd.h// //rsd.cpp// and //rsd.hpp//. Remake the project (don't do clean!!!!) ==== Installation location ==== Choose an installation location cd $HOME mkdir uima ==== Set up Bash ==== Put the right paths into your ~/.bashrc. In the following code, replace ''$HOME/uima'' with the location where you actually want your UIMA environment to reside. export UIMA_WORKSPACE=$HOME/uima export UIMA_HOME=$UIMA_WORKSPACE/apache-uima export UIMACPP_HOME=$UIMA_WORKSPACE/uimacpp/install export PATH=$UIMACPP_HOME/bin:$UIMA_WORKSPACE/apache-uima/bin:$PATH export LD_LIBRARY_PATH=$UIMACPP_HOME/lib:$UIMA_WORKSPACE/iai-uima/ias-uima-cpp/lib:$LD_LIBRARY_PATH export CLASSPATH=$UIMA_WORKSPACE/iai-uima/ias_uima_rosjava/build/classes/main export APR_HOME=/usr export ICU_HOME=/usr export XERCES_HOME=/usr export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ export JAVA_INCLUDE=$JAVA_HOME/include ==== UIMA/C++ ==== Get UIMA/C++ from the SVN & build cd $UIMA_WORKSPACE svn co https://svn.apache.org/repos/asf/uima/uimacpp/trunk/ uimacpp uimacpp will look for libapr-1.0.so which isn't there in Ubuntu, so we need to create a symlink to that: cd /usr/lib sudo ln -s libapr-1.so libapr-1.0.so Note: recent trunk seems to have a different build system setup, I had to do: cd $UIMA_WORKSPACE/uimacpp ./autogen.sh ./configure --without-activemq --with-jdk=/usr/lib/jvm/java-7-openjdk-amd64/include --prefix=${UIMACPP_HOME} make install What this will do is compile everything and create a couple of folders in ''$UIMACPP_HOME'', so ''ls $UIMACPP_HOME'' should give you: bin data include lib ==== UIMA Java SDK ==== Get the UIMA Java SDK Binaries. Download and extract latest binaries to ''$UIMA_WORKSPACE'' http://uima.apache.org/downloads.cgi Doing ''ls $UIMA_WORKSPACE/apache-uima'' should give something like bin config docs eclipsePlugins examples issuesFixed lib LICENSE NOTICE README RELEASE_NOTES.html ==== Set up MongoDB ==== (Might not be needed) Get the server (vs. 2.4.5 64bit). See: [[http://www.mongodb.org/downloads]] Get the client (vs. 2.2-latest) and unpack it to $UIMA_WORKSPACE [[http://dl.mongodb.org/dl/cxx-driver/]] If you don't yet have it, get scons sudo apt-get install scons Before compiling the client, uncomment the following line in src/SConscript.client env.SharedLibrary('mongoclient', clientSource), Add the env variables for mongo to your ''.bashrc''. Remember to source your newly edited bashrc file. export MONGODBCLIENT_HOME=$UIMA_WORKSPACE/mongo-cxx-driver-v2.2/ export MONGODBCLIENT_HOME_INCLUDE=$MONGODBCLIENT_HOME/src export LD_LIBRARY_PATH=$MONGODBCLIENT_HOME:$LD_LIBRARY_PATH Now ''cd'' to ''MONGODBCLIENT_HOME'', call ''scons'' ==== The IAS UIMA Repository ==== Get the IAS UIMA Repository. Check out code and submodules: cd $UIMA_WORKSPACE git clone git@github.com:code-iai/iai-uima.git cd iai-uima git submodule init git submodule update Checkout dependencies and add them to your ROS_PACKAGE_PATH: git clone git@github.com:code-iai/iai_perception.git git clone git@github.com:code-iai/entres.git git clone git@github.com:code-iai/iai_common_msgs.git git clone git@github.com:code-iai/designator_integration.git Setup rosjava Check out rosjava_core to your catkin ws: git clone git@github.com:rosjava/rosjava_core.git -b groovy-devel Details on how to make the project are here: http://docs.rosjava.googlecode.com/hg/rosjava_core/html/index.html Now call catkin_make **Note:** for single core machines run with //-j2// Now ''ls $UIMA_WORKSPACE/iai-uima/ias_uima_rosjava/build/classes/main/org/uima/collectionreader'' should show: Clock.class To install apache, php and other things required for the database visualization website, look at ''$UIMA_WORKSPACE/iai-uima/www/README.txt''. To get histograms visualized as graphs, install //libphp-jpgraph//. ===== Run Example ===== roslaunch openni_launch openni.launch rosrun rqt_reconfigure rqt_reconfigure # enable depth registration and hiRes RGB cpeGui.sh # use as collection reader ias-uima-java/desc/ClockDescriptor and as analysis engine ias-uima-cpp/descriptors/analysis_engines/iaiGoggles.xml ===== Troubleshooting ===== In case the website complains that sorting needs mongodb index do the following... mongo uima db.uima.ensureIndex({"scenes.timestamp":-1}) //double check : db.uima.getIndexes() In case your RosKinnectBridge hangs check if depth registered is turned on in openni. You can do this by listening to the topic: rostopic hz /camera/depth_registered/points If RosKinectBridge fails check the parameters for tf ''from'', ''to'' and ''camera frames'' in the description of the annotation. ===== Known Issues ===== FeatureClassifierAnnotator does not work if you link it to //plc_io or pcl_visualizer//. This is due to the incompatibility of the native //hdf5// library that comes with Ubuntu and the one used by the //icf// package