This repository contains a collection of Android applications and Python scripts developed for a mobile computing course, focusing on mobile sensor utilization for tracking, localization, and mapping applications.
These projects demonstrate practical implementations of mobile sensor technologies including GPS, accelerometer, gyroscope, compass, and barometer for various tracking scenarios - both online and offline.
Type: Android Application
Purpose: Basic Android development training project
A functional calculator Android application that demonstrates:
- Functional calculator with basic arithmetic operations (+, -, *, /, =) and decimal support
- Expression evaluation using exp4j library with error handling
- Intent navigation between main activity and calculator
- Browser integration to launch Google.com
Type: Android Application
Purpose: Real-time GPS tracking with Google Maps integration
An online tracking application that demonstrates:
- Real-time GPS sensor data collection
- Google Maps API integration
- Dynamic marker positioning based on location changes
- Live location visualization on interactive maps
Type: Android Application
Purpose: Comprehensive mobile sensor data collection and logging
A comprehensive sensor data gathering application that collects and stores data from multiple mobile sensors:
Supported Sensors:
- Accelerometer: Measures acceleration force changes in X, Y, Z directions with gravity filtering using low-pass and high-pass filters
- Gyroscope: Tracks angular velocity changes and integrates to calculate angle changes around all axes
- Compass: Provides azimuth, pitch, and roll measurements using magnetometer and accelerometer fusion
- GPS: Records location data (latitude, longitude, altitude)
- Barometer: Measures altitude from sea level
- WiFi: Network-based positioning data
Features:
- Data export to CSV files for further analysis
- Support for activity recognition, offline tracking, and dead reckoning applications
- Filtered sensor readings for improved accuracy
Type: Python Application
Purpose: Fill GPS signal gaps using sensor fusion
A Python-based dead reckoning implementation that solves the problem of intermittent or sparse GPS readings:
Problem Solved: When GPS signals are weak, blocked, or have gaps (common in urban areas, tunnels, or under bridges), traditional tracking fails.
Solution:
- Uses available GPS points as reference anchors
- Fills gaps between GPS readings using accelerometer and compass data
- Calculates displacement from accelerometer readings over time windows
- Determines movement direction using azimuth angle from compass
- Applies Vincenty Distance formula for accurate position estimation
- Synchronizes GPS timestamps with sensor data for seamless tracking
Output: Continuous route visualization on interactive HTML map, even during GPS outages
Problem Solved: GPS coordinates often drift off actual roads, appearing inside buildings, parking lots, or off-road areas due to signal interference and accuracy limitations.
Type: Python Application
Solution: Corrects inaccurate GPS readings by snapping them to actual road networks using Google's Snap to Roads API.
How it works:
- Processes batches of raw GPS coordinates from collected data
- Sends coordinate batches to Google's Snap to Roads API
- Receives corrected coordinates that align with actual road segments
- Generates side-by-side visualization comparing raw vs corrected routes
- Exports results as interactive HTML maps for analysis
Impact: Transforms noisy, inaccurate GPS tracks into clean, road-aligned routes suitable for navigation and analysis.
- Android Development: Java, Android Studio, Google Maps API
- Python: Sensor data processing, geospatial calculations
- APIs: Google Maps API, Google Snap to Roads API
- Data Processing: CSV handling, Vincenty Distance calculations
- Visualization: Interactive HTML maps, real-time marker updates
These projects were developed as part of a mobile computing course to demonstrate practical applications of mobile sensor technologies in real-world scenarios including vehicle tracking, indoor navigation, and location-based services.