Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
50b47f8
API
MichalAW7 Mar 15, 2025
37e0f34
API
MichalAW7 Mar 16, 2025
660ade3
maybe markers and wifi lines
k-vakali Mar 18, 2025
56c95d1
Perform outlier detection for wifi location - ignore the reading if i…
lmarya Mar 18, 2025
753eafd
Changed zIndex for the polylines so they show above the indoor map
lmarya Mar 20, 2025
e5a1a58
Positioning Fusion - EKF
MichalAW7 Mar 21, 2025
536507f
uncommenting the outlier part (accidentally committed wrong previously)
lmarya Mar 22, 2025
fd5ecc4
adding "no coverage" for when user is outside of nucleus/library boun…
lmarya Mar 22, 2025
baa0693
plyline switch off logic
k-vakali Mar 22, 2025
c0d867f
Fixed some comments
lmarya Mar 22, 2025
9662355
Merge remote-tracking branch 'origin/wifi-outlier-LM' into wifi-outli…
lmarya Mar 22, 2025
c8ba56f
Positioning Fusion - EKF - replay test
MichalAW7 Mar 25, 2025
28d1111
Revert "Positioning Fusion - EKF - replay test"
MichalAW7 Mar 25, 2025
d4d068a
Positioning Fusion - EKF - working (not well) fusion
MichalAW7 Mar 27, 2025
b5a325a
Initial framework
Nickman282 Mar 27, 2025
4335e76
Initial framework 2
Nickman282 Mar 27, 2025
7b8cc17
Positioning Fusion - EKF - working (not well) fusion
MichalAW7 Mar 27, 2025
f55c21f
Positioning Fusion - EKF - working (ok now)
MichalAW7 Mar 27, 2025
71c358a
Work-in-Progress
Nickman282 Mar 27, 2025
93a1845
Merge remote-tracking branch 'origin/develop' into Positioning-Fusion…
Nickman282 Mar 27, 2025
39e9763
Merge branch 'Particle_Filter' into Positioning-Fusion-Wifi
Nickman282 Mar 28, 2025
c323fea
Wifi for Kalman Filter + Particle Filter (not so good yet)
Nickman282 Mar 28, 2025
a808a27
Merge branch 'wifi-outlier-LM' into final-fusion-LM
lmarya Mar 29, 2025
7cff70b
updating with wifi stuff
lmarya Mar 29, 2025
a3fd9e9
added wifi, moved pdr over with the new fusion stuff
lmarya Mar 29, 2025
e2f4165
Merge remote-tracking branch 'origin/final-fusion-LM' into Positionin…
Nickman282 Mar 29, 2025
cd3eb10
Updated PF (works better now)
Nickman282 Mar 30, 2025
ebcab3d
putting fusion polyline on top
lmarya Mar 30, 2025
3ad5935
using orientation to set the rotation of the fusion marker
lmarya Mar 30, 2025
2def3d9
autofloor logic from wififloor
k-vakali Mar 30, 2025
5ac3ccf
adding smoothing filter for the fusion trajectory
lmarya Mar 30, 2025
9cff565
Trajectory Smoothing Added
Nickman282 Mar 31, 2025
04dae96
Start Indoor map PF
Nickman282 Mar 31, 2025
3fe81a8
Allow user to choose between kalman filter and particle filter
lmarya Mar 31, 2025
e5caf5f
error form wifi positioning
k-vakali Mar 31, 2025
1bd0d85
error form wifi positioning with timer
k-vakali Mar 31, 2025
9f56ce9
Positioning Fusion - EKF tweak more reliant on wifi and less on gnns
MichalAW7 Mar 31, 2025
207e78f
fix code uncoment
k-vakali Mar 31, 2025
3b82f14
Merge pull request #2 from MichalAW7/Positioning-Fusion-Wifi-ServerError
k-vakali Mar 31, 2025
8f93bc0
changed server comms to include more trajectories being downloaded
lmarya Mar 31, 2025
c2ef93d
Merge branch 'develop' into fusion-LM
lmarya Mar 31, 2025
3b7c8cd
Merge pull request #3 from MichalAW7/fusion-LM
lmarya Mar 31, 2025
248d255
Positioning Fusion - EKF tweak more reliant on PDR then wifi and gnss
MichalAW7 Mar 31, 2025
6e9a41f
Particle Filter Moving Average
Nickman282 Apr 1, 2025
aa5044a
Started Indoor Map (currently broken)
Nickman282 Apr 1, 2025
3ef1cda
Somewhat ok PF
Nickman282 Apr 1, 2025
17a1bf9
Merge remote-tracking branch 'origin/Indoor_Map' into Particle_Filter
Nickman282 Apr 1, 2025
ebbb681
Updates with PDR steps (not every second kinda slow)
MichalAW7 Apr 1, 2025
537be2a
PF incremental
Nickman282 Apr 1, 2025
e6777a4
Updates with PDR steps (not every second kinda slow) wifi even less p…
MichalAW7 Apr 1, 2025
ad84cd8
PF (need stairs matching + wall matching)
Nickman282 Apr 1, 2025
661f2f4
switch legend layout fix
k-vakali Apr 1, 2025
9a150e8
fix colour changer to follow fussion not pdr
k-vakali Apr 1, 2025
f0cf87c
Continuous Elevation Detection PF
Nickman282 Apr 1, 2025
2a77ae1
made unclickable button in howm invissible
k-vakali Apr 1, 2025
8b80139
Merge pull request #4 from MichalAW7/UIfix-switches
k-vakali Apr 1, 2025
eceaeac
Indoor Map initial
Nickman282 Apr 2, 2025
ba141b6
Merge
Nickman282 Apr 2, 2025
b7ad46e
Pre-Final
Nickman282 Apr 2, 2025
1252bd4
Merge branch 'Particle_Filter' into develop
Nickman282 Apr 2, 2025
df22c76
Comments for files
MichalAW7 Apr 2, 2025
cb6b6aa
Abstract class fix
Nickman282 Apr 2, 2025
fd7de38
Merge branch 'Fusion-Michal' into develop
Nickman282 Apr 2, 2025
c8d3b5d
Merge from Michal
Nickman282 Apr 2, 2025
ea14263
renamed updatepPdr function
lmarya Apr 2, 2025
09b01b9
Comments for nicks files
MichalAW7 Apr 2, 2025
444a3a8
More comments for nicks files
MichalAW7 Apr 2, 2025
cf10508
More comments for nicks files
MichalAW7 Apr 2, 2025
34f0fad
Comment cleanup (removed commented out code)
MichalAW7 Apr 2, 2025
7ee6e61
Comment cleanup (removed commented out code)
MichalAW7 Apr 2, 2025
b7e364e
Comment cleanup (removed commented out code)
MichalAW7 Apr 2, 2025
670653d
Removed secrets.properties
MichalAW7 Apr 2, 2025
d989105
edited some comments
lmarya Apr 3, 2025
fe3bb72
comment fixes
k-vakali Apr 3, 2025
f9ed78a
Merge pull request #5 from MichalAW7/comment-fix-kv
k-vakali Apr 3, 2025
13121da
removed unused file
lmarya Apr 3, 2025
408668a
Merge remote-tracking branch 'origin/develop' into develop
lmarya Apr 3, 2025
7aecddc
Comments
Nickman282 Apr 3, 2025
69e9294
Merge conflicts
Nickman282 Apr 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
/captures
.externalNativeBuild
.cxx
secrets.properties
local.properties
/.idea/
27 changes: 21 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ plugins {
id 'com.android.application'
id 'com.google.gms.google-services'
id 'androidx.navigation.safeargs'

id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
}

Expand All @@ -23,18 +24,21 @@ android {
versionCode 1
versionName "1.0"


testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

// Example of referencing secrets (if you use secrets.properties):
buildConfigField "String", "MAPS_API_KEY",
"\"${localProperties['MAPS_API_KEY'] ?: ''}\""
buildConfigField "String", "OPENPOSITIONING_API_KEY",
"\"${localProperties['OPENPOSITIONING_API_KEY'] ?: ''}\""
buildConfigField "String", "OPENPOSITIONING_MASTER_KEY",
"\"${localProperties['OPENPOSITIONING_MASTER_KEY'] ?: ''}\""
buildConfigField "String", "MAPS_API_KEY", "\"${localProperties['MAPS_API_KEY'] ?: ''}\""
buildConfigField "String", "OPENPOSITIONING_API_KEY", "\"${localProperties['OPENPOSITIONING_API_KEY'] ?: ''}\""
buildConfigField "String", "OPENPOSITIONING_MASTER_KEY", "\"${localProperties['OPENPOSITIONING_MASTER_KEY'] ?: ''}\""

resValue("string", "google_maps_key", localProperties.getProperty("MAPS_API_KEY"))

}

buildFeatures {


// For example:
// compose true // if you want Jetpack Compose
// viewBinding true
Expand Down Expand Up @@ -92,4 +96,15 @@ dependencies {
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'

// Added EJML for matrix operations used in sensor fusion algorithms
implementation 'org.ejml:ejml-all:0.43.1'

// Added these for enhanced math operations
implementation 'org.apache.commons:commons-math3:3.6.1'

implementation 'com.google.maps.android:android-maps-utils:3.4.0'

implementation 'com.google.maps.android:android-maps-utils:2.3.0'

}
2 changes: 1 addition & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@
<!-- Google Maps API key metadata -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key"/>
android:value="@string/google_maps_key" />

<activity
android:name="com.openpositioning.PositionMe.presentation.activity.MainActivity"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ public class ServerCommunications implements Observable {
+ "/?key=" + masterKey;
private static final String downloadURL =
"https://openpositioning.org/api/live/trajectory/download/" + userKey
+ "?skip=0&limit=30&key=" + masterKey;
+ "?skip=0&limit=200&key=" + masterKey;
private static final String infoRequestURL =
"https://openpositioning.org/api/live/users/trajectories/" + userKey
+ "?key=" + masterKey;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package com.openpositioning.PositionMe.fusion;

import android.content.Context;

import com.google.android.gms.maps.model.LatLng;
import com.openpositioning.PositionMe.utils.PdrProcessing;

/**
* Interface for position fusion algorithms.
* Implementing classes should provide algorithms for fusing PDR and GNSS
* positioning sources into a single estimate.
*
*
* @author Michal Wiercigroch
*/
public abstract class IPositionFusionAlgorithm {

/**
* Processes an update from the PDR system.
*
* @param eastMeters The east position in meters relative to the reference point
* @param northMeters The north position in meters relative to the reference point
* @param altitude The altitude in meters
*/
public abstract void processPdrUpdate(float eastMeters, float northMeters, float altitude);

/**
* Processes an update from the GNSS system.
*
* @param position The GNSS position (latitude, longitude)
* @param altitude The altitude in meters
*/
public abstract void processGnssUpdate(LatLng position, double altitude);

/**
* Processes an update from the GNSS system.
*
* @param position The WiFi position in LatLng format (latitude, longitude)
* @param floor The floor index
*/
public abstract void processWifiUpdate(LatLng position, int floor);

/**
* Gets the current fused position estimate.
*
* @return The fused position (latitude, longitude)
*/
public abstract LatLng getFusedPosition();

/**
* Resets the fusion algorithm to its initial state.
*/
public abstract void reset();

/**
* Future implementation: Processes an update from the WiFi positioning system.
*
* @param position The WiFi position (latitude, longitude)
*/
// void processWifiUpdate(LatLng position); - Will be implemented in future updates

/**
* Performs static positioning update every 1000ms
*
*/
public abstract void staticUpdate();

/**
*
* @param context
*/
public abstract void retrieveContext(Context context);

/**
*
* @param elevationDirection
*/

public abstract void setElevationStatus(PdrProcessing.ElevationDirection elevationDirection);
}
Loading