It's a fact that there are milions of ways of driving a car, one per each driver, but the number of roads is way smaller. What that means is that it's very likely that you'll end up driving with a slower car in front of you and you'll want to overtake. However, that is not always that easy. You don't know if there are cars coming in the opposite direction, you're not sure of road and weather conditions, and most importantly, you don't know which are the best spots to overtake.
What it does
Overtake wants to solve that. Overtake is installed in your car, and using your smartphone and a few sensors from Bosch's XDK, we are able to collect data about how your car is behaving and, consequently, know when you are accelerating, breaking, turning... With this data we can determine the best spots to overtake, and give you voice spoken recommendations about when to overtake safely.
Overtaking is also aware of the environment that surrounds the car, so it's able to push recommendations even further. For example, it can detect that there's no enough light (and therefore not enough visibility) or that the tarmac is wet and there's no sufficient grip for sudden speed and direction changes.
How we built it
This project is part of the Bosch-Volvo challenge, so we used their resources and we built it top of them. We've performed a few real road test drives with Volvo SUVs and we used the Bosch XDK to collect as much data as we could. Then, we send and process that data on an Android phone.
We use Python (Flask) and sqlite3 for the backend, an Android app completely developed by us, and C code for the Bosch XDK.
Open APIs: We used the Google Location APIs and the Activity Detection API to know when the user is actually in a moving vehicle.
Challenges we ran into
We had a difficult time debugging incorrect values read from the accelerometer, and at the end of the day we just had the endianness wrong.
We also had some trouble getting used to Windows, as it's the only supported platform for the Bosch XDK, but it turned out to work quite well.
Accomplishments that we're proud of
We were able to successfully detect overtakes based on accelerometer, gyroscope and GPS data, push the data to our server, and let the user know ahead of time that a safe spot is coming in 500 meters.
When we went on our last test drive everything worked as expected with live data.
What we learned
We learned to use the Bosch XDK, to use Flask, and to use the several Google Location APIs.
What's next for Overtake
This product can also be incorporated to trucks, and to make them drive more efficiently, saving fuel and money.