A lot of students tend to be buried in their books, and might be lacking in physical activity over the school year, so we thought building something that facilitates exercise would be interesting. We noticed that while a lot of existing running apps tracked how much distance you already ran, not a lot actually provide a predetermined (suggested) path based on how much the user wants to run; say you wanted to run 1 km. To find a good path, you would have to search your area on Google Maps, and try to estimate a path manually. We tried to eliminate that hassle by creating an app that automates that, where an inputted run distance value (in km or miles) gets converted to a runnable path on UofT campus.
What it does
ActivePath takes in a user input for run distance or calories and plots out a suggested route for a run through analyzing a map with computer vision and a pathfinding algorithm.
How we built it
Most of the code itself was written in Python, while android studio was used to incorporate the code into a mobile app. OpenCV was used for the image processing of the campus map and filtering out the available paths.
Challenges we ran into
Firstly, the OpenCV map detection was quite rough at the beginning. We had to manually switch many parameters within different functions to optimize the accuracy of the final processed map. This generated a list of nodes. Turning this list into a useable graph accurately representing the city also turned out to be much harder than expected, which required a lot of coding time and discussion. Integrating everything into Android Studio also was a major challenge as there was no easy way for the separate subsystems to interact with each other, leading to a lot of last minute edits.
Accomplishments that we're proud of
We are quite proud of the fact that we built a complex program that actually works and that we each wrote completely separate parts, that were able to be successfully integrated afterwards. We are also proud of how much new content we were able to apply to an actual project, especially the computer vision and node-graph aspects. We also built this in 8 hours.
What we learned
We learned how to use OpenCV in real life applications. Also, we learned how to create working path finding algorithms that function with self-made graphs.
What's next for ActivePath
- Optimize the run time
- Optimize integration with Android and maybe IOS