Countless devices have been created to help 4.2% of Americans who are legally blind to become more independent in their daily lives. Urban environments are notoriously hard to traverse and with about 80% of the visually impaired living in urban environments, it’s no wonder that many have trouble navigating. Some solutions to this problem have been created like the probing cane, service animals and camera based obstacle avoidance systems. Though these can prevent collisions with nearby objects, they provide no feedback in the way of walking directions. The ones that do perform this task are usually audio based and read directions into the ear. They do not provide very accurate turn information, but instead provide general directions like left and right.

Solution Overview


The device is based around an ankle band that all the components are mounted to. During operation, the device receives input from three time of flight (ToF) laser distance sensors. These detect when the user gets closer than 30 cm to an obstacle. An Arduino Pro Mini microcontroller processes the sensor data in conjunction with inertial measurement unit (IMU) data to compensate for the orientation of the foot when reading ToF distances, and to provide more accurate heading data to the Android application. This Arduino is also connected to a bluetooth module that communicates with the phone to receive navigation information. The Arduino uses these inputs to control an array of eight vibration motors that are distributed equally around the users ankle.

The Arduino Microcontroller performs all the computation that happens on the device itself. It has two major functions. It must use data from the three ToF sensors and IMU to determine when to notify the user of an obstruction and it must also send compass data for more accurate heading information. The ToF sensor data is constantly being monitored, so when the user enters within 30 cm of an object, it will notify the user. Though to prevent false readings, the device will only notify the user when the foot is relatively flat against the ground.

Android Application

The modern smartphone provides a relatively vast array of sensors, and combines them with internet connectivity in a user-friendly package. Thus, it made sense to use such a platform to provide location data, generate walking directions, and determine the direction in which the anklet should direct the user to proceed. For this we selected the Android platform, for its open development platform and low cost compared to competitors. The application performs three main functions. Most importantly, it uses GPS and other location sources to determine the user’s current location and heading. It also utilizes the Google Maps API in order to obtain walking directions that are used to guide the user to their destination. Finally, it implements  Bluetooth to communicate with the anklet. This allows it to send the direction in which the user should be directed to turn, and to receive heading data from the the IMU and magnetic compass sensor unit mounted on the anklet.


After extensive testing, we found that although there are some aspects that could be improved, the device as a whole works rather well. We tested our device by wearing the unit and testing our ability to use it’s feedback to travel along various test routes while blindfolded. The app produced navigation routes and obtained location data using the Google Maps API. An algorithm processed this data and determined the heading that the user needed to be directed to take, and this was then used to determine which motor the anklet should be directed to vibrate. The user generally experienced little difficulty determining what the intended direction of travel was. In addition, they were able to effectively navigate around obstacles using the ToF distance sensors and haptic feedback.

Future Work

Although this model works as a proof-of-concept, there are still...

Read more »