Table of Contents
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