Posts | Comments

Planet Arduino

Archive for the ‘navigation’ Category

In order to help those with visual impairments navigate streets, college student Satinder Singh has come up with an innovative solution that literally pokes the user in the right direction. 

Singh’s system, called DeepWay, uses a chest-mounted camera to take images of the road that a wearer is walking down, then feeds this information to a laptop for processing. 

If the deep learning algorithm determines that the user needs to move left or right to stay on the path, a serial signal is sent to an Arduino Uno, which in turn commands one of two servos mounted to a pair of glasses to tap the person to indicate which way to walk. Additional environmental feedback is provided through a pair of earphones.

This project is an aid to the blind. Till date there has been no technological advancement in the way the blind navigate. So I have used deep learning particularly convolutional neural networks so that they can navigate through the streets.

My project is an implementation of CNNs, and we all know that they require a large amount of training data. So the first obstruction in my way was a correclty labeled dataset of images. So I went around my college and recorded a lot of videos (of all types of roads and also off-roads). Then I wrote a basic Python script to save images from the video (I saved 1 image out of every 5 frames, because the consecutive frame are almost identical). I collected almost 10,000 such images almost 3,300 for each class (i.e. left right and center).

I made a collection of CNN architectures and trained the model. Then I evaluated the performance of all the models and chose the one with the best accuracy. I got a training accuracy of about 97%. I got roughly same accuracy for all the trained model but I realized that the model in which implemented regularization performed better on the test set.

The next problem was how can I tell the blind people in which direction to move. So I connected my Python program to an Arduino. I connected the servo motors to Arduino and fixed the servo motors to the sides of a spectacle. Using serial communication I can tell the Arduino which servo motor to move which would then press to one side of the blind person’s head and would indicate him in which direction to move.

A demo of DeepWay can be seen in the video below, while code for this open source project is available on GitHub.

Apr
30

A Simple And Inexpensive GPS Navigation Device

arduino, arduino hacks, bitmap, BMP, display, geotiff, Github, gps, LCD, navigation, TFT, uno Comments Off on A Simple And Inexpensive GPS Navigation Device 

There are plenty of GPS navigation units on the market today, but it’s always fun to build something yourself. That’s what [middelbeek] did with his $25 GPS device. He managed to find a few good deals on electronics components online, including and Arduino Uno, a GPS module, and a TFT display.

In order to get the map images on the device, [middelbeek] has to go through a manual process. First he has to download a GEOTIFF of the area he wants mapped. A GEOTIFF is a metadata standard that allows georeferencing information to be embedded into a TIFF image file.  [middelbeek] then has to convert the GEOTIFF into an 8-bit BMP image file. The BMP images get stored on an SD card along with a .dat file that describes the boundaries of each BMP. The .dat file was also manually created.

The Arduino loads this data and displays the correct map onto the 320×240 TFT display. [middelbeek] explains on his github page that he is currently unable to display data from two map files at once, which can lead to problems when the position moves to the edge of the map. We suspect that with some more work and tuning this system could be improved and made easier to use, of course for under $25 you can’t expect too much.


Filed under: Arduino Hacks
Jul
31

An introduction to inertial navigation systems

arduino hacks, inertial, inertial navigation system, navigation Comments Off on An introduction to inertial navigation systems 

acc_sens

Long before ships relied on GPS to determine their location – and even before radio navigation systems such as LORAN, vessels relied on a still impressively sophisticated means of determining their position: inertial navigation. The theory is simple: if you keep a few very accurate gyroscopes and accelerometers on board, you’ll be able to calculate where you are relative to your previous position. Since electronic gyros and accelerometers are all over the place, [Sebastian] thought he would have a go at creating his own inertial navigation system.

The difficulty in using this method is that every gyroscope invariably has some error. Since the measurements from the gyros and accelerometers are integrated together, the error is also integrated, resulting in an increasing positioning error as time goes on. With a few clever algorithms and very good sensors, it’s possible to minimize this error.

[Sebastian] doesn’t have really great hardware – he’s only working with a accelerometer/gyro breakout board that’s good enough for experimental purposes. After reading the accelerometer data with an Arduino, he’s able to capture all the sensor data and read it into a Python script.

The next steps are to figure out a decent algorithm to integrate all the sensor data, and possibly add a barometer and magnetic compass for better compensation for errors. The project is still in the early phases, but seeing as how an inertial navigation system is one of the engineering triumphs of the early 20th century, we’re eagerly awaiting any progress updates.


Filed under: Arduino Hacks


  • 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