Information on installing required software on personal computers or virtual machines. Setup for vehicles is different.
1) Install dependency packages assuming ubuntu derivative.
sudo apt-get update sudo apt-get install build-essential freeglut3-dev libboost-all-dev xterm libtiff4-dev libpng12-dev libgsl0-dev subversion bzr cmake-curses-gui libxft-dev libxinerama-dev fluid default-jre libgmp3-dev sudo apt-get install witty witty-dev witty-doc witty-dbg
2) Downloads:
cd ~/ svn co https://mv-ezproxy-com.ezproxyberklee.flo.org/svn/moos-ivp-aro/releases/moos-ivp-13.5 moos-ivp bzr co lp:goby/2.0 goby cd goby sudo ./DEPENDENCIES ubuntu cd ~/ svn checkout https://hovergroup.googlecode.com/svn/trunk/ hovergroup cd ~/ mkdir MOOS cd MOOS git clone https://github.com/themoos/core-moos.git MOOSCore cd MOOSCore git checkout master cd .. git clone https://github.com/themoos/essential-moos.git MOOSEssentials cd MOOSEssentials git checkout devel cd .. git clone https://github.com/themoos/ui-moos.git MOOSToolsUI cd MOOSToolsUI git checkout V10-beta-rc1 cd .. git clone https://github.com/themoos/geodesy-moos.git MOOSGeodesy cd MOOSGeodesy git checkout master cd .. mv ~/MOOS/MOOSCore/Core/libMOOS/Comms/XPCGetProtocol.cpp ~/MOOS/MOOSCore/Core/libMOOS/Comms/XPCGetProtocol_bck.cpp cp ~/hovergroup/third-party/XPCGetProtocol.cpp ~/MOOS/MOOSCore/Core/libMOOS/Comms/
3) Build:
cd ~/MOOS/MOOSCore cmake -D DISABLE_NAMES_LOOKUP=ON -D USE_ASYNC_COMMS=ON . make -j4 cd ../MOOSEssentials cmake . make -j4 cd ../MOOSGeodesy cmake . make -j4 cd ../MOOSToolsUI cmake . make -j4 cd ~/moos-ivp rm MOOS ln -s ../MOOS MOOS cd ~/moos-ivp/ivp/src cmake -D IVP_BUILD_GUI_CODE=ON . make -j4 cd ~/goby cmake -D build_apps=OFF -D build_moos=OFF . make -j4 cd ~/hovergroup/ivp-extend/trunk ./build_proto.sh cmake -D BOOST_146=ON -D BUILD_SHORE_APPS=ON . make -j4 cd ../josh cmake -D BUILD_SHORE_APPS=ON . make -j4
7) Add executable directories to your path (replacing "josh" with your username). Add the following lines to your ~/.bashrc file.
HOME_DIR="/home/josh" IVP_DIR=${HOME_DIR}/moos-ivp MOOS_DIR=${IVP_DIR}/MOOS PATH=$PATH:${MOOS_DIR}/MOOSCore/bin:${MOOS_DIR}/MOOSEssentials/bin:${MOOS_DIR}/MOOSToolsUI/bin PATH=$PATH:${IVP_DIR}/bin HOVERGROUP_DIR=${HOME_DIR}/hovergroup/ivp-extend PATH=$PATH:${HOVERGROUP_DIR}/trunk/bin
8) Download the latest version of Eclipse CDT from http://www.eclipse.org/cdt/downloads.php and extract to a location of your choosing (no installation required). After starting Eclipse you'll need to add the projects and set their references for the indexer to work.
First I would recommend closing some of the extra windows around the screen. Almost all of the side tabs can be removed; the only ones we need are the project explorer and the console, which can be minimized when we're not building code. Once you have things arranged the way you like you should save your perspective under Window ->
To import a project go to File -> New -> Makefile Project with Existing Code. For each of the following projects you'll need to select the folder location, name the project, and set the tool-chain to Linux GCC. After creating projects you will also need to set their references to other projects. Do this by right clicking on the project in the project explorer and selection properties, then select "project references" on the left.
Name |
Path on Disk |
Project References |
---|---|---|
MOOSCore |
~/moos-ivp/MOOS/MOOSCore |
none |
MOOSEssentials |
~/moos-ivp/MOOS/MOOSEssentials |
MOOSCore |
MOOSGeodesy |
~/moos-ivp/MOOS/MOOSGeodesy |
MOOSCore |
MOOSToolsUI |
~/moos-ivp/MOOS/MOOSToolsUI |
MOOSCore |
MOOS-IvP |
~/moos-ivp/ivp/src |
MOOSCore |
Goby |
~/goby |
none |
hovergroup |
~/hovergroup/ivp-extend/trunk |
MOOSCore |
your personal folder |
~/hovergroup/ivp-extend/josh |
MOOSCore |
Some additional changes you should make in eclipse:
- Use parallel make for large projects (moos-ivp especially) by changing the build command to "make -j4" in project properties -> C/C++ Build
- Editor configuration under Window -> Preferences
- Under General -> Editors -> Text Editors check "Insert spaces for tabs"