1 Introduction

Current navigation solutions employ one or several of the techniques based on GNSS satellites and receivers, WLAN devices, inertial sensors, altimeters, and video [1]. For clear- sky out-door navigation, GNSS alone will suffice for an accurate navigation solution. However in environments where GNSS is totally unavailable, such as underground parking garages, the location information needs to be derived from other sources such as wireless radio devices, motion sensors, and altimeters [2] [3]. Using altimeters might not be feasible, as they have inherent dynamic influential factors such as temperature and environmental pressure affecting the altitude readings [4].

In this paper, we study 3D map-matching in parking garages, a scenario different from the common map-matching problem in various senses. Firstly, in parking garages, GNSS cannot be relied on due to the heavy attenuation of satellite signals when penetrating concrete structures; therefore, one has to resort to using on-board motion sensors such as the odometer of the vehicle. Secondly, vehicle heading is less constrained than on roads and streets, which poses additional challenges when a gyroscope is used for heading estimation. Thirdly, positioning in multi-storey parking garages requires the use of 3D maps and knowledge on the altitude of the vehicle.

This paper proposes a method for achieving low cost and effective solution to such GNSS denied indoor multi-storey parking garage navigation. Many existing devices in the market, such as smartphones, are equipped with gyros, accelerometers, and all modern land vehicles (e.g., cars) have odometers. The speed information of the vehicle is obtained by a smart phone via a Bluetooth on-board diagnostics (OBD) reader supporting protocol version II connected to the vehicle. Given the nonholonomic constraints of vehicle motion and the initial location of the vehicle with respect to the target indoor, these sensors readings and a detailed 3D map are sufficient to obtain an indoor 3D positioning solution on a smartphone. This paper extends our preliminary results reported in [5].

A 3D model as depicted in Fig. 1(a), representing the structural details of a real-world multi-storey parking garage shown in Fig. 1(b), is used as a 3D map and motion constraint in the solution which is based on particle filtering. In the filter, each particle is modelled as a separate 3D vehicle object which has approximately the same horizontal and vertical dimensions as a true vehicle. This 3D vehicle object in itself can be used as a map within which localization is required. This enables us to localize the passengers inside moving vehicles such as trains, boats and busses, for example. Since these 3D maps of vehicles are moving with respect to the Earth-fixed frame wherein GNSS location is traditionally expressed, the term moving maps is used in this article.

Figure 1
figure 1

Multi-storey parking garage: a 3D model and b the real world garage.

The rest of the paper is organized as follows. Section 2 describes the related work, Sections 3 and 4 address the particle filtering and collision detection methods upon which the proposed navigation algorithm relies. Section 5 describes the technically extended novel concepts of moving maps and seamless navigation solution. Section 6 describes the measurement and experimental setup for testing, and demonstrating the localization approach, using real-world sensor data obtained by driving a car in parking garages. Finally, Section 7 concludes the paper.

2 Related Work

Map-matching has been studied for decades, with the first implementations estimating the position of a vehicle along a known route [6]; an extensive description of the most common map-matching algorithms is given in [7].

Many solutions to the 3D indoor positioning problem have been proposed in the literature. Wagner et al. [8] used cascaded Kalman filters and “road link” matching, for positioning vehicles in parking garages. In [9], Fouque et al. describes a generic solution to multi-hypothesis map-matching using global positioning on tightly integrated 3D navigable road maps, formalized in a general Bayesian framework. Pinto et al. [10] proposes a 3D map based approach to pinpoint a robot pose, by using 3D map of the surrounding environment and data acquired by a tilting laser range finder.

Nowadays, a popular approach is to use a particle filter (PF); they are known to be well suited for positioning problems [11]. In [12], Fairfield et al. proposed a submap-based 3D simultaneous localization and mapping (SLAM) known as segmented SLAM or SegSLAM, and used Cave Crawler robotic vehicle for obtaining speed and heading sample data, using on-board wheel based odometer and laser range measurement system respectively. The basic idea of segmentation is to circumvent the scale limitation inherent in SLAM. They apply Rao-Blackwellized particle filter for SLAM and extend it to allow particles to transition between sub maps. Kümmerle et al. [13] proposed an autonomous driving in a complex multi-storey parking garage, using a modified vehicle equipped with multi laser range finders, a high-performance inertial measurement unit and GPS receivers. They used a PF for localizing (SLAM) the car in and within a 3D map of the parking garage environment by only using the laser range data for generating the map and using the inertial data for the PF and localization. They have used 1000 particles and limited the speed of the vehicle to 10 km/h and an update of data at 200Hz. However, the map information cannot be used as an efficient motion constraint in SLAM because the map is one of the unknowns. Leppäkoski et al. [14] proposed a pedestrian dead reckoning solution for indoor pedestrian navigation with detailed indoor maps as a motion constraint, inertial sensors as the primary source of information, and radio signals as assisting signals. This study showed that a very detailed 2D map, including even bookshelves, significantly improved the PF navigation solution in a 2D space.

3D models and map matching has been studied earlier. In [15] Andreja et al. proposed a mobile robot self-localization in complex indoor environments using monocular vision and 3D model of the environment. The captured noisy and complex video frames are processed for real time 2D image segmentation and line extraction by using Canny edge detector and random window randomized Hough transform (RWRHT). The extracted edges are then matched with the 3D model line segments to localize the robot. The odometry device in the robot is used to estimate the robots pose and use it as the estimated camera pose for rendering 3D model. Then edge matching procedure is applied to adjust this assumed camera pose that is rendering the 3D scene to match with the edges of the captured 2D image. Ascher et al. [3] proposed a multi floor indoor pedestrian navigation, where stairs, elevators and ladders are used for transitioning from floor to floor. This method uses barometer, magnetometer/compass and inertial measurement units as sensor data input to the algorithm and particle filter system based on bootstrap particle filter implementation [16]. Here a 3D model of the scenario (building) is used for compensating for the errors of the sensors such as magnetic interference causing heading errors and the accumulated errors of accelerometer and gyro. There are several solution proposals for automatic map generation, such as for 2D, 2.5D, and 3D maps [1921, 2832].

Our approach is to use a detailed 3D structural map of the parking garage depicted in Fig. 2(a), as a motion constraint to navigate in 3D space using on-board motion sensors. In our PF, we test each particle for collisions in a novel way, taking into account the dimensions of the vehicle which improves the accuracy of the map-matching. Instead of using altimeters or any other means for height estimation we use the ramp structures of the 3D models, eliminating the necessity for external radio navigation updates, which are a common solution as in [17] when no map information is used. We also extend the applicability of this method for navigation in trains, buildings with elevators etc. by introducing moving map concept. In navigation related literature very often the research is concentrated on a specific motion (for example driving or walking) or environment (indoor or outdoor) and the algorithms for the transition phase receive little attention. In this paper, we propose a solution for automatic switching from VDR to PDR, enabling a seamless navigation solution.

Figure 2
figure 2

a Detailed structural model of a single floor parking garage and b virtual sensor spheres attached to a vehicle model at different places used in collision detection.

3 Particle Filtering

Particle filtering is an approximation of the Bayesian filter where the posterior distribution  p(x n |y 1,…,n ,x 0), with x n denoting the state vector at time step n and y 1,…,n being the measurements, is characterized by a cloud of random samples, called particles, instead of, e.g., the moments of the distribution. The foremost benefit of this representation is the ability to operate on arbitrary distributions, thus making it possible to estimate, e.g., multimodal distributions which often cause divergence of Kalman-type and other filters that assume Gaussian distributions. Particle filtering is a Monte Carlo method and both its performance and computational complexity depend on the number of particles used. We use a PF variant called the bootstrap filter [18] where the so-called importance distribution is chosen to be the transitional prior distribution.

Suppose we have N particles x i with nonnegative weights w i , i = 1, …, N. Each particle is a state vector containing the quantities that are to be estimated; in this study, the i th particle is a 4 × 1 vector

$$ {x}^i=\left[\begin{array}{c}\hfill {H}^i\hfill \\ {}\hfill {E}^i\hfill \\ {}\hfill \begin{array}{c}\hfill {N}^i\hfill \\ {}\hfill {U}^i\hfill \end{array}\hfill \end{array}\right] $$
(1)

where H is the heading angle, E, N, and U denote East, North, and vertical coordinates, respectively. Particle filtering consists of two basic steps, i.e., prediction and updating. In the prediction phase, we draw particles from the transitional distribution. Assuming that nonholonomic constraints hold, the expected value of this distribution can be expressed as

$$ \boldsymbol{E}\left({x}_n^i\left|{x}_{n-1}^i\right.\right)=\left[\begin{array}{c}\hfill {H}_{n-1}^i+{\omega}_n*\varDelta t\hfill \\ {}\hfill {E}_{n-1}^i+ cos\left({H}_n^i\right)*{V}_n*\varDelta t\hfill \\ {}\hfill {N}_{n-1}^i- sin\left({H}_n^i\right)*{V}_n*\varDelta t\hfill \\ {}\hfill {U}_{n-1}^i\pm tan\left({P}_n^i\right)*{V}_n*\varDelta t\hfill \end{array}\right] $$
(2)

where E is the expected value operator; P is the inclination angle of the surface on which the particle is located;  V n and ω n are the measured speed and angular rate at the n th time step, respectively; and Δt is the measurement interval. The covariance of the transitional distribution is determined based on e.g., the error characteristics of the motion sensors.

In the update step, the weights of the particles are modified according to the likelihood of a measurement given the state vector. In the case of the bootstrap filter, the update is done according to the simple proportion

$$ {w}_n^i\propto \mathbf{p}\left({y}_n\Big|{x}_n^i\right){w}_{n-1}^i. $$
(3)

Due to the proportionality relation, the weights need to be normalized to sum to unity after updating. This way, it is straightforward to estimate the mean of the posterior distribution as the weighted average of the particles.

In this paper, we use the 3D map as a source of measurement updates according to the likelihood function

$$ \boldsymbol{p}\left({y}_n\left|{x}_n^i\right.\right)=\left\{\begin{array}{cc}\hfill 0\hfill & \hfill if\ the\ particle\ hit\ a\ wall\hfill \\ {}\hfill 1\hfill & \hfill otherwise\hfill \end{array}\right.. $$
(4)

In other words, particles that collide are discarded. In this study, the map update likelihood is computed by modelling each particle as a vehicle with physical dimensions and motion constraints, instead of a freely moving point mass. This significantly improves the accuracy of the map-matching because we can detect if one of the corners of the vehicle is touching a wall although the centre of mass is not. Section 4 discusses more on this kind of modelling and about collision detection.

If other measurements are available; they can be incorporated into the estimation process by means of additional update steps with appropriate likelihood functions. It is obvious that discarding colliding particles leads to a situation where only a small fraction of the N particles are actually used for the state estimation; such a cloud of particles is obviously not a good approximation of a probability distribution and also causes a waste of computational resources if zero-weighted particles are propagated. This problem can be avoided by resampling the set of particles; in this procedure, a new set of N particles is drawn from the discrete probability distribution defined by the old particles and their respective weights, such that the newly obtained set of particles represent the same distribution as the old one, but with a full number of “alive” particles. A block diagram of the flow of the signal processing in the PF system is shown in Fig. 3.

Figure 3
figure 3

Block diagram of proposed 3D navigation system depicting the flow of signal processing in PF.

4 Collision Detection

Collision detection is defined in this context as the ability to computationally detect if two or more objects are intersecting with each other. In general indoor parking garages consist of objects such as walls, railings, ramps, floors, roofs, and pillars that can be classified as target objects, and the vehicles which navigate in the garages as the source objects. Such object models can be obtained by using various methods such as in [1921] or modelled easily with computer aided designing (CAD) 3D modelling software tools such as SketchUp, and 3ds Max, to reflect real-world parking garages and vehicles. The structural details of dimensions of the models play an important role; the more accurate the approximation of the model the better is the localization performance. The basic principle we have used is to make all the structural elements such as walls, pillars, railings and ramps as box shaped objects and put together to form the 3D building model. Each of these boxes would require a maximum of 8 points for representation, and a simple collision detection scheme would suffice to detect collisions with such box shaped objects. There might be cases where a structural element would require different form of representation other than a box shape, and this might require a complex collision detection scheme. These special cases are not relevant and essential at the moment to the current research work.

With the advances in CAD, programming tools, and computational capabilities of microprocessors, it has become feasible to represent and render such objects as software models on consumer devices. These software objects can be moved in a 3D space and collisions can be detected. Figure 1(a) depicts our modelled garage. The modelled garage space forms our target space and objects in it are the target objects while the modelled vehicle object is our source object. When this source object is moved around in the target space, its movement is restricted to be on the path way targets such as floor, ramps and it should not go through certain other target objects such as walls. There arises a need to detect when source object is hitting such restricted objects to identify illegal moves. This is solved by collision detection methods [22]. The greater collision detection accuracy the better is the performance. In a broader aspect of collision detection, the accuracy should be close to100%; otherwise the particles will enter the places where they are not supposed to enter, such as under the ramps, out of the map limits, which at times will cause the navigation algorithm to fail in providing the correct navigation solution.

In general, an intersection between a source and a target object is calculated using two simple boundaries encompassing the objects, namely the bounding box and the bounding sphere. A sphere and a box intersect when any one of the points of the sphere falls within the range of points forming the bounding box. A box and sphere frames would not necessarily encompass the source object (vehicle model) as an exact fit. Therefore, for precise collision detection, in our implementation we have attached small spherical objects to the modelled source object, at different locations as depicted in Fig. 2(b). We will call these extra objects “virtual sensors” (VS) as they work similar to real world proximity sensors in detecting if the vehicle collides with the target objects in the target space.

The group of such VSs form a cluster as the distance between them is fixed. The number of such VSs in the cluster to be attached depends on the desired precision of required vehicle structure for collision detection and the trade-off between computational speeds and power consumed in such computations. The motion constraints of the vehicle as a whole are applied using the VSs in the cluster, which structurally represent the physical dimension of the vehicle. The cluster is propagated according to the probabilistic characters deduced by applying the collision detection logic to all the sensors in the cluster individually. The limited number of VS in the cluster will significantly reduce the complexity of collision detection to a mere few number of VSs in the cluster, rather than vast number of collision detection steps for all the mesh vertices used to visually representing the vehicle model. In Fig. 2(b) shows the cluster of VSs, structurally represent the dimension of the vehicle.

For every movement induced by propagation logic to the source object in the target space, the collision detection algorithm is applied between the source and the target objects. If a collision is detected, an appropriate action is taken, such as down-weighting the particle if it hits a wall or updating the position of the vehicle according to (2). The collision detection plays an important role in guiding the signal samples along the correct channels of the 3D map by compensating for the intricate and intrinsic error characteristics of the sensors. If the collision detection is not applied to the VDR solution, the localization track will have large position error and secondly it will be restricted to a single floor where the track starts at its initialized position, as the particles never climb the ramps to reach the next floors. Nevertheless to compare this scenario with a localization track obtained by applying collision detection (Figs. 7 and 9), we have projected the partial tracks on to first and the top floors as in Fig. 6. It can be seen that the localization solution on the left side of Fig. 6(a) and (b) is not mapped on to the ramp, and in Fig. 6(a) on the right side it is outside of the parking garage boundaries. Figure 6(b), the localized position of the first parking spot is far away from the true parking spot. These errors such as in Fig. 6 are compensated by applying collision detection and PF as shown in Figs. 7, 8 and 9. Thus the collision detection and PF together will assist in reducing the localization error.

5 Technical Extensions

In this section we throw light up on the novel concepts and solutions namely moving maps and seamless navigation solution. These are the technical extensions of the proposed method.

5.1 Moving Maps

Traditionally map-matching methods have been applied only to static buildings and road networks etc. However, the methods describe in this paper do not assume that the construction is immobile. For example, a train model can be constructed similarly as buildings. The cluster as discussed in previous section structurally representing the shape of a vehicle and along with additional sub-structural representation of obstacle objects within this vehicle shape can be used as a 3D map model itself. Any object moving within this vehicle 3D map model defined by the cluster dimensions can be localized within it. This novel technique of maps within a map can be applied in the context of a large vehicle where the tracking of an object inside the vehicle is required. The vehicle can belong to various categories such as based on air, water or ground. For example a train compartment can be represented by the cluster as show in Fig. 4. The lines or edges connecting each VS forming the cluster at respective corner vertices, forms a box shape in this context, additionally structural shapes representing seating arrangement and the door of the train compartment will act as the target objects with which collision detection is applied. A person boarding such a train compartment can be localized within it by applying the proposed methods in this paper. Since this model of the train compartment is moving, and the localization is done within this train, the train compartment 3D model itself is a map and hence the proposal of the novel concept of 3D moving maps. The positioning of the train can be done using GNSS or with separate VDR system. Another example would be an elevator inside the building; the position of the elevator is provided externally to the map database, and the PDR-particle filter [23] allows particles to change floors based on this information. It should be noted that PDR and VDR provide velocity observations with respect to the moving frame, and the proposed method would allow integration of GNSS and dead reckoning on a moving platform. Obviously theoretical challenges arise when nonlinear statistical filters are superimposed and these are left for the future work.

Figure 4
figure 4

3D structural representation of an arbitrary train compartment. The eight virtual sensors at the corners form a cluster of sensors in a box shape.

5.2 Seamless Navigation Solution

The originally proposed navigation system obtained speed information from Bluetooth based OBD connection and heading information from a gyroscope included in the mobile phone. When the vehicle is parked, and the person is walking away from the car, OBD cannot be used for speed measurements anymore. To continue positioning, the system should switch to PDR and for this we need a way to detect when the user has started walking away from the car. The main source of information would be the OBD readings: is the speed non-zero, is the car ignition status off or on, for example. If these observations indicate that the person is not driving anymore, motion mode classification algorithm [23] can be applied to check if the user is walking. If accelerometer waveforms indicate walking motion, we can then apply PDR methods to localize the user in the parking garage and out of it to a shopping mall or to an out-door environment. Figure 5 describes the extension of the proposed solution seamlessly to pedestrian localization and then back to vehicle localization. A similar 3D map and map-matching algorithm can be applied, but the particle size would be changed to represent a human and to allow entering staircases and elevators.

Figure 5
figure 5

Flow chart describing seamless navigation solution switching from VDR to PDR and vice-versa.

Figure 6
figure 6

Trajectories of the VDR position solution, without applying PF and collision detection. a First floor, and the track starting point is from right bottom to left middle, b top floor and the track starting point is from top left and ending at the right most parking space.

6 Experimental Setup and Results

In this section we will discuss various test cases and implementations that were performed to verify the proposed method of localization, and throw some light on tests performed to show the feasibility of the extended novel concept of seamless navigation in the context of the proposed localization solution.

6.1 Localization Tests

We have two different experimental setups. First we have implemented the solution as a laptop application prototype and later we have implemented the solution as a smart phone application. In both the cases of prototype and mobile phone application, the input samples of speed and heading feed to the algorithm are collected in two different parking garages in real time, and used in the experiments offline. To simulate the real time randomness of the samples in offline simulation experiments, additive random noise is induced in to the collected data samples.

We have developed a software program that loads the 3D model of the garage and navigates the modelled vehicle within it. The software used this data to compute the successive locations, detect collisions, and move the modelled vehicle particles to the computed locations. The current location of the particles after the successive moves, and information about the target objects with which the particle has collided during successive moves are used to take an appropriate action, e.g., adjusting the weight of a particle, or resampling when the count of the particles falls short.

The vehicle particle is propagated using a reference point located at the centre of mass of the vehicle. The overall structure is then defined by the virtual sensors attached around the vehicle as depicted in Fig. 2(b). For checking the collision of the vehicle with the target objects, each virtual sensor is cross-checked for an intersection with the bounding frames of the target objects in the target space as depicted in Fig. 2(a) and the collision detection information is used according to (4).

The inclinations present in the multi-storey building are considered as ramps, and these ramps are modeled in to the 3D parking garage model according to the respective angles of inclination. For detecting and navigating on such ramps, at present we have used a straightforward and simple method. The method assumes that the slope of the ramp is known beforehand and that a vehicle always touches the floors connecting the bottom edge and top edges of the ramp. Traversing a ramp always takes following sequence: once a vehicle reaches the floor connecting the start (end) of a ramp, collision detection is applied with that particular ramp and the vehicle; if a collision is detected, vehicle is tilted to the angle of the ramp and the vertical and horizontal position is altered according to (2) in 3D space. This process is applied until the second floor connecting the end (start) of the ramp is reached, after which the tilt to the vehicle is removed and the vehicle will navigate in horizontal space. Ramp navigation can also be achieved without the knowledge of the slope of a ramp by using collision detection logic alone or using information from gyro measuring the tilt of the vehicle; nonetheless, we follow the approach described above.

The proposed method of localization was evaluated with sensor data obtained from field experiments. We measured the speed and heading rates of a passenger car by driving it in two different types of parking garages. First one is a seven storey parking garage, and the second one is a three storey parking garage. In both these garages, a MEMS gyro [24], an OBD II reader [25], and a differential global positioning system (DGPS) based device [26] were used to measure the heading rate, speed data, and location information respectively. The specifications of these devices are detailed in Table 1.

Table 1 Specifications of the devices used to obtain the data samples for the experiments.

The experimental results of first type of parking garage are presented in Table 2. This table presents a performance comparison of the localization software system implementations on laptop and mobile phone. In both these implementations, the speed and heading sample data obtained as mentioned above are embedded into the software application and streamed within the application to the algorithm logic in a timed fashion so as to simulate the real time scenario. This table indicates that by increasing number of particles in the PF will increase the accuracy until a threshold of accuracy is reached. On the other hand it can be seen that a mobile phone by virtue of its low processing power compared to a laptop, suffers a time lag in providing a localization solution when large number of particles are used in the PF algorithm and as such might not be suitable to use in real time scenarios in such cases.

Table 2 Comparision of 3D navigation solution on Lenovo X230 Laptop and Lumia 920 Mobile Phone.

The experimental results related to the second type of parking garage, without applying collision detection can be seen in Fig. 6 depicting first and top floor, and with collision detection can be seen in Figs. 7, 8 and 9 depicting three different floor sections of the parking garage localization solution. In these figures, the ramps can be observed close to the left and right side of the box representing the walls of the parking garage, smooth thick (red) curve is the weighted mean of the particles. Dots (green) represent the particle states, and smooth thin (black) curve in the Fig. 9 is GPS track. The test drive for data collection in this second type of garage was made as a continuous sensor data sampling, starting from the first floor and ending on the 3rd floor. The car was parked at different parking spots in different floors during this drive. The offline simulation was made on the laptop implementation using the continuous data to check the efficiency of the PF application on the continuous data for longer duration. Figure 9 is the top floor section of localization results, and it shows the accuracy of the localization solution to be within 2.5 m compared to the GPS track and the parking slot markings. The GPS track got its first fix when we entered the top floor (starting from left bottom in the Fig. 9) and initial few meters of GPS position track might have slight position error, so the comparison at the first parking space in the Fig. 9 would appear to be more than 2.5 m, but when compared with the parking space the position solution is within 2.5 m. Currently by using inertial sensors data, speed data from car OBD and just 50 particles, we were able to achieve the accuracy of 2.5 m. The accuracy could be further improved by increasing the number of particles in the PF algorithm.

Figure 7
figure 7

Trajectories of the 3D navigation position solution on the first floor along with particle states. a all the particle states b only the states of particles when the vehicle was parked at the parking space.

Figure 8
figure 8

Trajectories of the 3D navigation position solution on the second floor along with particle states. a All the particle states b only the states of particles when the vehicle was parked at the parking space. Track starts from left lower section and ends at left top section.

Figure 9
figure 9

Trajectories of the 3D navigation position solution on the third (top) floor along with GPS track (smooth thin/black curve) and particle states. a All the particle states b only the states of particles when the vehicle was parked at 4 different parking spaces. Track starts from left lower section and ends at right most parking space in the top section.

Since we have not performed rigorous tests in regards to the performance analysis, comparison with the past relevant research works may not be feasible directly, but can be analytically compared based on the position error of the proposed solution and previous related research work. In [2] the proposal was to use combination of RSSI based grid-data, DR-integrated and maximum likely hood estimation solutions for vehicle localization; In the absence of RSSI information from WLAN base stations, DR was used to advance the position estimate; the position error was measured in terms of root mean square error, average and 95 % radius errors, and the error values are 2.06 m, 1.36 m and 5.13 m respectively for the DR-integrated solution which was mitigated at frequent intervals by RSSI based position data; and the final position error was mentioned to be less than the width of a parking space (2.9 m) most of the times. In [33] a PDR solution was proposed in which foot mounted inertial sensor, PF technique and 2.5D map of the build was used; the position accuracy was mentioned to be within 1 m.

As a further step towards real time multi-storey parking garage navigation solution, in addition to mobile phone with windows OS, we used Bluetooth enabled ELM 327 OBDII reader to obtain speed information from the land vehicle OBD to the mobile phone in real time. For heading information we have used gyro and accelerometer samples from the gyro and accelerometer sensors on-board the mobile phone. Since a smart phone gyro is a 3 axis gyro and the smart phone can be placed in a vehicle in any orientation, we need to estimate the heading of the vehicle using this gyro data from the smart phone. For this we have implemented a heading estimator algorithm based on the methods presented in [27]. Our implementation takes gyro and accelerometer samples as input and provides the near correct heading information of the vehicle, irrespective of the angle in which the mobile phone is placed in the vehicle. Currently we are still working on this application to provide real time navigation solution, the details and results of which are left for our future work.

6.2 Seamless Navigation Evaluation Tests

We have performed another experiment in order to verify the feasibility of the proposed seamless navigation solution switch from VDR to PDR. Figure 10 shows the plot of the speed samples along with the step detecting accelerometer readings. From Fig. 10, on the time line, after 130th second, we can observe that the car speed has gone to zero and the 3D acceleration signal variance increases, and this clearly shows that we can detect when the user might have switched from vehicle mode to the walking mode. Additionally we have used the collected sample data set to show relevant features such as peak frequency and its amplitude shown in Fig. 11. The peak frequency and amplitude are computed by taking DFT of non-overlapping 5 s window from accelerometer data. In this figure, the driving, walking and stationary mode features are clearly separated. Using such feature sets and pattern recognition methods [23], we can accurately classify the mode in which a smart phone is. This enables us to switch the localization algorithm seamlessly from VDR to PDR. The simulation setup and conditions for obtaining such data is similar to those presented in [23]. There are many papers already that have proposed solutions for PDR, such as in [14]. Additionally the proposed method of 3D maps and collision detection in this paper can also be applied to PDR method in order not to have significant change in the method of localization in terms of type of maps and collision detection logics. Nevertheless combining the VDR and PDR in to one application along with the context recognizing logic would thus enable seamless navigation solution.

Figure 10
figure 10

Driving and walking context detection using the OBD signals from the car and the accelerometer data from the mobile.

Figure 11
figure 11

Features of Driving, Walking, and Static extracted using sample data set of speed of the car, and inertial sensors of the smart phone.

7 Conclusions

We have described a simple and efficient method for localizing a vehicle in a multi-storey parking garage. The method uses only gyro and odometer data, applies collision detection and particle filtering in 3D space. Unlike most of the existing techniques, external sources, such as radio signal beacons, altimeters are not needed. The proposed solution assumes that a detailed 3D structural model of the parking garage as shown in Figs. 1(a) or 2(a) is available in addition to initial position information when entering the garage. These assumptions are realistic and practical. Our experiments show that the solution works with reasonable accuracy using on-board sensors and the solution can be used to provide valuable assistance information to the driver, e.g., guidance to vacant parking spot.

The feasibility of the method was demonstrated in two different parking garages. We have also evaluated and shown the feasibility of seamless navigation solution from VDR to PDR. We have introduced the 3D model maps representing the vehicle model, and extended it as moving maps, where sub localization is required to be applied. We have currently implemented the solution in a windows based smart phone as an application and embedded sensor sample data as a sensor data feed to the algorithm. In the future, we plan to carry out more rigorous tests, and use real time sensor data flow in to the application for localization algorithms, implement the VDR to PDR switching logic that is proposed in this paper, and extend the concept to tunnels and multi-level interchanges to enable accurate and seamless navigation services for drivers. The applicability of the proposed methods are not limited to vehicular navigation; in fact, it could be used in any indoor environment with a navigating object capable of measuring its ground speed and angular rate, where navigation involves floor to floor navigation via ramps or staircases in a multi-storey building scenario.