Posts | Comments

Planet Arduino

Archive for the ‘self-driving’ Category

A few years ago, Austin Blake built an electric go-kart that looked like a Tesla Model S. It had the plastic shell from a kid’s Radio Flyer ride-on vehicle, but on top of a custom go-kart frame with a powerful electric motor. That looked like a Tesla, but it didn’t really act like one because it lacked self-driving capability. Now Blake has finally addressed that oversight and given his Tesla go-kart an Arduino-based autopilot.

Tesla’s autopilot and full self-driving features don’t allow for 100% autonomous driving, but they get pretty close. Blake’s autopilot is much more limited, but still impressive. It can steer the go-kart around a known track while Blake handles the throttle and brakes. However, it can only follow the course it was trained on and can’t deviate from that without issues. It also can’t account for unusual events, like a pedestrian in the “road.”

Blake’s autopilot works using a machine learning model running on a laptop, which controls the steering and receives steering angle information from a pair of Arduino Nano boards. The laptop looks at the road through a trio of Logitech webcams and those were also used to gather the training images. A large motor from a power chair rotates the steering column and a potentiometer monitors that rotation, so the two work together like a servo motor.

Many times every second, the machine learning model looks at a frame from the video. Based on its training data, it determines what steering angle best matches the current view. It then turns the steering motor until it reaches that steering angle. The disadvantage of this technique is that it will always attempt to follow the same route as it was trained on and is therefore unable to navigate a new route.

The post Tiny Tesla go-kart gains self-driving autopilot appeared first on Arduino Blog.

While the world seems to be focusing on self-driving cars, maker Sieuwe Elferink has instead turned his attention to creating a semi-autonomous kids’ four-wheeler. As of now, the modified device can steer itself within a set of lines, and stop for pedestrians and inanimate objects.

The augmented vehicle uses an Arduino Nano for control, plus a pair of TCRT5000 sensors attached to tubing on the sides to pick up boundary lines. Obstacle avoidance is via an ultrasonic sensor on the front. Four relays are used to activate a former windshield wiper motor for steering through a chain and sprocket system, along with the vehicle’s original motor for propulsion.

The build process is documented here, while code and an electrical schematic is available on GitHub.

Nobody’s perfect. Sometimes you’re up late at night writing a blog post and you stumble upon an incredible story. You write it up, and it ends up being, well, incredible. IEEE Spectrum took the bait on this video (embedded below) where [Keran McKenzie] claims to have built a self-driving car for under $1,000 AUS with Arduinos.

The video is actually pretty funny, and we don’t think it’s intended to be a mass-media hoax as much as a YouTube joke. After letting the car “take over” for a few seconds, it swerves and [Keran] pretends to have hit something. (He’s using his knees people!) There are lots of takes with him under the car, and pointing at a single wire that supposedly makes the whole thing work. Yeah, right.


home-built-autonomous-ford-focus-for-under-1000-li86hwunrfmmp4-shot0004We were a bit bummed, though. We don’t think you can even reliably interface a sensor system with the steering wheel, accelerator, and brakes for as little as one grand, but we would have been entirely happy to see it done. We’re not saying that the software to run an autonomous car is the easy part, but we’d love to have a hack at it if the hardware were affordable.

Anyway, if you’re looking for a real autonomous driving experience, we recommend starting by hacking RC cars and giving them substantially bigger brains than an Arduino. Once you’ve got that working, making progress to a real car is doable, but expensive. And it helps to be [geohot].

And lest you think we’re all holier-than-thou, check out our most embarrassing post ever. We could just curl up and die. Feel better soon, IEEE Spectrum!

Thanks [jpiat] for the tip!


Filed under: Arduino Hacks

Nobody’s perfect. Sometimes you’re up late at night writing a blog post and you stumble upon an incredible story. You write it up, and it ends up being, well, incredible. IEEE Spectrum took the bait on this video (embedded below) where [Keran McKenzie] claims to have built a self-driving car for under $1,000 AUS with Arduinos.

The video is actually pretty funny, and we don’t think it’s intended to be a mass-media hoax as much as a YouTube joke. After letting the car “take over” for a few seconds, it swerves and [Keran] pretends to have hit something. (He’s using his knees people!) There are lots of takes with him under the car, and pointing at a single wire that supposedly makes the whole thing work. Yeah, right.


home-built-autonomous-ford-focus-for-under-1000-li86hwunrfmmp4-shot0004We were a bit bummed, though. We don’t think you can even reliably interface a sensor system with the steering wheel, accelerator, and brakes for as little as one grand, but we would have been entirely happy to see it done. We’re not saying that the software to run an autonomous car is the easy part, but we’d love to have a hack at it if the hardware were affordable.

Anyway, if you’re looking for a real autonomous driving experience, we recommend starting by hacking RC cars and giving them substantially bigger brains than an Arduino. Once you’ve got that working, making progress to a real car is doable, but expensive. And it helps to be [geohot].

And lest you think we’re all holier-than-thou, check out our most embarrassing post ever. We could just curl up and die. Feel better soon, IEEE Spectrum!

Thanks [jpiat] for the tip!


Filed under: Arduino Hacks
Jul
15

A self-driving vehicle using image recognition on Android

Android, arduino, arduino mega, Cars, Featured, mega, self-driving Comments Off on A self-driving vehicle using image recognition on Android 

platis01

Dimitri Platis is a software engineer who’s been working with his team on an Android-based self-driving vehicle which uses machine vision algorithms and techniques as well as data from the on-board sensors, in order to follow street lanes, perform parking manoeuvres and overtake obstacles blocking its path:

The innovational aspect of this project, is first and foremost the use of an Android phone as the unit which realizes the image processing and decision making. It is responsible for wirelessly transmitting instructions to an Arduino Mega, that controls the physical aspects of the vehicle. Secondly, the various hardware components (i.e. sensors, motors etc) are programmatically handled in an object oriented way, using a custom made Arduino library, which enables developers without background in embedded systems to trivially accomplish their tasks, not caring about lower level implementation details.

[...]

On the software dimension of the physical layer, an Arduino library was created (based on a previous work of mine [1], [2]) which encapsulated the usage of the various sensors and permits us to handle them in an object oriented manner. The API, sports a high abstraction level, targeting primarily novice users who “just want to get the job done”. The components exposed, should however also be enough for more intricate user goals. The library is not yet 100% ready to be deployed out of the box in different hardware platforms, as it was built for an in house system after all, however with minor modifications that should not be a difficult task. This library was developed to be used with the following components in mind: an ESC, a servo motor for steering, HC-SR04 ultrasonic distance sensors, SHARP GP2D120 infrared distance sensors, an L3G4200D gyroscope, a speed encoder, a Razor IMU. Finally, you can find the sketch running on the actual vehicle here. Keep in mind that all decision making is done in the mobile device, therefore the microcontroller’s responsibility is just to fetch commands, encoded as Netstrings and execute them, while fetching sensor data and transmitting them.

 

Check the Arduino library on Github, explore the circuit below and enjoy the car in the video:

Here’s the essential bill of materials:

  • Electronic Speed Controller (ESC)
  • Servo motor (Steering wheel)
  • Speed encoder
  • Ultrasonic sensors (HC-SR04, SRF05)
  • Infrared distance sensors (SHARP GP2D120)
  • Gyroscope (L3G4200D)
  • 9DOF IMU (Razor IMU)
platis02 platis03


  • 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