Hackster is hosting Hackster Holidays, Ep. 7: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Friday!Stream Hackster Holidays, Ep. 7 on Friday!

Look Mom, No Hands!

YouTuber Austin Blake has upgraded his Tesla-inspired go-kart with self-driving capabilities to take a hands-free spin around the park.

Nick Bild
1 year agoMachine Learning & AI
The Teskart with added self-driving capabilities (📷: Austin Blake)

There are a lot of reasons why someone might be interested in owning one of Tesla’s electric vehicles, whether it be the instant torque provided by the electric motors, or the elimination of a reliance on gasoline. But what typically gets people the most excited is the full self-driving capability.

Fully self-driving cars have a number of advantages that may pique one’s interest. First, they promise improved safety by significantly reducing accidents caused by human error, which is a major cause of traffic incidents worldwide. These vehicles use cutting-edge sensors, cameras, and radar systems to constantly monitor their surroundings and make quick decisions to avoid accidents.

Moreover, self-driving cars offer unparalleled convenience and productivity. Commute times become more valuable as passengers can utilize their travel time for work, relaxation, or leisure activities instead of focusing on driving. This can greatly enhance overall quality of life, particularly for those with lengthy daily commutes.

But these features do not come without a hefty price tag, and many of us find that we cannot justify that expense. An engineer by the name of Austin Blake fell into this category — he was very interested in owning a Tesla Model S, but did not want to lay out the cash for one. So instead, he decided to build his own. Well, a very small version of one, anyway. That resulted in the development of his go-kart-sized, electric Teskart.

As much fun as the Teskart was, however, it was noticeably missing any self-driving capabilities. So Blake recently took on the challenge of building an add-on module that would allow for hands-free driving of the Teskart.

Unfortunately, Blake did not have any experience with the machine learning algorithms that would be needed to make such a system work. Rather than give up, he took some online courses and picked up enough knowledge to build the algorithms to enable simple self-driving capabilities. The plan that he came up with would certainly not allow the Teskart to drive on city streets, but since it is a go-kart, that is not really important. As long as he could take a spin around the park, the self-driving feature would be a success.

Before building the software, the Teskart needed to be fitted with some new hardware. A servo motor extracted from a power wheelchair was installed to turn the steering shaft, which was also connected to a potentiometer. By reading the potentiometer’s resistance level, an Arduino could determine the present steering angle. A motor controller, also driven by the Arduino, allowed the steering angle to be adjusted.

A laptop was added to the build to give it data processing capabilities. The laptop captures images from a set of three forward-facing webcams to get a look at the road ahead. These images are then processed by a convolutional neural network (CNN), which predicts the optimal angle for the steering wheel given what is currently in front of the Teskart. This prediction is communicated to one of the Arduinos via a serial connection, which in turn adjusts the steering shaft’s position.

Blake chose to test the self-driving module out at a local park, which has a circular path that is ideal for a go-kart track. Using a custom script to collect data, he drove laps around the path. Steering angle measurements were paired with images, and this data was used to train the CNN.

The initial tests did not exactly go according to plan. The Teskart was frequently going off track and acting very unpredictably. Eventually, Blake realized that the kart was turning exactly opposite to the direction that it should, and was able to track it down to an error in the Python code that sends steering angle updates to the motor control system.

With that bug sorted out, the vehicle started to behave much better, generally making the right decision and allowing Blake to sit back and enjoy the ride. Not to say that it worked perfectly — every now and then the Teskart would go a bit wild, but with Blake maintaining control of the accelerator and brakes, no harm was done. Chances are that a larger training dataset would enable the Teskart to cruise for hours without problems. But for now, we will just have to wait for a follow-up video to see if a solution is found.

Nick Bild
R&D, creativity, and building the next big thing you never knew you wanted are my specialties.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles