2017-10-17 16:07:54 +08:00
|
|
|
.. Copyright 2017 The Cartographer Authors
|
|
|
|
|
|
|
|
.. Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
.. Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
|
|
|
|
===========
|
|
|
|
Terminology
|
|
|
|
===========
|
|
|
|
|
|
|
|
This documents a few common patterns that exist in the Cartographer codebase.
|
|
|
|
|
|
|
|
Frames
|
|
|
|
======
|
|
|
|
|
2017-11-03 20:44:23 +08:00
|
|
|
global map frame
|
2017-10-17 16:07:54 +08:00
|
|
|
This is the frame in which global SLAM results are expressed. It is the fixed
|
|
|
|
map frame including all loop closure and optimization results. The transform
|
|
|
|
between this frame and any other frame can jump when new optimization results
|
|
|
|
are available. Its z-axis points upwards, i.e. the gravitational acceleration
|
|
|
|
vector points in the -z direction, i.e. the gravitational component measured
|
|
|
|
by an accelerometer is in the +z direction.
|
|
|
|
|
2017-11-03 20:44:23 +08:00
|
|
|
local map frame
|
2017-10-17 16:07:54 +08:00
|
|
|
This is the frame in which local SLAM results are expressed. It is the fixed
|
|
|
|
map frame excluding loop closures and the pose graph optimization. For a given
|
|
|
|
point in time, the transform between this and the global map frame may change,
|
|
|
|
but the transform between this and all other frames does not change.
|
|
|
|
|
2017-11-03 20:44:23 +08:00
|
|
|
submap frame
|
|
|
|
Each submap has a separate fixed frame.
|
|
|
|
|
2017-10-17 16:07:54 +08:00
|
|
|
tracking frame
|
2017-11-03 20:44:23 +08:00
|
|
|
The frame in which sensor data is expressed. It is not fixed, i.e. it changes
|
|
|
|
over time. It is also different for different trajectories.
|
|
|
|
|
|
|
|
gravity-aligned frame
|
|
|
|
Only used in 2D. A frame colocated with the tracking frame but with a
|
|
|
|
different orientation that is approximately aligned with gravity, i.e. the
|
|
|
|
gravitational acceleration vector points approximately in the -z direction. No
|
|
|
|
assumption about yaw (rotation around the z axis between this and the tracking
|
|
|
|
frame) should be made. A different gravity-aligned frame is used for different
|
|
|
|
trajectory nodes, e.g. yaw can change arbitrarily between gravity-aligned
|
|
|
|
frames of consecutive nodes.
|
2017-10-17 16:07:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Transforms
|
|
|
|
==========
|
|
|
|
|
|
|
|
local_pose
|
2017-11-03 20:44:23 +08:00
|
|
|
Transforms data from the tracking frame (or a submap frame, depending on
|
|
|
|
context) to the local map frame.
|
2017-10-17 16:07:54 +08:00
|
|
|
|
|
|
|
global_pose
|
2017-11-03 20:44:23 +08:00
|
|
|
Transforms data from the tracking frame (or a submap frame, depending on
|
|
|
|
context) to the global map frame.
|
|
|
|
|
|
|
|
local_submap_pose
|
|
|
|
Transforms data from a submap frame to the local map frame.
|
|
|
|
|
|
|
|
global_submap_pose
|
|
|
|
Transforms data from a submap frame to the global map frame.
|