Inspiration

Last year, I worked at an engineering contracting firm, where I worked on multiple autonomous vehicles. All of them had a similar vision: to change the world by bringing automation to the streets. However, none of these companies took advantage of one of the biggest advantages of autonomous vehicles: the possibilities given by inter-vehicular communication and collaborating between vehicles.

What it does

coop.ai not only solves the complex networking problem of real-time mesh networking, but also implements collaborative routing and collision avoidance. Right now, the entire platform runs in a simulated environment using using Carla, an open-source self driving car simulator.

There are three main behaviors defined: general trajectory following, distance following, and merging. Each one of these has a layer of obstacle and collision avoidance built in to them, but when used together, they communicate and negotiate for priority of the streets, allowing all cars in the network to safely and efficiently travel.

How we built it

coop.ai is programmed entirely in Python. Python was chosen for its relative simplicity and rapid development time compared to other language options, such as C or Java. To test, Carla was used a simulation environment, which allowed us to run extensive testing without any actual hardware.

Accomplishments that we're proud of

We are proud of all of the demonstrations we have put together, as they all show the possibilities of our technology. In addition, we that we were able to implement a working distributed mesh network, as well has high-performance RPC calls.

Challenges we ran into

Running such a large, complicated project in such a short compressed time frame was very challenging. With hindsight as 20/20, we should have spent the time to define the project scope and structure before jumping straight into the code.

What we learned

We definitely learned the importance of project management and organization, especially on high-complexity projects.

What's next for coop.ai

There are many potential avenues of improvement for coop.ai. One of the main ideas we had was to move it to the hardware side of things, and implement with an open source self-driving car platform such as comma.ai. On the software side of things, we would like to implement distributed computing for trajectory generation and verification, as well as the integration of a blockchain to encrypt and verify the queries between cars. By associating tokens with computational and cooperational effort (e.g. yielding to let a car in), we can ensure that car prioritization remains fair and balanced across users.

Challenges we ran into

Cramming such a large and complicated project into such a short compressed time frame was challenging, to say the least. Looking back, we should have spent more time defining the project scope and structure before jumping straight into the code.

All of the code for this project can be found on Github here

A slide deck can be found here, and videos of the simulation environment here.

Built With

Share this project:

Updates