-
Cars approaching an intersetion with the mesh network overlayed
-
Car approaching and merging between two other cars, with the waypoints shown
-
Cars synchronously traveling together, with their waypoints shown
-
Car in follower mode, keeping a consistent distance from the target car
-
Graph diagram of an example mesh network
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
- carla
- python
- rpc
- zeromq

Log in or sign up for Devpost to join the conversation.