Posts with «self-driving» label

Full Self-Driving, on a Budget

Self-driving is currently the Holy Grail in the automotive world, with a number of companies racing to build general-purpose autonomous vehicles that can get from point A to point B with no user input. While no one has brought one to market yet, at least one has promised this feature and had customers pay for it, but continually moved the goalposts for delivery due to how challenging this problem turns out to be. But it doesn’t need to be that hard or expensive to solve, at least in some situations.

The situation in question is driving on a single stretch of highway, and only focuses on steering, so it doesn’t handle the accelerator or brake pedal input. The highway is driven normally, using a webcam to take images of the route and an Arduino to capture data about the steering angle. The idea here is that with enough training the Arduino could eventually steer the car. But first some math needs to happen on the training data since the steering wheel is almost always not turning the car, so the Arduino knows that actual steering events aren’t just statistical anomalies. After the training, the system does a surprisingly good job at “driving” based on this data, and does it on a budget not much larger than laptop, microcontroller, and webcam.

Admittedly, this project was a proof-of-concept to investigate machine learning, neural networks, and other statistical algorithms used in these sorts of systems, and doesn’t actually drive any cars on any roadways. Even the creator says he wouldn’t trust it himself, but that he was pleasantly surprised by the results of such a simple system. It could also be expanded out to handle brake and accelerator pedals with separate neural networks as well. It’s not our first budget-friendly self-driving system, either. This one makes it happen with the enormous computing resources of a single Android smartphone.

(Almost) autonomous kids’ vehicle with Arduino

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.

Newsflash: A Bunch of Arduinos is Not an Autonomous Car

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.


We 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
Hack a Day 19 Oct 18:00

A self-driving vehicle using image recognition on Android

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)
Arduino Blog 15 Jul 10:01

'Fish on Wheels' frees your guppy from the tyranny of the tank (video)

A company called Studio Diip has created a motorized go-cart. For fish. Though "why" is the first question that comes to mind, at this point we're only able to give you the "how." When Little Dory starts to swim in a particular direction, her movement is captured by a top-mounted web cam, processed by a Beagleboard and used to steer the Arduino-controlled carriage under her bowl. As seen in the video after the fold, that lets her follow her muse outside the aquarium's confines. We're hoping this experiment makes it beyond the lab one day, as we're pretty damned curious to see where a fish wants to go. ("Away from the cat" or "towards the ocean" seem like safe bets.)

Filed under: Misc, Transportation

Comments

Source: Studio Diip