1. Introduction
Since the advent of Industry 4.0, intelligent and automated manufacturing technologies have rapidly evolved [
1]. The requirements for robots used at diverse industrial sites have become increasingly sophisticated. In addition to stationary robots used in manufacturing lines, mobile robots such as vacuum cleaners and service robots are becoming more popular. Mobile robots can be utilized in high-risk environments, such as construction and disaster sites; however, autonomous map generation is required for autonomous movement. An interactive visual navigation (IVN) system based on reinforcement learning and task-related latent variable prediction has been proposed [
2]. IVN employs a framework that learns from the agent’s actions and interactions with the environment, but it does not enable map construction. Maps can be constructed using simultaneous localization and mapping (SLAM), a map construction technique that records the distance traveled and predicts the robot’s own position without prior knowledge [
3,
4,
5,
6,
7].
SLAM has versions that utilize various sensors such as light detection and ranging (LiDAR) sensors, cameras, and inertial measurement unit (IMU) sensors, and these versions are also differentiated by various algorithms and operating environments [
8,
9,
10]. SLAM is primarily classified as either visual SLAM using cameras or LiDAR SLAM using LiDAR sensors. LiDAR SLAM is widely used because visual SLAM lacks a distance recognition capability and has low accuracy. Offline SLAM and online SLAM are distinguished based on whether the sensor data are collected in real time. Offline SLAM collects all sensor data before constructing a map, whereas online SLAM uses only sensor data received in real time to construct a map. Graph-based and filter-based SLAM are used to estimate the current position and map, which are SLAM’s main problems. Recently, graph-based SLAM has become a dominant approach. It addresses the primary location problem by representing the relevant information as nodes and constructing a map from the edges. Graph-based SLAM can incorporate various sensors, including LiDAR and IMU sensors, in the graph configuration, resulting in good sensor scalability and effective error minimization through the graph structure [
11]. Popular open-source libraries that use graph-based SLAM include RTAB-Map, Cartographer, ORB-SLAM, and Hector SLAM [
9,
12,
13]. Because we use LiDAR data for SLAM and Hector SLAM does not enable 3D mapping, we decided to use Google Cartographer, which is laser-based, rather than RTAB-Map and ORB-SLAM, which use a vision-based algorithm [
14,
15].
Google Cartographer (Cartographer) is an open-source library that uses graph-based SLAM. It uses branch-and-bound optimization techniques to reduce the amount of computation required. Consequently, for 2D SLAM, Cartographer can compute high-resolution maps of up to 5 cm in real time and integrates them with the Robot Operating System (ROS) environment. The ROS is an open-source framework for robotic applications [
16]. Several functions and libraries are available, including hardware abstraction, message passing between components, and sensor data processing [
17].
However, numerous issues arise when Cartographer uses bag files containing sensor data. First, Cartographer does not operate properly when the time between several sensor data points is not synchronized or when some sensor data fields are omitted. Second, when constructing a 3D map in real time, only the most recently measured 3D sensor data are displayed, rather than all sensor data measured to date. Third, utilizing multiple robots to create a map has advantages in terms of scalability and time efficiency. However, because Cartographer performs SLAM on a single node, numerous nodes cannot construct a single map. Finally, when filtering the sensor data, numerous data points are filtered based on their distances from the origin.
Existing experiments have been conducted to improve the SLAM performance using Cartographer [
18,
19,
20,
21,
22,
23,
24,
25,
26]. Despite improvements to the Cartographer algorithm [
18,
27,
28], it cannot process sensor timestamp synchronization or omitted sensor data. Cartographer has improved 3D mapping by enhancing the point cloud consistency [
29]. However, improvements to the processing performance for the recorded sensor data and functional improvements for integration with ROS visualization (rviz) are required. Map construction strategies and path-planning algorithms based on multi-node SLAM have been proposed [
30,
31]. However, implementing multi-node SLAM in Cartographer has not yet been discussed.
This paper presents several schemes for improving Cartographer’s sensor data adaptability and functionality in an ROS2 environment. The main contributions of this study are as follows:
We propose a time synchronization scheme for asynchronous sensor data.
We propose a scheme for generating inertial data in order to address IMU data loss.
We propose a scheme for expressing all measured sensor data in rviz while constructing a 3D map.
We propose a scheme for enabling multi-node SLAM.
we propose elliptical filtering, which filters data using the elliptic equation, to avoid over-filtering.
The remainder of this paper is organized as follows.
Section 2 provides background information and outlines the structures of existing SLAM systems.
Section 3 examines the limitations inherent in current SLAM systems.
Section 4 delineates the architecture and functional implementation of the proposed SLAM system.
Section 5 evaluates the proposed system, and
Section 6 concludes the paper by discussing potential avenues for future research.
2. Background and Related Works
There are several popular open-source SLAM implementations, including RTAB-Map, ORB-SLAM, Hector SLAM, and Cartographer [
9,
13,
14,
15]. ORB-SLAM is a visual SLAM system that utilizes camera inputs [
9]. It uses ORB characteristics to track and map the environment. However, unlike ORB-SLAM, our study was based on LiDAR SLAM. Hector SLAM is designed for quick mapping in indoor environments and uses LiDAR for 2D mapping. However, it does not support 3D mapping [
13]. RTAB-Map and Cartographer enable both 2D and 3D mapping [
14,
15]. RTAB-Map is a visual SLAM system that uses camera inputs by default but can also use LiDAR as an option. Cartographer, on the other hand, is a LiDAR SLAM implementation that takes inputs from LiDAR.
Table 1 compares the features of the existing SLAM implementations with the proposed approach. The SLAM implementations do not support multiple nodes, but the proposed approach does.
Cartographer is a SLAM system developed by Google [
14].
Figure 1 depicts the architecture and operation of a Cartographer-based SLAM system. Cartographer can obtain sensor data from a bag file containing a variety of sensor data, including those from LiDAR and IMU sensors. Because components in ROS2 can communicate using the publish–subscribe mechanism, rosbag2_player sends sensor data stored in the bag file to cartographer_ros. cartographer_ros includes cartographer_node, cartographer_occupancy_grid_node, and submaps_display. cartographer_ros transmits the sensor data to Cartographer, which executes graph-based SLAM and sends the results to cartographer_ros, which then sends the sensor data and SLAM results to rviz2 [
32]. The Cartographer-based SLAM system then visualizes the map created using rviz2, as illustrated in
Figure 2.
In [
27], because the Cartographer SLAM algorithm, which performs loopback scan-to-map detection, exhibits errors in environments with few distinguishable characteristics, submap matching was used to address the errors. Preliminary matching and lazy decisions were utilized to improve the real-time performance. In [
18], a multi-stage distance scheduler was proposed to increase Cartographer’s SLAM processing performance. The proposed scheme improved the local SLAM by adjusting the distance between the LiDAR sensor and the scan matcher’s search window. In [
28], KP-Cartographer was proposed, a lightweight SLAM scheme for mapping and estimating locations using LiDAR data. Laser point cloud feature extraction and personal localization algorithms have been used in low-power mobile devices. However, previous studies were unable to handle scenarios in which the sensor timestamps disagreed or there were no inertial data.
In [
29], an algorithm for continuous-time SLAM was proposed to improve Cartographer’s SLAM 3D mapping. The performance was improved by enhancing the global point consistency. However, greater processing performance for the recorded bag files and a scheme for connecting to rviz are required. A strategy for effective map construction using multi-robot systems in a communication-limited environment was proposed in [
30]. Owing to limited communication resources, data transmission for grid map construction causes bottlenecks. The creation of a topology map for each robot reduces the amount of data transmitted. A system for creating and updating maps and path planning for a heterogeneous group of robots was proposed in [
31]. Its client–server architecture improves the map accuracy. However, while existing research has proposed a scheme for multi-robot-based map construction, methods for multi-robot SLAM in Cartographer have not been proposed.