COOPERATION OF CPU AND GPU PROGRAMS
FOR REAL-TIME 3D MAP BUILDING
Yonghyun Jo
1
, Hanyoung Jang
1
, Yeonho Kim
2
, Joon-Kee Cho
2
, Hyoung- Ki Lee
2
, Young Ik Eom
3
and JungHyun Han
1
1
College of Information and Communication, Korea University, Seoul, Republic of Korea
2
Samsung Electronics Co., Samsung Advanced Institute of Technology, Suwon, Republic of Korea
3
School of Information and Communications Engineering, Sungkyunkwan University, Suwon, Republic of Korea
Keywords:
GPU program, Map building, CUDA.
Abstract:
This paper presents how the CPU and GPU programs coordinate in the context of 3D map modeling for a
mobile home service robot. In this study, the representation of the environment is given as point clouds,
and each scan of point clouds is quite efficiently processed using the parallel processing capability of GPU.
Then, the result is read back to CPU for incrementally constructing the map. Due to the coordination between
the CPU and GPU, a 3D map can be built at real time. This paper presents the software architecture of the
CPU-GPU coordination, the GPU algorithm, and its performance gain.
1 INTRODUCTION
Recently, much attention has been directed to home
service robots such as cleaning robots while the mar-
kets for conventional industrial robots are saturating.
A home service robot requires a map, which is a spa-
tial model of the physical environment. In our study,
the environment is first captured as point clouds, and
then a 3D map is incrementally constructed from the
successive inputs of the point clouds. Noting that a lot
of planar surfaces, such as walls and floors, exist in
a typical indoor environments, we propose to extract
the plane information and store it into the 3D map.
CPU
GPU
scanning
map building
point clouds
(in a texture)
micro-planes
mean filtering
micro-plane
extraction
Figure 1: CPU-GPU coordination.
The algorithm proposed in this paper utilizes both
the CPU and GPU (Graphics Processing Unit) for
building a map with planar features included. The co-
ordination between them is illustrated in Fig. 1. First
of all, the scene is scanned and the point clouds are
stored in a texture, which refers to a rectangular array
of texels. Then, the texture is passed to GPU. Two
tasks are done by the GPU: (1) a micro-plane is ex-
tracted for each point, and (2) the micro-planes are
smoothed using mean filtering. Finally, the buffer
storing the micro-planes is read back to CPU, and the
CPU builds a 3D map which contains plane informa-
tion of the environment.
This paper presents the micro-plane extraction and
mean filtering algorithms, and shows why they can be
efficiently implemented in GPU. (Presenting the map
building algorithm is beyond the scope of this paper.)
The performance of the GPU implementation is pre-
sented, and is also compared with the CPU implemen-
tation of the same algorithm.
2 MOBILE ROBOT AND
WORKING ENVIRONMENT
Fig. 2-(a) shows the experimental robot and a sec-
tion of the home environment used in the experiment.
The time-of-flight camera mounted on the robot scans
the environment at 5 frames per second (fps). Con-
sequently, the complete process of scanning a scene,
registering it into the previous scans, and constructing
the 3D map is done in 200 msec. A scan’s resolution
is 176×144. The section of the home environment
shown in Fig. 2-(a) requires 5 scans, and Fig. 2-(b)
shows the result of rendering the 3D points in a scan.
(Each point of the scan is represented as a 3D point,
and therefore can be directly rendered.) Fig. 2-(c)
visualizes the final 3D map representation, where the
planar features are colored in red. (The points that are
302
Jo Y., Jang H., Kim Y., Cho J., Lee H., Ik Eom Y. and Han J..
COOPERATION OF CPU AND GPU PROGRAMS FOR REAL-TIME 3D MAP BUILDING.
DOI: 10.5220/0003613203020304
In Proceedings of the 6th International Conference on Software and Database Technologies (ICSOFT-2011), pages 302-304
ISBN: 978-989-8425-77-5
Copyright
c
2011 SCITEPRESS (Science and Technology Publications, Lda.)