Skip to content

ayasya771/NaviPi

Repository files navigation

Navigation System for Blind People - Smart Glove

An assistive smart glove using Light Detection and Ranging(LiDAR) technology and Raspbery pi to help individuals who are blind or with low vision to navigate with confidence. This project contributes a C++ library for TFMini s sensor and a blind navigation glove.

Motivation

smart hand glove to help blind people navigate

Here a smart glove program is developed to tackle the navigation problem for blind people so that they can be confident to move without a cane or guide dog. Why Smart Glove?

  1. Good for mobility as it is more compact.

  2. Flexible for position of a person.

  3. Ease of use than cane.

  4. More range than the stick.

Hardware Requirements

raspberry pi

Schematic Diagram of the blind navigation system

The main componenents used for this project are:

  • Raspberry Pi 4
  • TFMini S LiDAR sensor
  • Servo motto
  • 5 mottos
  • Logic Converter

The servo motto board was coupled by the team and LEDs were used during the development stage. Logic converters were used to step-down voltage from +5V to +3V needed by the Lidar. The schematic diagram of the project is subject on changes. For instance, when using LEDs for the prototype resistors were added. You can view this prototype here. The image gallery can be viewed on instagram

Software Development

C++ Icon Vscode icon

This work followed Agile development approach. The various stages of the development process are outlined in order for simplicity.

Requirement Analysis

  • The LIDAR sensor(rotated by a servo motor) makes a map of 90o in front of the person.

  • According to the map, distance of the obstacles is calculated and returned.

  • Using that feedback, PWM is sent to a finger.Depending on the level of vibration on the fingers, the person gets an idea of where the obstacle is located, and he can go left or right.

Image of the lidar full scan split

A full scan of the LiDAR (90 degrees) split into 5 directions to guide the user. This is implemented in main.cpp where the driver is used.

Software Design

The classes Lidar, Servo, Pwm, DataInterface : Lidar::DataInterface are defined for this work. The doxygen documentation available here. The software design is described with the following use cases and diagrams.

  • Use cases

    smart glove use case of the lidar driver

    In this work, a blind navigation system as a smart glove is demonstrated with the LiDAR driver. A blind person puts on the glove and gets vibrations on his fingers. The intensity of the vibration tells the direction with the nearest obstacle. The individual can decide the direction to move.

  • State Diagram

    The state diagram below shows the state changes of the smart glove application.

    State diagram for the smart glove

    The state diagram for the lidar object running as a thread is displayed below.

    State diagram for the liDAR thread

  • Sequence Diagram

    The following diagram models the communication between objects in the smart glove software.

    Sequence diagram for the smart glove application

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published