Inspiration

RoadCopilot was inspired by a real and emotional problem: many families worry about the safety of older loved ones who still drive, but buying a newer car with built-in safety features like lane assist, speed awareness, and integrated navigation is expensive and unrealistic for many people. At the same time, driving is closely tied to independence. It allows older adults to get to doctor appointments, grocery stores, errands, and social activities without losing freedom. We wanted to build something that would not take control away from the driver, but instead add a supportive layer of safety to older cars using something many people already own: a smartphone. \, The central idea became simple: what if a phone could act as a calm driving copilot rather than a distracting assistant or a punitive monitoring tool? :contentReference[oaicite:0]{index=0}

What it does

RoadCopilot is a phone-mounted retrofit driving copilot for older cars. Before the drive, it helps the driver choose a safer route rather than only the fastest one, prioritizing lower-stress roads, simpler turns, and fewer complicated intersections. During the drive, it uses the phone's rear camera to monitor lane position, the phone's motion sensors to detect events like hard braking and sharp swerves, and voice guidance to deliver spoken alerts and turn-by-turn navigation. It can also provide speed-limit awareness when map data supports it. After the trip, it generates a supportive summary that highlights events such as lane drift alerts, hard braking, swerves, and speeding moments so that families can better understand where support may be helpful. One simple way to model the trip score is: [ \mathrm{Score} = 100 - (5L + 4B + 4S + 2P) ] where (L) is the number of lane drift alerts, (B) is the number of hard braking events, (S) is the number of sharp swerves, and (P) is the number of speeding events. The point of this score is not to shame the driver, but to summarize support moments in a simple and understandable way. :contentReference[oaicite:1]{index=1}

How we built it

We built RoadCopilot as a combination of a mobile frontend and a computer vision backend. The mobile app was built with React Native, Expo, and TypeScript. It handles the camera preview, frame capture, trip state, navigation flow, voice alerts, and motion sensor monitoring. The backend was built with Python, FastAPI, OpenCV, and NumPy. The phone periodically captures a frame and sends it to the backend through an HTTP endpoint: [ \texttt{POST /analyze-frame} ] The backend then runs a lightweight lane detection pipeline using grayscale conversion, Gaussian blur, edge detection, a region-of-interest mask, and Hough line detection to estimate the lane boundaries and lane center. We can represent the lane offset conceptually as: [ \mathrm{offset} = \frac{x_{\mathrm{car}} - x_{\mathrm{lane\ center}}}{\mathrm{lane\ width}} ] The backend returns a lane state, confidence score, and normalized offset, and the phone decides whether a spoken alert should be played. In parallel, the mobile app continuously monitors accelerometer and gyroscope data to detect sudden motion events locally without needing the backend. This architecture let us split the project into three loops: camera analysis, sensor detection, and voice or state management. :contentReference[oaicite:2]{index=2}

Challenges we ran into

One of the biggest challenges was real-time performance. We had to make sure the phone was not sending frames faster than the backend could process them, because that would create lag and request pileups. To solve this, we designed the system so that only one frame request could be in flight at a time, and the phone would skip frames if the backend had not responded yet. Another challenge was deployment and permissions. Because the app relies on camera access, motion sensors, and audio output, we had to test on real devices instead of only simulators and carefully manage permission handling. We also ran into product design challenges, especially around how to make the experience feel calm, supportive, and respectful. Since the project is aimed at helping families support aging drivers, it was important that the language and summaries not feel like surveillance or punishment. Integrating navigation, safer routing, and speed-limit awareness into a simple mobile experience was also a significant challenge because those features increase complexity very quickly. :contentReference[oaicite:3]{index=3}

Accomplishments that we're proud of

We are proud that RoadCopilot is more than just a technical demo. It combines real-time lane drift detection, motion-event detection, voice alerts, navigation support, safer route planning, and a supportive family summary into one coherent product. We are especially proud that the idea is human-centered. Instead of building a generic driving app, we built something around a real emotional problem: how to help aging loved ones stay independent without forcing an expensive car upgrade. We are also proud that the system is advisory only. It does not attempt to steer, brake, or control the car. That made the product easier to explain, more realistic to build, and more trustworthy as a hackathon prototype. :contentReference[oaicite:4]{index=4}

What we learned

Through this project, we learned how to design a real-time system that combines a mobile app, a computer vision backend, and motion sensor logic into one product flow. We learned how to structure a React Native and Expo app for a safety-oriented use case, how to build a simple but explainable OpenCV lane detection pipeline, and how to communicate between the phone and backend efficiently over HTTP. We also learned that technical accuracy is only part of the challenge. For a project like this, tone, interface simplicity, and alert prioritization matter just as much. A safety tool has to be understandable and non-disruptive, especially when it is meant for older adults and family support. :contentReference[oaicite:5]{index=5}

What's next for Road Copilot

The next step for RoadCopilot is to improve route intelligence, strengthen the lane detection pipeline, and make the post-trip summary even more helpful over time. We would like to add better safe-route logic using road risk signals, optional cloud storage for trip history, caregiver-facing trend summaries, and more polished event analysis. A future version could also include better setup guidance for phone mounting and calibration so that the motion and camera systems are more reliable across different cars. Long term, the vision is to make modern driving safety support accessible to anyone with a smartphone, especially families trying to help an aging loved one keep their independence while driving more safely. :contentReference[oaicite:6]{index=6}

Built With

\begin{itemize} \item TypeScript \item Python \item React Native \item Expo \item FastAPI \item OpenCV \item NumPy \item Smartphone camera \item Accelerometer and gyroscope sensors \item Text-to-speech \item Maps and navigation APIs \item Safe routing logic \end{itemize}

Share this project:

Updates