Cargo theft in Canada amounts to a staggering $5 billion per year! Companies are losing the battle against the mob as they continue to struggle to secure their valuable assets, both in their yards and on the road. These stolen assets end up on the street and are a huge contributing factor to providing financial support for gang activity. TrackerAI aims to solve this issue by helping trucking companies keep their assets safe, which in part will help our communities stay safe!

What it Does

TrackerAI uses real-time analytics to detect if assets are where they need to be. Using existing data infrastructure, TrackerAI provides a clean interface for trucking companies to track their assets. If an asset deviates from its route or leaves the truck yard, TrackerAI will alert operators for further action. All this information is provided through a simple and clean interface that can run on an operators computer. Additionally, TrackerAI includes a user-controlled simulation for testing the system, as well as a license plate reader for use in truck yards to prevent unauthorized entry/exit.

How We Built It

In order to track routes and provide mapping information, we utilized the Google Maps API (Directions API). This allowed us to feed addresses through Google's engine and in turn, receive information about the route. The most crucial pieces of information received are the polylines, as these could be decoded to provide a large number of points along the given route. Through these points, we can then compare the current truck coordinates with the points along the route and determine, within a certain tolerance, if the truck is on route/in the yard, or has deviated.

The server was created using Python and is responsible for tying all the components together. Starting off, the server gathers information from the truck (as per real life), and sends this information through the TrackerAI analytics program. If a deviation occurs, TrackerAI will send an alert to operators for further investigation, which will be displayed through a graphical interface.

The simulation was created using PyGame and consists of three main areas. Firstly, a static background map image is displayed on the screen. Next, using the Google Maps API, a route is drawn on top of the map (given a start and end address). Finally, a truck is displayed on the map, and is specified by a dot and truck image. The user can steer the truck in all directions to simulate movement, and the truck's location on the screen is translated to real coordinates. These are then fed to the server (as per real life), which then works with the TrackerAI system to determine if the truck is on route or not.

Computer Vision
Using OpenALPR, we were able to create a basic license plate recognition program that can be employed in truck yards to prevent trucks from entering/leaving at unauthorized times. This is done by scanning a license plate and running it against known route times (which are already known).

Challenges We Ran Into and Accomplishments We're Proud Of:

There were various challenges that we needed to overcome throughout the creation of TrackerAI:

  • understanding the Google API
  • determining an accurate method for comparing the truck's location to the route points
  • converting the truck's location in the simulation to real coordinates
  • finding out how to use threads for the server

What We Learned

Through this project, we were able to learn how to use the Google Maps API (Directions API) provided through their Python client. From making requests and parsing returned information, this API will come in handy in the future for projects requiring mapping data. Additionally, we were also able to learn more about PyGame for game creation (which was used in our simulator), and Tkinter for GUI creation (used in our server).

What's Next for TrackerAI

In the future, TrackerAI aims to include the following features:

  • improved user interface, including a mobile application
  • additional custom hardware for tracking truck movement within yards (through license plate detection)
  • provide a more comprehensive system with additional security measures

Built With

Share this project: