Posts | Comments

Planet Arduino

Archive for the ‘Self-Driving Car’ Category

Despite overconfident proclamations from high-profile players in the tech and automotive industries, we’re still a long way from fully autonomous self-driving cars. Current prototypes work well under ideal conditions, but are easily thwarted by everyday real world anomalies. Lane keeping, however, is a much more approachable challenge and Computerphile was able add such functionality to an older vehicle.

Many of today’s cars have lane keeping capability and that usually works by looking at the lane lines on the road. Because drive-by-wire is now the norm, the vehicle can steer itself to remain within the lines. That works well on interstates and highways, because it only needs to perform small adjustments without any turns. This DIY lane keeping system works in a slightly different way. It looks at the entire scene in front of the car and uses an AI to determine if it should adjust the steering.

Before continuing, it is worth noting that Computerphile wanted to emphasis that this is not safe for use in the real world. There are too many potential safety issues and it would require extensive testing before it would be responsible to even try it on a public road.

With that in mind, this system’s performance was only simulated. It uses a trained convolutional neural network (CNN) to indicate how the car would steer itself if it had actual control over the steering. Computerphile trained that CNN using a laptop, a webcam, and an Arduino Nano 33 IoT. The computer records video frames while also recording the orientation of the Arduino through its built-in six-axis IMU. With the board attached to the steering wheel, that orientation corresponds to the angle of the steering wheel.

Through the magic of machine learning, the CNN was able to associate types of imagery with steering angles. So it might see a bend in the road and know that that means the steering wheel needs to turn.

As Computerphile shows, this works fairly well. But it is also easily confused. It would take a lot more training data in a larger variety of conditions to produce a reliable system. In theory, however, such a system would be more robust than standard lane keeping systems that look at road lines.

The post A DIY autonomous lane keeping system on a budget appeared first on Arduino Blog.

Jeremy Ellis is a teacher, and as such, wanted a longer-term project that his students could do to learn more about microcontrollers and computer vision/machine learning, and what better way is there than a self-driving car. His idea was to take an off-the-shelf RC car which uses DC motors, add an Arduino Portenta H7 as the MCU, and train a model to recognize target objects that it should follow.

After selecting the “RC Pro Shredder” as the platform, Ellis implemented a VNH5019 Motor Driver Carrier, a servo motor to steer, and a Portenta H7 + Vision Shield along with a 1.5” OLED module. After 3D printing a small custom frame to hold the components in the correct orientation, nearly 300 images were collected of double-ringed markers on the floor. These samples were then uploaded to Edge Impulse and labeled with bounding boxes before a FOMO-based object detection model was trained.

Rather than creating a sketch from scratch, the Portenta community had already developed one that grabs new images, performs inferencing, and then steers the car’s servo accordingly while optionally displaying the processed image on the OLED screen. With some minor testing and adjustments, Ellis and his class had built a total of four autonomous cars that could drive all on their own by following a series of markers on the ground.

For more details on the project, check out Ellis’ Edge Impulse tutorial here.

The post This converted RC car uses a Portenta H7 to drive itself appeared first on Arduino Blog.

For less than $1,000, Keran McKenzie programmed his car to drive itself… or did he? That is the question, which has led to much debate online over the last couple of hours. (Although Hackaday has revealed the truth, it was one heck of an ad for Arduinos!)

Hoax aside, as hackers begin to see autonomous vehicles in various phases of testing, the question of “why can’t I do that?” is bound to come up. McKenzie seemingly attempted to do just that with an array of five cameras embedded in his 2012 Ford Focus where ultrasonic sensors were formerly mounted. While details of the project are slim (and now we know why), he does mention ‘using’ an Arduino for each camera, interfaced with a master board to put everything together. He also went on to ‘add’ a SparkFun MicroView inside the car for visual feedback of the supposed control system.

Impressive hacking/editing, however, as you see just after 3:00 in the video, trusting your life to a homemade vision system is probably not the greatest idea and is a build best left to professionals.

The Ford Focus that I have has an interesting feature, it has this home button on here. Now the home button doesn’t particularly do much other than tell the navigation system to turn on and show you the route home… It got me thining though, why can’t I push that button and have it take me home?

You can read the initial story about this DIY self-driving vehicle on IEEE Spectrum, and Hackaday’s follow-up here. So, we have to ask: Did you think it was real? 



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook