Skip to content

tobiasneumann/mapit

 
 

Repository files navigation

mapit

About

Mapit is a framework for storing and managing 3D (or robotic) data and keeping the history of its manipulation in a repository. The data is stored in Entities and is structured in Layers. It comes with a network interface and an QML based GUI which features a multiview approach. With multiview multiple users can display the same data over network, also on a dedicated VR system.

Build

Mapit is used on Ubuntu 16.04, Arch Linux and Fedora 27. The build description for Fedora is given here or in the docker-mapit repo:

Dependencies

dnf install boost-devel eigen3-devel cppzmq-devel OpenEXR-devel \
            protobuf protobuf-devel protobuf-lite-devel \
            cmake cmake-gui automake libtool gtest-devel gtest wget gcc-c++ \
            yaml-cpp-devel libuuid-devel \
            git
dnf groupinstall "Development Tools" "Development Libraries"

self build PCL

Because we need the PCL without VTK and SSE we use a self build version

dnf install flann flann-devel libpcap-devel
mkdir ~/ws
cd ~/ws/
git clone https://github.com/PointCloudLibrary/pcl.git
cd pcl/
git checkout pcl-1.8.1

in case you also want the pcl_viewer, you have to compile the pcl twice like the following

dnf install vtk-devel
mkdir build_gui
cd build_gui/
cmake .. -DPCL_ENABLE_SSE=false
make -j8
make -j8 install

dnf remove vtk-devel
dnf install vtk-qt vtk-java vtk-qt-tcl vtk-tcl
cd ..

end case

mkdir build
cd build/
cmake .. -DWITH_VTK=false -DPCL_ENABLE_SSE=false
make -j8
make -j8 install

ROS (optional)

The detailed ROS installation is described here http://wiki.ros.org/Installation/Source. We used "Desktop Install (recommended)", not full. The tested installation of ROS is the following.

dnf install python-empy poco-devel tinyxml2-devel lz4-devel urdfdom-headers-devel \
            qhull-devel libuuid-devel urdfdom-devel collada-dom-devel yaml-cpp-devel \
            python-rosdep python-wstool python-rosinstall @buildsys-build \
            python2-netifaces pyparsing python3-rosinstall_generator tinyxml-devel \
            python-qt5 python-qt5-devel assimp-devel ogre-devel python-defusedxml
mkdir -p /opt/ros/catkin_ws/
chown -R tneumann:tneumann /opt/ros/
cd /opt/ros/catkin_ws/
rosdep init
rosdep update
rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-wet.rosinstall
wstool init -j8 src kinetic-desktop-wet.rosinstall
rosinstall_generator pcl_conversions --rosdistro kinetic --deps --wet-only --tar > kinetic-pcl_conversions-wet.rosinstall
wstool merge -t src kinetic-pcl_conversions-wet.rosinstall
wstool update -t src
rosdep install --from-paths src --ignore-src --rosdistro kinetic -y

now there are some packages to be fixed:

in src/geometric_shapes/CMakeLists.txt remove "EIGEN3" in context of "catkin_package" and add below find_package(Eigen3 REQUIRED)

in src/collada_urdf/collada_parser/CMakeLists.txt change 2.3 to 2.4

./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

add the following to your ~/.bashrc

echo "source /opt/ros/catkin_ws/install_isolated/setup.bash" >> ~/.bashrc
source /opt/ros/catkin_ws/install_isolated/setup.bash

openVDB (optional)

dnf install blosc-devel blosc cppunit-devel cppunit-devel glfw-devel ilmbase-devel OpenEXR-devel tbb-devel python-devel libXi-devel
cd ws/
git clone https://github.com/dreamworksanimation/openvdb.git
cd openvdb/
git checkout v4.0.2
mkdir build
cd build
cmake .. -DGLFW_LIBRARY_PATH=/usr/lib64/ \
         -DIlmbase_IEX_LIBRARY=/usr/lib64/libIex.so \
         -DIlmbase_ILMTHREAD_LIBRARY=/usr/lib64/libIlmThread.so \
         -DOpenexr_ILMIMF_LIBRARY=/usr/lib64/libIlmImf.so \
         -DBLOSC_LOCATION=/usr/ \
         -DTBB_LOCATION=/usr/ \
         -DCPPUNIT_LOCATION=/usr/ \
         -DOPENEXR_LOCATION=/usr/ \
         -DILMBASE_LOCATION=/usr/ \
         -DUSE_GLFW3=true \
         -DGLFW3_LOCATION=/usr/ \
         -DOPENVDB_DISABLE_BOOST_IMPLICIT_LINKING=false \
         -DOPENVDB_ENABLE_3_ABI_COMPATIBLE=false

make -j8
make install

OctoMap (optional)

cd ~/ws
git clone https://github.com/OctoMap/octomap.git
cd octomap
mkdir build
cd build
cmake ..
make -j8
make install

Qt

In Fedora 27 it seem to be possible to directly use the system packages, this however is not widly tested

dnf install qt5 qt5-devel

Alternatively the newest version can be installed with the official script

cd ~/tmp
wget http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run
chmod +x qt-unified-linux-x64-online.run
./qt-unified-linux-x64-online.run

json11

cd ~/ws
git clone https://github.com/dropbox/json11.git
cd json11/
mkdir build
cd build
cmake .. -DCMAKE_CXX_FLAGS="-std=c++11" -DCMAKE_CXX_FLAGS_DEBUG="-g -std=c++11" 
make -j8
make -j8 install

mapit

cd ~/ws
git clone --recursive git@github.com:MASKOR/mapit.git

ldconfig
updatedb
cd ~/ws/mapit/
mkdir build
cd build
export MAPIT_CMAKE_QT_PATH=<path-to-your-qt-installation>/Qt/5.9.2/gcc_64/
export MAPIT_CMAKE_SOFTWARE_PATH=<path-to-your-ws-directory>/ws
cmake .. -DCMAKE_PREFIX_PATH=$MAPIT_CMAKE_QT_PATH \
         -DQt5Core_DIR=$MAPIT_CMAKE_QT_PATH/lib/cmake/Qt5Core \
         -DQt5Gui_DIR=$MAPIT_CMAKE_QT_PATH/lib/cmake/Qt5Gui \
         -DQt5Network_DIR=$MAPIT_CMAKE_QT_PATH/lib/cmake/Qt5Network \
         -DQt5Qml_DIR=$MAPIT_CMAKE_QT_PATH/lib/cmake/Qt5Qml \
         -DQt5Quick_DIR=$MAPIT_CMAKE_QT_PATH/lib/cmake/Qt5Quick \
         -DQt5Test_DIR=$MAPIT_CMAKE_QT_PATH/lib/cmake/Qt5Test \
         -DQt5Widgets_DIR=$MAPIT_CMAKE_QT_PATH/lib/cmake/Qt5Widgets \
         -DQt53DCore_DIR=$MAPIT_CMAKE_QT_PATH/lib/cmake/Qt53DCore \
         -DCMAKE_CXX_FLAGS="-std=c++11" -DCMAKE_CXX_FLAGS_DEBUG="-g -std=c++11" \
         -DCMAKE_BUILD_TYPE=Debug \
         -DMAPIT_ENABLE_VISUALIZATION=true \
         -DWITH_LAS=false \
         -DHAVE_LASZIP=false \
         -DMAPIT_ENABLE_OPENVDB=true \
         -DMAPIT_ENABLE_OCTOMAP=true

make -j8

Acknowledgements

This work was funded in part by the German Federal Ministry of Education and Research in the programme under grant 033R126C.

About

No description, website, or topics provided.

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 65.4%
  • QML 19.2%
  • CMake 14.1%
  • GLSL 0.7%
  • Shell 0.2%
  • Python 0.2%
  • C 0.2%