Numerous people are driving in their cars every day for countless hours on highway wishing for a way of making good use of their precious time. Whether it's spending time with their along traveling family, other passengers or getting some work done. Although we have seen continuously improving prototypes of autonomous cars in recent years, driverless driving is still a vision for the distant future of transportation. Moreover, the price of an autonomously driving car will not be affordable for everyone.

This is why we have created a way for drivers to use their precious time in the car more wisely: Platooning for everyone with integrated, seamless payment systems and sensor sharing via the IOTA Tangle.

Platooning has been used for some years and in many tests all over the world. We think that this experience should not be limited to the drivers of trucks but in contrast, should also be extended to cars. Thereby various constellations are conceivable, be it from truck2truck, from car2car or truck2car.

What it does

Our developments make it possible for platooning to be applied in the fragmented automotive market. Thus it allows for the experience of autonomous driving without giving all control to the car. This makes it possible for people to make good use of the valuable time they spent in a car presumably much earlier than regulations would allow for fully autonomous cars, especially in Germany and in Europe. Through the adaption of platooning for cars together with the development of an IOTA ecosystem, we are making a big step in the direction of the future of autonomous driving, without, however, ultimately handing over control to sensors and computer programs.

How we built it

As we thought about which blockchain/distributed ledger technology is suitable for our proof of concept we quickly decided for IOTA. It fits well because we rely heavily on microtransactions and IOTA is well suited for this due to its tangle structure. After making ourselves familiar with IOTA and the corresponding software, we decided to create a private IOTA tangle. This gives us the possibility to simulate our PoC independently from the sometimes not that responsive main network. In order to set up a private tangle, we used the coordinator tool Compass to set up a private tangle, which we ran on an external computer to simulate the network. We connected an IRI node for the cars with this network. The API of the node was activated so that the cars can interact with transactions over the network. The ZMQ service of the node has also been activated so that the car can listen to network transactions. Thereafter, we could start to implement the API of IOTA with the JavaScript library via NodeJs. As payment for the platooning, MIOTAs are now transferred over the network. At the same time, a JSON file is always sent along the transaction message, documenting the current status and potential status changes of the platoon. To exit a platoon a transaction with the corresponding content and no MIOTAs can be sent. Otherwise, a regular payment flow is ensured via microtransactions. The receipt of this payment is recorded and processed by the platoon leader immediately upon receipt. This is where IOTA's short transaction times come in handy. For the Challenge, we built several miniature cars, which can drive one behind the other in a platoon. Vehicles can both drive autonomously and communicate via the Tangle. Therefore, we installed a Raspberry Pi, an Arduino and several sensors on each car. The Arduino and Raspberry Pi continuously communicate with each other. While the Arduino reads out all sensor data and controls the engines, the Pi takes care of the payment and logging of data into the IOTA-Tangle.

Challenges we ran into

Since we are developing a cutting edge IOTA PoC, there was not much ground we could build on. This itself was challenging. We wanted to set up the IOTA Network as realistically as possible. First, we tried to set it up through Hercules. However, it wasn’t able to be adapted to our use case. Hercules

Ultimately, we could not use the public IOTA Tangle with the current status due to long transaction times and instability of the Tangle among others. Therefore, we set up a private IOTA Tangle for our cars. This was especially challenging due to the lack of personal experience and almost no data being publicly available from other developers up to that point.

After setting up the Tangle, we build interfaces to interact with it. At the beginning the preparation of transactions, setting up of bundles, took a long time in the private network as well but we eventually fixed that. In general, working with the very frequently updating IOTA ecosystem requires constant new adaptations of the code.

The construction of autonomously driving cars was also an entirely new sphere for us. Especially the control system of ultrasonic sensors to interact with the motor took quite some time.

Accomplishments that we're proud of

Running IOTA with Raspberry Pis, which will allow many more IOTA PoCs in the future by the community and us to be built to test the potential of the Tangle further, as is already the case with Ethereum.

Managing to set up a private IOTA Tangle including coordinator and the structure of the IOTA main net. Now it is possible to send transactions, log data to the Tangle and listen to transactions. We see if a transaction was sent to the tangle when it was confirmed and can then start and stop platooning accordingly. The autonomous cars communicate via the Tangle concerning the platooning, e.g. logging sensor data, sending transactions and signaling the willingness to platoon and share the needed sensor data via a second layer UDP protocol in real time.

The entire code is set up in such a way that it can be tested as easily and quickly as possible in real cars in the future.

All in all, we developed a full stack solution, from the front end dashboard, based on web development, to communication via tangle by the Raspberry Pis to control of the sensors and all electronics of the autonomous autos

What could not be programmed was soldered.

What we learned

We've broken new ground for ourselves. We learned how IOTA works, from setting up a private tangle to the development of the transactions to the development of the bundle to the setup of a full node and especially what it means to work with such a young technology, where something changes weekly. It was also fascinating to see how it is to work with the active developer community of IOTA.

Also, the development, the build and the programming of autonomously driving cars was new territory for us.

Combining these two areas we learned who how the communication between various entities works: RasPI2Tangle, Rasp2Rasp, Rasp2Arduino

Finally, making a small film was also a new experience for us.

What's next for Platooning

We are currently evaluation with BMW's Blockchain - and Autonomous Driving department to evaluate how we can implement our technology in the cars that drive on the road soon. To upgrade our PoC, we are adding additional sensors like lidar and true depth cameras to our cars at the moment. In addition, we are developing the IOTA V2X communication further so that we can send micropayments over the Tangle not only for platooning but also for further

Built With

Share this project: