Table of Contents
Set up ROS
Recommended operating system is Ubuntu 12.04 LTS 64bit or 14.04 LTS 64bit.
Install ROS Indigo or Hydro (see http://wiki.ros.org/indigo/Installation
):
Installing RoboSherlock
Last Update: Oct. 29th, 2014
Tested on: Ubuntu 12.04 with ROS Hydro and 14.04 with ROS Indigo
Standard libraries
First of all install some standard libraries
sudo apt-get install automake libxerces-c-dev libicu-dev openjdk-7-jdk libapr1-dev libgphoto2-2-dev mongodb libhdf5-serial-dev protobuf-compiler libtool
Install the necessary ros packages.
ROS Hydro:
sudo apt-get install ros-hydro-openni-camera ros-hydro-openni-launch ros-hydro-rosjava
ROS Indigo:
sudo apt-get install ros-indigo-openni-camera ros-indigo-openni-launch libcppnetlib-dev ros-indigo-pcl-ros
NOTE: For ROS Indigo there is no released rojava package at the moment. You can install it from source following these instructions: http://wiki.ros.org/rosjava/Tutorials/indigo/Installation
Installation location
Choose an installation location
cd $HOME mkdir 3rdParty
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 TRD_PARTY_WORKSPACE=${HOME}/3rdParty export UIMA_HOME=${TRD_PARTY_WORKSPACE}/apache-uima export UIMACPP_HOME=${TRD_PARTY_WORKSPACE}/uimacpp/install
export PATH=${UIMACPP_HOME}/bin:${UIMA_HOME}/bin:${PATH} export LD_LIBRARY_PATH=${UIMACPP_HOME}/lib:${LD_LIBRARY_PATH}
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 $TRD_PARTY_WORKSPACE svn co https://svn.apache.org/repos/asf/uima/uimacpp/trunk/ uimacpp
12.04: 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
14.04: uimacpp is old :(…sadly it looks only for old apr versions so we need to patch it. Download patch and apply it in the root folder of the project.
cd $TRD_PARTY_WORKSPACE/uimacpp ./autogen.sh ./configure --without-activemq --with-jdk=/usr/lib/jvm/java-7-openjdk-amd64/include --prefix=${UIMACPP_HOME} --with-icu=/usr 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_HOME
http://uima.apache.org/downloads.cgi
Doing ls $UIMA_HOME
should give something like
bin config docs eclipsePlugins examples issuesFixed lib LICENSE NOTICE README RELEASE_NOTES.html
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_robosherlock.git cd iai-robosherlock git submodule init git submodule update
Checkout dependencies and add them to your ROS_PACKAGE_PATH:
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 git clone git@github.com:code-iai/iai_photo.git
Now call
catkin_make
Note: for single core machines run with -j2
DEPRECATED
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