This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| tutorials:uimacpp_groovy [2013/03/08 13:44] – created jworch | tutorials:uimacpp_groovy [2013/03/13 13:19] (current) – jworch | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Installing UIMA/C++ ====== | ||
| + | |||
| + | Last Update: March 2013 | ||
| + | |||
| + | Tested on: Ubuntu 12.04 with ROS Groovy | ||
| + | |||
| + | ===== First, install some standard libs ===== | ||
| + | |||
| + | sudo apt-get install libicu-dev libxerces-c-dev openjdk-7-jdk libapr1-dev | ||
| + | |||
| + | ===== Choose an installation location ===== | ||
| + | |||
| + | cd $HOME | ||
| + | mkdir uima | ||
| + | |||
| + | ===== Put the right paths into your ~/.bashrc ===== | ||
| + | |||
| + | In the following code, replace '' | ||
| + | |||
| + | export UIMA_WORKSPACE=$HOME/ | ||
| + | export UIMA_HOME=$UIMA_WORKSPACE/ | ||
| + | export UIMACPP_HOME=$UIMA_WORKSPACE/ | ||
| + | | ||
| + | export PATH=$UIMACPP_HOME/ | ||
| + | export LD_LIBRARY_PATH=$UIMACPP_HOME/ | ||
| + | export CLASSPATH=$UIMA_WORKSPACE/ | ||
| + | | ||
| + | export APR_HOME=/ | ||
| + | export ICU_HOME=/ | ||
| + | export XERCES_HOME=/ | ||
| + | | ||
| + | Depending on your OS replace ARCH by amd64 or i386 | ||
| + | | ||
| + | export JAVA_HOME=/ | ||
| + | export JAVA_INCLUDE=$JAVA_HOME/ | ||
| + | |||
| + | ===== Get Maven ===== | ||
| + | |||
| + | Get the Maven 3.0 or later binaries from [[http:// | ||
| + | |||
| + | Extract everything into '' | ||
| + | |||
| + | bin boot conf lib LICENSE.txt | ||
| + | |||
| + | ===== Get UIMA/C++ from the SVN & build ===== | ||
| + | |||
| + | cd $UIMA_WORKSPACE | ||
| + | svn co https:// | ||
| + | |||
| + | 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/ | ||
| + | ./ | ||
| + | ./configure --without-activemq --with-jdk=/ | ||
| + | make install | ||
| + | |||
| + | What this will do is compile everything and create a couple of folders in '' | ||
| + | | ||
| + | bin data include | ||
| + | |||
| + | |||
| + | ===== Get the UIMA Java SDK Binaries ===== | ||
| + | |||
| + | Download and extract latest binaries to '' | ||
| + | |||
| + | http:// | ||
| + | |||
| + | Doing '' | ||
| + | |||
| + | bin config | ||
| + | |||
| + | |||
| + | ===== Set up ROS and PCL ===== | ||
| + | |||
| + | Install ROS Groovy (see '' | ||
| + | |||
| + | sudo apt-get install ros-groovy-desktop-full | ||
| + | | ||
| + | Install dependencies: | ||
| + | |||
| + | sudo apt-get install ros-groovy-pcl ros-groovy-openni-camera ros-groovy-openni-launch | ||
| + | | ||
| + | ===== Set up MongoDB ===== | ||
| + | |||
| + | Get the server. See: | ||
| + | [[http:// | ||
| + | |||
| + | Get the lates client and unpack it to $UIMA_WORKSPACE | ||
| + | [[http:// | ||
| + | |||
| + | If you don't yet have it, get scons | ||
| + | |||
| + | sudo apt-get install scons | ||
| + | | ||
| + | Before compiling the client, uncomment the following line in src/ | ||
| + | | ||
| + | env.SharedLibrary(' | ||
| + | | ||
| + | Add this to the .bashrc | ||
| + | |||
| + | export MONGODBCLIENT_HOME=$UIMA_WORKSPACE/ | ||
| + | export MONGODBCLIENT_HOME_INCLUDE=$MONGODBCLIENT_HOME/ | ||
| + | | ||
| + | | ||
| + | ===== Get the IAS UIMA Repository ===== | ||
| + | |||
| + | Check out code and submodules: | ||
| + | |||
| + | cd $UIMA_WORKSPACE | ||
| + | git clone git@bitbucket.org: | ||
| + | cd iai-uima | ||
| + | git submodule init | ||
| + | git submodule update | ||
| + | |||
| + | Checkout dependencies and add them to your ROS_PACKAGE_PATH: | ||
| + | |||
| + | git clone git@bitbucket.org: | ||
| + | git clone git@bitbucket.org: | ||
| + | git clone git@bitbucket.org: | ||
| + | svn co https:// | ||
| + | svn co https:// | ||
| + | svn co https:// | ||
| + | git clone https:// | ||
| + | | ||
| + | Get the libsvm folder from | ||
| + | |||
| + | http:// | ||
| + | |||
| + | Adapt manifest.xml files from icf_dataset and ias_uima_cpp: | ||
| + | |||
| + | Replace | ||
| + | <depend package=" | ||
| + | by | ||
| + | <rosdep name=" | ||
| + | |||
| + | Additionally in ias_uima_cpp you have to replace | ||
| + | <depend package=" | ||
| + | by | ||
| + | <depend package=" | ||
| + | |||
| + | Compile ann2, vslam, libsiftfast and libsvm. | ||
| + | |||
| + | NOTE: When compiling libsvm the compiler might complain about not being able to find build/ | ||
| + | |||
| + | Now call | ||
| + | |||
| + | rosmake ias-uima-cpp | ||
| + | |||
| + | Finally browse to '' | ||
| + | |||
| + | ant | ||
| + | |||
| + | Now '' | ||
| + | |||
| + | Clock.class | ||
| + | | ||
| + | To install apache, php and other things required for the database visualization website, look at '' | ||
| + | ===== Run Example ===== | ||
| + | |||
| + | rosrun openni_camera openni_node | ||
| + | rosrun rosrun rqt_reconfigure rqt_reconfigure # enable depth registration and hiRes RGB | ||
| + | $UIMA_WORKSPACE/ | ||
| + | | ||
| + | | ||
| + | ===== Troubleshooting ===== | ||
| + | |||
| + | In case the website complains that sorting needs mongodb index do the following... | ||
| + | | ||
| + | mongo uima | ||
| + | db.uima.ensureIndex({" | ||
| + | //double check : | ||
| + | db.uima.getIndexes() | ||
| + | |||
| + | In case you RosKinnectBridge hangs check if depth registered is turned on in openni. you can do this by listening to the topic: | ||
| + | |||
| + | rostopic hz / | ||
| + | | ||
| + | If RosKinnectBridge fails check the parameters for tf from to and camera frames in the description of the annotation. | ||
| + | |||
| + | |||