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. | ||
+ | |||
+ | |||