没有合适的资源?快使用搜索试试~ 我知道了~
首页cartographer 3D mapping
cartographer 3D mapping
需积分: 49 28 下载量 11 浏览量
更新于2023-03-16
评论 2
收藏 1.93MB PDF 举报
Continuous-Time SLAM—Improving Google’s Cartographer 3D Mapping
资源详情
资源评论
资源推荐
53
Continuous-Time SLAM—Improving
Google’s Cartographer 3D Mapping
Andreas Nüchter
a,b
, Michael Bleier
b
, Johannes Schauer
a
and
Peter Janotta
c
a
Informatics VII – Robotics and Telematics, Julius-Maximilians University Würzburg,
Germany; (andreas.nuechter, johannes.schauer)@uni-wuerzburg.de
b
Zentrum für Telematik e.V., Würzburg, Germany;
(andreas.nuechter, michael.bleier)@telematik-zentrum.de
c
Measurement in Motion GmbH, Theilheim, Germany; peter.janotta@mim3d.de
Abstract: This paper shows how to use the result of Google’s simultaneous
localization and mapping (SLAM) solution, called Cartographer, to bootstrap a
continuous-time SLAM algorithm that was developed by the authors and
presented in previous publications. The presented approach optimizes the
consistency of the global point cloud, and thus improves on Google’s results.
Algorithms and data from Google are used as input for the continuous-time
SLAM software. In preceding work, the continuous-time SLAM was successfully
applied to a similar backpack system which delivers consistent 3D point clouds
even in the absence of an IMU. Continuous-time SLAM means that the trajectory
of a mobile mapping system is treated in a semi-rigid fashion, i.e., the trajectory is
deformed to yield a consistent 3D point cloud of the measured environment.
Keywords: 3D laser scanner;
mapping
; SLAM; trajectory optimization; personal
laser scanner
1. Introduction
On October 5, 2016, Google released the source code of its real-time 2D
and 3D simultaneous localization and mapping (SLAM) library Cartographer
1
. The
utilized algorithms for solving SLAM in 2D have been described in a recent paper
by the authors of the software (Hess et al., 2016). It can deliver impressive results—
especially considering that it runs in real-time on commodity hardware. A
publication describing the 3D mapping solution is still missing. The released
software however, solves the problem. In addition, Google published a very
demanding, high-resolution data set to the public for testing their algorithms. Also,
custom data sets are easy to process, as Google’s software comes with an
1
https://opensource.googleblog.com/2016/10/introducing-cartographer.html
54
integration into the robot operating system (ROS) (Quigley et al., 2009). ROS is the
de-facto standard middleware in the robotic community. It allows to connect
heterogeneous software packages via a standardized inter-process communication
(IPC) system and is available on recent GNU/Linux distributions.
Google’s sample data set was recorded in the museum “Deutsches Museum”
in München, Germany. It is the world’s largest museum of science and technology,
and has about 28,000 exhibited objects from 50 fields of science and technology.
The data set was recorded with a backpack system, which features an inertial
measurement unit (IMU) and two Velodyne PUCK (VLP-16) sensors. The
processed trajectory was 108 meters long and contained 300,000 single 3D scans
from the PUCK sensors.
Due to a high demand on flexible mobile mapping systems, mapping
solutions on pushcarts, on trolleys, on mobile robots, and backpacks have recently
been developed. Human-carried systems offer the advantage of overcoming
doorsteps and the operator can open closed doors etc. To this end, several vendors
build human-carried systems which are also often called personal laser scanners.
This article shows how to use the result of Google’s SLAM solution to
bootstrap our continuous-time SLAM algorithm. Our approach optimizes the
consistency of the global point cloud, and thus improves on Google’s results. In
this article, the algorithms and data from Google are used as input for our
continuous-time SLAM solution, which was recently published in (Elseberg
et al. 2013). In preceding research, the presented algorithmic solution was
successfully applied to a similar backpack system set up by the authors which
delivers consistent 3D point clouds even in the absence of an IMU (Nüchter et al.,
2015).
In the following, this article will discuss the related work with a focus on
unconventional mobile mapping systems and the work on calibration, referencing
and SLAM. Then, the focus is shifted towards the registration of 3D scans in more
detail and the ICP algorithm described and the globally consistent scan matching is
derived. This is finally extended to a continuous-time SLAM solution, which takes
Google’s Cartographer 3D Mapping as input.
2. Related Works
2.1. Laser Scanner on Robots and Backpacks
Mapping environments has received a lot of attention in the robotics
community, especially after the appearance of cost effective 2D laser range finders.
Seminal work with 2D profiles in robotics was performed by (Lu and Milios, 1994).
After deriving 2D variants of the by now well-known ICP algorithm, they derived
a PosegraphSLAM solution (Lu and Milios, 1997) that considers all 2D scans in a
global fashion. Afterwards, many other approaches to SLAM were presented,
55
including extended Kalman filters, particle filters, expectation maximization and
GraphSLAM. These SLAM algorithms aimed at enabling mobile robots to map the
environments where they have to carry out user-specific tasks. Thrun et al.
(2000)
presented a system, where a horizontally mounted scanner performed
FastSLAM—a particle filter approach to SLAM—while an upward looking scanner
was used to acquire 3D data, exploiting the robot motion to construct
environments in 3D. Lu and Milios’ approach was extended to 3D point clouds
and possesses six degrees of freedom (DoF) in (Borrmann et al., 2008).
In 2004 an early version of a backpack system was presented. Saarinen
et al., 2004, used the term Personal Localization And Mapping (PLAM). They used
a horizontally mounted SICK LMS200 scanner in front of the human-carried
system and put additional sensors and the computing equipment into a backpack.
Chen et al. (2010), presented a backpack system that featured a number of
lightweight 2D profilers (Hokuyo scanner) mounted in different viewing
directions. In previous work, the authors applied the algorithms to a backpack
system without an IMU (Nüchter et al., 2015). The system consists of a horizontally
mounted SICK LMS100 scanner and a spinning Riegl VZ400. Similar to the work of
Thrun et al. (2000) a horizontal scanner is used to estimate an initial trajectory that
is afterwards updated to regard the six DoF motion. The term Personal Laser
Scanning System was coined by Liang et al. (2014). They use a single FARO
scanner and rely on the global navigation satellite system (GNSS) system.
Similarly, the commercially available ROBIN system features a RIEGL VUX
scanner and GNSS. In contrast, the Leica Pegasus is a commercially available
backpack wearable mobile mapping solution, which is composed of two Velodyne
PUCK scanners, cameras and a GNSS. The PUCKs scan 300.000 points per second
and have a maximal range of 100 meters. Sixteen profilers are combined to yield a
vertical field of view of ±15 degree.
The Google Cartographer backpack was initially presented in September 2014.
Back then, the backpack system was based on two Hokuyo profilers and an
internal measurement unit (IMU). The current version features two Velodyne
PUCK scanners. Figure 1 shows the system from Google and our backpack
solution.
2.2. Calibration, Referencing, and SLAM
To acquire high-quality range measurement data with a mobile laser scanner,
the position and orientation of every individual sensor have to be known.
Traditionally, scanners, GPS and IMU are calibrated against other positioning
devices whose pose in relation to the system is already known. The term Boresight
calibration is used for the technique of finding the rotational parameters of the
range sensor with respect to the already calibrated IMU/GPS unit. In the airborne
laser scanning community, automatic calibration approaches are known (Skaloud
56
and Schaer, 2007), and similarly vehicle-based kinematic laser scanning has been
considered (Rieger et al., 2010). In the robotics community, there exist approaches
for calibrating several range scanners semi-automatically, i.e., with manually
labelled data (Underwood et al., 2009) or using automatically computed quality
metrics (Sheehan et al., 2011), (Elseberg et al., 2013). Often, vendors do not make
their calibration methods public and unfortunately, the authors of this paper have
no information on the calibration of the Google Cartographer backpack. In general,
calibration inaccuracies can, to some extent, be compensated with a SLAM
algorithm.
In addition to from sensor misalignment, timing related issues are second
sources of errors. All subsystems on a mobile platform need to be synchronized to
a common time frame. This is often accomplished with pure hardware via
triggering or with mixes of hardware and software such as pulse per second (PPS)
or the network time protocol (NTP). However, good online synchronization is not
always available for all sensors. Olson, 2010, has developed a solution for the
synchronization of clocks that can be applied after the fact. In ROS, sensor data is
time-stamped when it arrives and it is recorded in an open file format (.bag files).
Afterwards, one works with the time-stamped data using nearest values or
interpolation.
As the term direct referencing or direct Geo-referencing implies, it is the direct
measurement of the position and orientation of a mapping sensor, i.e., the laser
scanner, such that each range value can be referenced without the need for
collecting additional information. This means that the trajectory is then used to
“unwind” the laser range measurements to produce the 3D point cloud. This
approach has been taken by (Liang et al., 2014).
Some systems employ a horizontally mounted scanner and perform 2D SLAM
on the acquired profiles. Thrun et al. (2000), used FastSLAM, whereas Nüchter
et al. (2015) used SLAM based on the truncated signed distance function
(TSD SLAM), or alternatively, HectorSLAM (Kohlbrecher et al., 2011). These
2D SLAM approaches produce 2D grid maps. Similarly, Google’s Cartographer
code is for creating 2D grid maps (Hess et al., 2016). Afterwards, the computed
trajectory and the IMU measurements are used to “unwind” the laser range
measurements to produce the 3D point cloud.
The Google Cartographer library achieves its outstanding performance by
grouping scans into probability grids that they call submaps and by using a branch
and bound approach for loop closure optimization. While new scans are matched
with and subsequently entered into the current submap in the foreground, in the
background, the library matches scans to nearby submaps to create loop closure
constraints and to continually optimize the constraint graph of submaps and scan
poses. The authors differentiate between local scan matching which inserts new
scans into the current submap and which will accumulate errors over time and
57
global SLAM which includes loop closing and which removes the errors that have
accumulated in each submap that are part of a loop. Both local and global
matching are run at the same time.
During local scan matching, the Cartographer library matches each new scan
against the current submap using a Ceres-based scan matcher (Agarwal and
others). A submap is a regular probability grid where each discrete grid point
represents the probability that the given grid point is obstructed or free. These two
sets are disjoint. A grid point is obstructed if it contains an observed point. Free
points are computed by tracing the laser beam from the estimated scanner location
to the measured point through the grid. The optimization function of the scan
matcher makes use of the probability grid as part of its minimization function.
During global SLAM, finished submaps (those that no longer change) and the
scans they contain are considered for loop closing. As is the case during local scan
matching, the problem is passed to Ceres as a nonlinear least squares problem. The
algorithm is accurate down to the groups of points defined by the regular
probability grid of each submap. By taking the submap grid size as translation step
delta and the angle under which a grid point is seen at maximum range as the
rotation step delta, a finite set of possible transformations is created. This solution
space is searched using a branch and bound approach where nodes are traversed
using a greedy depth first search and the upper bound of the inner nodes is
defined in terms of computational effort and quality of the bound. To compute the
upper bound efficiently, grids are precomputed for tree heights that overlay the
involved submaps and store the maximum values of possible scores for each
obstructed grid point. This operation is done in ܱ(݊) with ݊ being the number of
obstructed grid points in each precomputed grid.
Hess et al. (2016), describe the 2D version of the algorithm, which uses the
horizontally mounted 2D profiler. The provided data sets also contain data from a
setup with Velodyne PUCK scanners (cf. Figure 1). Their algorithm is able to
process 3D data and to output poses with six DoF, however, a description of
their 3D approach is missing from their paper. Nevertheless, one can understand
from their published source code that their 3D implementation is mostly an
extension of their 2D approach to three dimensions with a 3D probability grid.
Some changes have been made to improve performance. For example, the 3D grid
is not fully traversed to find free grid cells but only a configurable distance up to
the measured point is checked.
Only a few approaches optimize the whole trajectory in a continuous fashion.
Stoyanov and Lilienthal, (2009), presented a non-rigid optimization for a mobile
laser scanning system. They optimize point cloud quality by matching the
beginning and the end of a single scanner rotation using ICP. The estimate of
the 3D pose difference between the two points in time is then used to optimize the
robot trajectory in between. In a similar approach, Bosse and Zlot, (2009), use a
剩余20页未读,继续阅读
XiongFei
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0