Skip to content

Commit 417d9d2

Browse files
committed
Updated install instructions
1 parent 466a1c4 commit 417d9d2

File tree

7 files changed

+39
-271
lines changed

7 files changed

+39
-271
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<img src="https://github.com/ethz-asl/maplab/wiki/logos/maplab_new.png" width="500">
1+
<img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/logos/maplab_new.png" width="500">
22

33

44
*Ubuntu 18.04+ROS melodic*: [![Build Status](https://jenkins.asl.ethz.ch/buildStatus/icon?job=maplab_nightly)](https://jenkins.asl.ethz.ch/job/maplab_nightly)
@@ -19,16 +19,16 @@ This repository contains **maplab 2.0**, an open research-oriented mapping frame
1919
## Features
2020

2121
### Robust visual-inertial odometry with localization
22-
<img src="https://github.com/ethz-asl/maplab/wiki/readme_images/rovio_stairs.gif" width="400"> <img src="https://github.com/ethz-asl/maplab/wiki/readme_images/rviz_cla_vs.gif" width="400">
22+
<img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/readme_images/rovio_stairs.gif" width="400"> <img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/readme_images/rviz_cla_vs.gif" width="400">
2323

2424
### Large-scale multisession mapping and optimization
25-
<img src="https://github.com/ethz-asl/maplab/wiki/readme_images/largescale.gif" width="400"> <img src="https://github.com/ethz-asl/maplab/wiki/readme_images/cla.png" width="400">
25+
<img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/readme_images/largescale.gif" width="400"> <img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/readme_images/cla.png" width="400">
2626

2727
### Dense reconstruction
28-
<img src="https://github.com/ethz-asl/maplab/wiki/readme_images/stereo.png" width="400"> <img src="https://github.com/ethz-asl/maplab/wiki/readme_images/pmvs.png" width="400">
28+
<img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/readme_images/stereo.png" width="400"> <img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/readme_images/pmvs.png" width="400">
2929

3030
### A research platform extensively tested on real robots
31-
<img src="https://github.com/ethz-asl/maplab/wiki/readme_images/topomap.png" width="400"> <img src="https://github.com/ethz-asl/maplab/wiki/readme_images/robots.jpg" width="400">
31+
<img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/readme_images/topomap.png" width="400"> <img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/readme_images/robots.jpg" width="400">
3232

3333
## Installation and getting started
3434

@@ -44,7 +44,7 @@ The following articles help you with getting started with maplab and ROVIOLI:
4444

4545
## Research Results
4646

47-
The maplab framework has been used as an experimental platform for numerous scientific publications. For a complete list of publications please refer to [Research based on maplab](https://maplab.asl.ethz.ch/docs/master/pages/overview_and_introduction/C_Related-Research.html).
47+
The maplab framework has been used as an experimental platform for numerous scientific publications. For a complete list of publications please refer to [Research based on maplab](https://maplab.asl.ethz.ch/docs/master/pages/overview_and_introduction/C_Related-Research.html#additional-citations).
4848

4949
## Citing
5050

docs/pages/installation/A_Installation-Ubuntu.md

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,19 @@
1-
## Installing on Ubuntu
2-
14.04 (depricated), 16.04, 18.04, 20.04 (experimental)
3-
### Automatic installation
4-
For your convenience, we provide an install script to automate the whole installtion. Please make sure that you have an [SSH key activated on your GitHub account.](https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)
5-
To install maplab, use the following commands
6-
```bash
7-
wget https://raw.githubusercontent.com/ethz-asl/maplab/develop/install.sh
8-
bash install.sh # Use the argument "experimental" to also install our latest features if your are eligible. Do not use sudo.
9-
```
1+
## Installing on Ubuntu
2+
18.04, 20.04 (experimental)
103

114
### Manual installation
12-
If you prefer manually installing all compoments, following this guideline.
5+
First set up some basic environment variables
136

14-
```bash
15-
export UBUNTU_VERSION=$(lsb_release -cs) #(Ubuntu 14.04: trusty (depricated), Ubuntu 16.04: xenial, Ubuntu 18.04: bionic, Ubuntu 20.04: focal (experimental))
16-
export ROS_VERSION=melodic #(Ubuntu 14.04: indigo (depricated), Ubuntu 16.04: kinetic, Ubuntu 18.04: melodic, Ubuntu 20.04: noetic (experimental))
17-
export CATKIN_WS=~/maplab_ws
7+
```bash
8+
export UBUNTU_VERSION=$(lsb_release -cs) #(Ubuntu 18.04: bionic, Ubuntu 20.04: focal (experimental))
9+
export ROS_VERSION=melodic #(Ubuntu 18.04: melodic, Ubuntu 20.04: noetic (experimental))
10+
export CATKIN_WS=~/maplab_ws #(Wherever you want to install maplab)
1811
```
1912

2013
#### Install required system packages
2114
```bash
2215
# Install ROS
23-
# NOTE: Follow the official ROS installation instructions for melodic.
16+
# NOTE: Follow the official ROS installation instructions.
2417
sudo apt install software-properties-common
2518
sudo add-apt-repository "deb http://packages.ros.org/ros/ubuntu $UBUNTU_VERSION main"
2619
wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -
@@ -29,12 +22,13 @@ sudo apt install ros-$ROS_VERSION-desktop-full "ros-$ROS_VERSION-tf2-*" "ros-$RO
2922

3023

3124
# Install framework dependencies.
32-
sudo apt install autotools-dev ccache doxygen dh-autoreconf git liblapack-dev libblas-dev libgtest-dev libreadline-dev libssh2-1-dev pylint clang-format-3.9 python-autopep8 python-catkin-tools python-pip python-git python-setuptools python-termcolor python-wstool libatlas3-base libv4l-dev --yes
25+
sudo apt install autotools-dev ccache doxygen dh-autoreconf git liblapack-dev libblas-dev libgtest-dev libreadline-dev libssh2-1-dev pylint clang-format-6.0 python-autopep8 python-catkin-tools python-pip python-git python-setuptools python-termcolor python-wstool libatlas3-base libv4l-dev --yes
3326

34-
sudo pip install requests
27+
pip install requests
3528
```
3629

3730
#### Update ROS environment
31+
Follow this if you freshly installed ROS, if you already had ROS installed you can skip this.
3832

3933
```bash
4034
sudo rosdep init
@@ -53,11 +47,8 @@ echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc &&\
5347
source ~/.bashrc && echo $PATH
5448
ccache --max-size=10G
5549
```
56-
Your path (at least the beginning) should look like:
57-
```
58-
/usr/lib/ccache:/usr/local/cuda-5.5/bin/:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
59-
```
60-
And g++/gcc should now point to:
50+
51+
Now g++/gcc should now point to:
6152
```
6253
which g++ gcc
6354
/usr/lib/ccache/g++
@@ -72,8 +63,8 @@ Empty the cache and reset the stats:
7263
ccache -C -z
7364
```
7465
ccache only works for a clean workspace. You will need a `make clean` otherwise.
75-
#### Create a catkin workspace
7666

67+
#### Create a catkin workspace
7768
To create a workspace, run:
7869
```bash
7970
mkdir -p $CATKIN_WS/src
@@ -82,17 +73,19 @@ catkin init
8273
catkin config --merge-devel # Necessary for catkin_tools >= 0.4.
8374
catkin config --extend /opt/ros/$ROS_VERSION
8475
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
76+
```
8577

86-
# For more informative and readable output.
78+
For more informative and readable output use:
79+
```bash
8780
catkin config --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS=-fdiagnostics-color
88-
cd src
8981
```
9082

9183
#### Cloning maplab repository
9284
Now you can clone maplab and its dependencies via SSH, https clone is not supported for developer version.
93-
SSH keys need to be installed and connected to your GitHub account, as explained [here.](https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)
85+
SSH keys need to be installed and connected to your GitHub account, as explained [here](https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent).
9486

9587
```bash
88+
cd src
9689
git clone [email protected]:ethz-asl/maplab.git --recursive -b develop
9790
```
9891

@@ -110,8 +103,8 @@ cd $CATKIN_WS/src/maplab
110103
cd $CATKIN_WS
111104
catkin build maplab
112105
```
113-
**Note:** Currently some of our dependencies contain superfluous packages that will not have all the necessary dependencies. Therefore compilation will fail for these packages, if you try to build the complete workspace with: `catkin build`. Please have a look at the [FAQ](../overview_and_introduction/D_FAQ.md).
106+
**Note:** Currently some of our dependencies contain superfluous packages that will not have all the necessary dependencies. Therefore compilation will fail for these packages, if you try to build the complete workspace with: `catkin build`.
114107

115108
#### Troubleshooting
116109

117-
Please visit the [FAQ](../overview_and_introduction/D_FAQ.md) section.
110+
Please visit the [FAQ](../overview_and_introduction/D_FAQ.html#installation) and the additional instructions on debugging provided here [here](B_Compilation-and-Debugging.html).
Lines changed: 2 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
## Compilation and Debugging
22

33
### Use ccache
4-
ccache is a fast compiler cache. It is a program that is sitting in front of gcc and monitors what is being compiled. If a file was compiled before in the exact same state, then ccache will serve a compilation request from cache and thus lead to "instant" compilation.
4+
ccache is a fast compiler cache. It is a program that sits in front of gcc and monitors what is being compiled. If a file was compiled before in the exact same state, then ccache will serve a compilation request from cache and thus lead to "instant" compilation.
55

66
To install ccache:
77
```bash
@@ -23,10 +23,6 @@ If you only changed a single package you can also restrict the build process to
2323
```
2424
catkin build maplab --no-deps
2525
```
26-
Even more efficient is invoking ```make -j8``` in the build folder of the package
27-
```
28-
cd ~/catkin_ws/build/maplab && make -j8
29-
```
3026

3127
### Compile in Release/Debug mode
3228
Most packages are not built in Release mode. To build packages in Release mode:
@@ -82,87 +78,4 @@ gdb --ex run --args ~/devel/lib/maplab/maplab --use_external_memory=false
8278
```
8379
Where ```--use_external_memory=false``` is just an example flag.
8480

85-
### Clang on Ubuntu 14.04
86-
Clang 3.5 can be installed with
87-
```
88-
sudo apt-get install clang-3.5
89-
```
90-
and set as the default compiler with:
91-
```
92-
sudo update-alternatives --config c++
93-
sudo update-alternatives --config cc
94-
```
95-
96-
If you are using clang together with ccache on Ubuntu 14.04 you should consider updating the system's ccache version.
97-
98-
### Compile clang with openmp support on Ubuntu 14.04
99-
100-
Get the sources:
101-
102-
```
103-
mkdir -p /tmp/llvm-clang-omp
104-
cd /tmp/llvm-clang-omp
105-
git clone https://github.com/clang-omp/llvm
106-
git clone https://github.com/clang-omp/compiler-rt llvm/projects/compiler-rt
107-
git clone -b clang-omp https://github.com/clang-omp/clang llvm/tools/clang
108-
```
109-
110-
Build and time for several coffees:
111-
112-
```
113-
mkdir -p /tmp/llvm-clang-omp/build
114-
cd /tmp/llvm-clang-omp/build
115-
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm
116-
make -j8
117-
```
118-
119-
Remove old packages and install the compiler and Intel runtime.
120-
121-
```
122-
sudo apt-get install checkinstall libiomp-dev
123-
sudo apt-get remove clang-* llvm-* libclang*
124-
125-
cd /tmp/llvm-clang-omp/build
126-
checkinstall
127-
```
128-
Set a meaningful name for the package and let it conflict with the system's clang packages if you want to exclude the possibility of different versions conflicting.
129-
130-
Set as default compiler:
131-
132-
```
133-
sudo rm /etc/alternatives/cc
134-
sudo rm /etc/alternatives/c++
135-
136-
sudo ln -s /usr/local/bin/clang-3.5 /etc/alternatives/cc
137-
sudo ln -s /usr/local/bin/clang++ /etc/alternatives/c++
138-
```
139-
140-
### Upgrade ccache on Ubuntu 14.04
141-
Ubuntu 14.04 delivers ccache 3.1.9 that has no official clang support. A manual update to a version of ccache >= 3.2.0 is recommended when using clang. The following steps can be used to perform this update:
142-
143-
```
144-
sudo apt-get install devscripts
145-
mkdir -p /tmp/ccache
146-
```
147-
148-
Get the current distro source package:
149-
```
150-
cd /tmp/ccache
151-
apt-get build-dep ccache
152-
apt-get source ccache
153-
```
154-
155-
Upgrade the distro source package with the recent upstream source:
156-
```
157-
cd /tmp/ccache
158-
wget http://samba.org/ftp/ccache/ccache-3.2.1.tar.gz
159-
cd ccache-3.1.9
160-
uupdate ../ccache-3.2.1.tar.gz
161-
```
162-
163-
Build binary package and install:
164-
```
165-
cd /tmp/ccache/ccache-3.2.1
166-
dpkg-buildpackage -us -uc -nc
167-
sudo dpkg -i ../ccache_3.2.1-0ubuntu1_amd64.deb
168-
```
81+
For adding gdb or valgrind to ROS launch files see examples [here](http://wiki.ros.org/roslaunch/Tutorials/Roslaunch%20Nodes%20in%20Valgrind%20or%20GDB).

docs/pages/overview_and_introduction/A_The-Maplab-Framework.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@ Maplab 2.0 can be divided into three main components:
2121
* **Console:** The console is meant for offline map optimization and multi-session mapping.
2222

2323
Below is an overview of one possible configuration.
24-
<img src="https://github.com/ethz-asl/maplab/tree/master/docs/pages/images/system-overview.png">
24+
<img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/images/system-overview.png">

docs/pages/overview_and_introduction/D_FAQ.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
**Content:**
44
* [Installation](#installation)
55
* [Sensors](#sensors)
6-
* [ROVIOLI](#rovioli)
6+
* [Map Building](#map-building)
77
* [Optimization](#optimization)
88
* [Miscellaneous](#miscellaneous)
99

@@ -118,7 +118,7 @@ For visual-inertial sensors calibrations can then be obtained using [Kalibr](htt
118118

119119
For visual-inertial mapping the minimum requirements are: a gray-scale (preferably fish-eye) camera with global shutter and an IMU. The second critical component is a solid time synchronization between camera and IMU, i.e. ideally both devices are triggered based on the same clock.
120120

121-
### Map building
121+
### Map Building
122122

123123
#### Q: How can I make maplab stop appending "image_raw" to the image topic?
124124

@@ -155,4 +155,4 @@ Not seeing any sort of logical structure in the landmarks and bad convergence ca
155155

156156
That's why:
157157

158-
<img src="https://github.com/ethz-asl/maplab/tree/master/docs/pages/images/cool_sheep.gif" width="400">
158+
<img src="https://raw.githubusercontent.com/ethz-asl/maplab/master/docs/pages/images/cool_sheep.gif" width="400">
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
## Known Issues
22

3-
Please also have a look at the [FAQ](https://maplab.asl.ethz.ch/docs/master/pages/overview_and_introduction/D_FAQ.html), there might be a solution to your issue there. We encourage you to contribute to this repository if you have a solution to these issues
3+
Please also have a look at the [FAQ](D_FAQ.html), there might be a solution to your issue there. We encourage you to contribute to this repository if you have a solution to these issues
44

55
### Building with unstable internet connection
66

7-
Building maplab will download and check-out dependencies, which can be very slow depending on the speed of you internet connection. A more detailed answer can be found in the [FAQ](https://maplab.asl.ethz.ch/docs/master/pages/overview_and_introduction/D_FAQ.html).
7+
Building maplab will download and check-out dependencies, which can be very slow depending on the speed of you internet connection. A more detailed answer can be found in the [FAQ](D_FAQ.html#installation).
8+
9+
### Protobuf errors when changing protoc files
10+
11+
Sometimes when changing the `.protoc` files the program will segfault when loading a map for example. This is cause by an incompatibility with ccache. Clear the work space `catkin clean --yes` and also ccache `ccache -C -z`.

0 commit comments

Comments
 (0)