About the Project
Obstacle avoidance project is part of Wash U's undergraduate research program supervised by Professor Ed Richter. In this project ultrasonic sensor and Xbox Kinect were used on a two-wheeled robot to sense obstacles.
The ultrasonic transducer helps the robot detect short range (<80 cm) obstacles while the Xbox Kinect senses long range (>80 cm) obstacles. By combining the two sensors the robot would be able to map its surroundings and navigate around obstacles.
The ultrasonic transducer helps the robot detect short range (<80 cm) obstacles while the Xbox Kinect senses long range (>80 cm) obstacles. By combining the two sensors the robot would be able to map its surroundings and navigate around obstacles.
Short Range Obstacle DetectionFor short range obstacle detection we used the Parallax Ping))) Ultrasonic Transducer(UST). The code used to implement this sensor involved a modified FPGA interface file provided as part of the ESE 297 project that used the same robots. We found part of the way through the project that the sensor was not returning correct values and that was due to an outdated portion of the FPGA bitfile that was not reading the sensor correctly.
Using the FPGA bitfile, the information returned by the sensor was simply a distance in meters and we paired the angle of the servo motor's position with it to return the angle of the sensor and the distance to obstacle. Note that this means that the sensor returns info in a 2D format as opposed to the Kinect which has the ability to return a 3D depth mapping. Unlike the Kinect, this data format means that we did not feel the need to do any kind of data extrapolation and we modeled our basic avoidance off of simply scanning an angle range directly in front of the robot and adjust movements if obstacles exist in the direct path of the robot. |
Long Range Obstacle DetectionFor long range obstacle detection we used Xbox Kinect as a sensor and analyzed depth data using Matlab. Xbox Kinect has an infrared sensor that maps its environment in a 3D space. For this project basic obstacle sensing and mapping was implemented using two blocks as obstacles. The goal was to determine how far the blocks are from the sensor and how far apart the blocks are from each other.
The details of this mechanism are described in the MATLAB for Kinect section. |