Final Assignment: Group16 Submission#125
Open
Junyi12138 wants to merge 7 commits intoopenpositioning:developfrom
Open
Final Assignment: Group16 Submission#125Junyi12138 wants to merge 7 commits intoopenpositioning:developfrom
Junyi12138 wants to merge 7 commits intoopenpositioning:developfrom
Conversation
…ithms. - Implemented `Particle` class with movement and noise simulation. - Implemented the `ParticleFilter` algorithm with the complete lifecycle: 1. Initialization (`initialize`): Distributed particles randomly within given map bounds. 2. Prediction (`predict`): Shifted particles based on PDR movement deltas. 3. Update (`updateWeights`): Calculated particle weights using Gaussian likelihood based on measurement distance and accuracy. 4. Resampling (`resample`): Implemented Low Variance Resampling (Roulette Wheel) to duplicate high-weight particles and eliminate low-weight ones. - Added data structure classes: `MapBounds`, `PDRMovement`, `Measurement`, and `Position`. - Added `getEstimatedPosition` using weighted average for robust position estimation.
… as the central positioning engine. - Connected PDR updates in `SensorEventHandler`: Extracted step deltas (`deltaX`, `deltaY`) from `pdrProcessing.updatePdr` and piped them to `particleFilter.predict()` to simulate pedestrian movement. - Connected WiFi positioning in `WifiPositionManager`: Switched to the callback-based API (`createWifiPositionRequestCallback`) to retrieve absolute global coordinates (WGS84). Implemented Flat Earth Approximation to convert WGS84 Lat/Lng to local Cartesian coordinates (Easting/Northing in meters). Piped the converted local coordinates to `particleFilter.updateWeights()` and `particleFilter.resample()` to correct PDR drift.
…rticleFilter.getEstimatedPosition()` after each PDR step. - Piped the fused coordinates to `pathView.drawTrajectory()` instead of the raw PDR coordinates. - The on-screen trajectory now reflects the real-time, smoothed output of the sensor fusion algorithm. - Added extensive Logcat outputs for debugging and comparing raw PDR vs. fused PF coordinates.
…keys (where 'G' was placed after 'F3'). - Implemented a custom physical sorting in `FloorplanApiClient` to ensure floor sequence: LG -> GF -> F1 -> F2 -> F3. - Refactored `setCurrentFloor` to map physical floor numbers (-1, 0, 1...) to the reordered list indices correctly. - Synchronized manual UI buttons (Up/Down) with the new index structure. - Corrected initial building overlay to default to the Ground Floor (GF).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Final Submission for Embedded Mobile and Wireless Systems (EWireless) 2026
Group Number: 16
Team Members (Usernames):
-Junyi Lin
Implemented Features: