forked from openpositioning/DataCollectionTeam2
-
Notifications
You must be signed in to change notification settings - Fork 30
G04 Final Submission -- Enhanced Positioning, GeoFence, Displaying, and much more... #83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Th3stral
wants to merge
80
commits into
openpositioning:develop
Choose a base branch
from
Th3stral:fnl_submission
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
-- updated all previous commit to the new UI framework
-- Reapplied the original premission obtaination logic from the old ui framework.
--UI color and position update
-- hide api keys
-- added red dot in the recording page for indication, which turns to green after 30 sec -- refined pressure sensor initial value, increased initial buffer size from 3 to 5 for better result -- added/modified comments -- some new color configs and icons -- refined ui layout
# Conflicts: # app/src/main/java/com/openpositioning/PositionMe/MainActivity.java # app/src/main/java/com/openpositioning/PositionMe/fragments/ReplayTrajFragment.java
-- added anim logic between pages -- baned system return button on some pages -- minor fixs on ui layout
-- added proto source for Traj.java -- fixed null exception when pressure sensor encountered abnormal situation
-- improved the robustness on handling abnormal data from sensors -- more comments and commented out some log
- sorted received WiFi from higher intensity to lower - able to receive Location returned by openpositionAPI - Logs are added to print the WiFi fingerprint and catch the time locations are returned
This reverts commit d0ff954.
- sorted received WiFi from higher intensity to lower - able to receive Location returned by openpositionAPI - Logs are added to print the WiFi fingerprint and catch the time locations are returned
- added WiFi positioning marker - Recording map can display the current wifi position - added API for transform wifi LatLng and XY displacement
- New class for filter utilities - applied a simple particle filter - new method for latlong convert to northing-easting - Increased the number of cloud fetched traj from 30 to 50 - changed sensor fusion wifi request from instant to call back - minor change in existing comments
…test # Conflicts: # app/src/main/java/com/openpositioning/PositionMe/fragments/WifiFragment.java
# Conflicts: # app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java # app/src/main/java/com/openpositioning/PositionMe/sensors/WiFiPositioning.java
-- attempts on filter parmater tunning -- more comprehensive termination logic on leaving the page -- new unstage observer function for wifi com (not implemented)
# Conflicts: # app/src/main/java/com/openpositioning/PositionMe/GeoUtils.java # app/src/main/java/com/openpositioning/PositionMe/sensors/SensorFusion.java
- implemented new variable in the singlton SensorFusion to save last wifi position and floor
- use the Pdr_Sample format with new entry 'fusion_data' to save traj
- add save logic for both fused traj and wifi position - to handel the problem of multiple wifi register, check logic is provided to limit the update of the wifi pos
- POSITION Fragment: text view for checking current wifi state is added, but changes using new wifi logic - RECORDING Fragment: switches logic of GNSS and Wifi are improved, now it will be visible the last 5 observations once the switch is checked; trajectory path colar is modified; - REPLAY Fragment: visibility of pdr path can be disabled by the switch; - xml files: checked switches will change its color to the color of corresponding components
- update the location logic in recording for indoor map and error distance calculation - wifi status update - temp muted batch optimisation for particle tunning
calculate and save wifi height using assumed nucleus height
-- updated fusion logic for gnss to make it only steps in when there is no wifi -- updated the particle filter util to make the measurment noise param can be accessed from outside
- the fusion path can be displayed on the replay map - the WiFi marker of each point can be displayed on the replay map - the added tag can be displayed with the fusion path - (BUG) Wifi markers can not be removed when the switch of the WiFi position is unchecked
- refined the autofloor logic to proper handel the floor transation for both LIB and NUC - more comments
- cleaned format and more comments in the recording fragment & position fragment
- make filter individual block - fix to initial floor logic issue - fixed wifi update time disp
- fixed geofence function and integrated along with others - new default login info for quicker access
- auto floor from the Wifi list can be displayed
- add effectiveness check for wifi as initial position.
- replay function is now added to the final app with careful consideration of empty check and auto-floor logic
-- implemented the filter functions lost in prev merge -- gathered geofence related functions into GeoUtils -- more comments and docs
- documented and reviewed all main java class except the ReplayTrajFragment
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.
Release v1.1.0 Notes for LiveLink
Written by: Zhaohan Wang
On behalf of: Group04 (Jiayan Liang, Jingyu Sun, Zhaohan Wang)
TLDR
This release introduces upgrades and improvements in the following areas:
Major Updates
1. Wi-Fi Positioning Module
Open Positioning API Integration
The system can now estimate location and floor based on submitted Wi-Fi fingerprints.
Improved Reliability
Weak signals and unreliable access points are filtered out; only the top 30 strongest signals are retained before upload.
Optimised Server Requests
A new callback function handles server responses immediately, triggering necessary processes.
Redundant Request Prevention
A flaw causing repeated identical requests has been fixed. A filtering layer now discards duplicate responses to improve efficiency.
Enhanced Initial Positioning
The system prioritises Wi-Fi over GNSS for the initial location, improving indoor accuracy. If Wi-Fi data is unavailable or more than 30 seconds old, it falls back to the latest GNSS position. The user interface also displays Wi-Fi availability and shows the timestamp of the last update.
2. Sensor Fusion
The sensor fusion module combines data from:
to estimate the user’s trajectory and position. Two main filters have been introduced for more accurate indoor and outdoor positioning:
Dynamically Adjusted Particle Filter (in
FilterUtils.java):Sliding-Window Weighted Smoothing Filter (in
TrajectoryOptimizer.java):An EKF (Extended Kalman Filter) is also provided in
FilterUtils.javafor future use.Evaluation Pipeline
Trajectory Storage
gnss_dataentry with providers labelled aswifi_fineandfusion.fusion_dataentry, using a existing protocolPdr_Samples.3. GeoFence
Geofences help correct predicted trajectories in specific scenarios.
By identifying main staircases and lift areas in the Nucleus Building, the system automatically adjusts floor levels. Field tests confirm reliable performance.
Accelerates the process of acquiring geofence coordinates.
4. Display and User Experience
Recording
Replay
User Experience
5. Known Issues in the Original PositionMe App
Incorrect Coordinate Conversion Function (Fixed)
calculateNewPos()function inUtilFunctionshad an error in its latitude correction term, producing incorrect east/west conversions. This has now been fixed, an individual pull request about this problem shall be submit later this month..Wi-Fi Positioning Request Issue (Not Fixed)
Screenshots from the new release