May 27, 2016

Roomy: Autonomous Robot

     Roomy is an autonomous robot controlled by three ultrasonic sensors. The goal of Roomy was to create an autonomous robot that smoothly drives around a room without the need to stop and scan its surroundings like many other ultrasonic robots.
     The base of the robot utilizes the chassis and arduino boards used in the Carduino project. Also, I attached three ultrasonic sensors on the front of the robot, which Roomy uses to scan his surroundings. One sensor is facing forward and the other two are to the left and right of the center sensor, rotated about 35 degrees.


Roomy



















Operation:

Roomy has been working pretty well lately. He drives around fairly smoothly, avoiding most obstacles. When he does become trapped, he almost always is able to free himself. Also, the robot tends to often travel through similar paths throughout the house, even if the starting place is difference. These patterns are likely just because of the geometry of the rooms.



As you can see in the video, Roomy still hits a lot of stuff but he almost always frees himself. (Except for that one chair leg)


Challenges with Ultrasonic sensors:

     Ultrasonic sensors are an extremely valuable tool, but aren't very accurate. I learned that they work best against flat surfaces. This meant that when approaching an obstacle at certain angles, Roomy often would ram into a wall after not detecting it. The addition of two ultrasonic sensors (see diagram) and a few new lines of code allows Roomy to detect angles much easier, as there is a greater likelihood that at least one sensor will be facing a flat side.
Sensor Mount Design















Also, Roomy can often become stuck if there is an object too low or high that the ultrasonic sensors don't detect. One idea to fix this problem is to add force sensitive resistors or buttons to the sides of the robot as a secondary sensor system.

Roomy's other major flaw is that he can't detect sharp drops such as stairs. A downward facing ultrasonic sensor at the front of the robot could be implemented to easily fix this issue. Whenever it detects a sharp drop it could throw the motors into reverse to avoid falling. The only issue here would be reaction time. The wheels are fairly far forward on the robot, so Roomy may not stop in time.


Personification:
 
   If you haven't noticed yet, Roomy has been pretty personified. The ultrasonic sensors' inaccuracy creates occasional oddities, making Roomy seem to have his own personality. Combined with eye shaped sensors, Roomy seems very emotive. When Roomy successfully navigates through a difficult area or frees himself from being stuck, I find that I'm proud of Roomy instead of my own coding and building. Also, when I've shown the robot to family and friends they also quickly bond with Roomy and talk to and about him like a pet.



Updates:

Better Sensor Mount
The original ultrasonic mount was made from a bent piece of pie tin, which was not very precise and also looks pretty sketch. I used a bendable plastic material called Wonderflex to create a much cleaner mount with more accurate 35 degree angle bends. The sensors attach to the mount using velcro.
New Sensor Mount

















No comments:

Post a Comment