From 1d256adeb553d9c43a5a1ceb791724890289a031 Mon Sep 17 00:00:00 2001 From: Holger Rapp Date: Mon, 8 May 2017 16:04:27 +0200 Subject: [PATCH] Adds an FAQ entry why the IMU is required in 3D (#328) --- docs/source/faq.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/source/faq.rst b/docs/source/faq.rst index 27f259f..f92bc04 100644 --- a/docs/source/faq.rst +++ b/docs/source/faq.rst @@ -34,3 +34,20 @@ measurements, for matching. Since there are two VLP-16s, 160 UDP packets is enough for roughly 2 revolutions, one per VLP-16. __ https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros/configuration_files/backpack_3d.lua + +Why is IMU data required for 3D SLAM, but not for 2D? +----------------------------------------------------- + +In 2D, Cartographer supports running the correlative scan matcher, which is normally used for finding loop closure constraints, for local SLAM. +It is computationally expensive but can often render the incorporation of odometry or IMU data unnecessary. +2D also has the benefit of assuming a flat world, i.e. up is implicitly defined. + +In 3D, an IMU is required mainly for measuring gravity. +Gravity is an attractive quantity to measure since it does not drift and is a very strong signal and typically comprises most of any measured accelerations. +Gravity is needed for two reasons: + +1. There are no assumptions about the world in 3D. +To properly world align the resulting trajectory and map, gravity is used to define the z-direction. + +2. Roll and pitch can be derived quite well from IMU readings once the direction of gravity has been established. +This saves work for the scan matcher by reducing the search window in these dimensions.