The Problem
Most navigational assistive devices for people with visual impairments require use of other important sense. Some provide auditory warnings based on nearby objects - the issue with this is it can divert attention away from actively listening nearby objects and can have a slight delay between when an object is detected and when you receive the full message about it. Another example of an assistive device is a walking stick. Although it is effective, a walking stick does not give a full picture of surroundings and can miss things like low hanging objects. They also don't offer much range for object detection.
Early Prototyping
Part 1 - Reading in Data
Initial Testing
Running the motors with the LiDAR script
Final Prototype
As explained above, this setup involved wiring an Arduino MKR Wifi 1010 to a Sparkfun qwiic I2C Mux. The Mux then connected to four separate I2C Haptic drivers (DRV2605L), each connected to one of the Titan Haptics TacHammer Carlton motors. The specific camera used is a Robosense E1R LiDAR camera.
In terms of software, the most helpful resource for this project was the ROS2 Jazzy Jalisco documentation. The activities/lessons built into the documentation were extraordinarily helpful in familiarizing me with the library. This library handled most of the heavy-lifting on the software end, including things like transferring the data from the camera to the computer, and visualizing and processing the data. Another key resource was the demo-code provided with the Carlton haptic motors. This code demonstrated how to activate the motors at different intensities - exactly what we were aiming to do. The most important resource of all throughout the entire project has been collaborating with Dr. Mattfeld. Not only did he point me in the direction of the resources mentioned above, but also through our meetings we have been able to work through all sorts of obstacles that have come up throughout the project (of which there have been many) and kept me on track to make meaningful progress each week
The next step for this project is to get clearance and begin testing it on volunteers. This will help refine the design as well as the software - making sure the motors are running at the correct strength when needed and that the feedback is intuitive. The main goal of this project is to develop a functional proof-of-concept prototype, laying out the foundations in terms of software and hardware for future products to be developed and made available on a larger scale for people to actually use.