Additional Features on Fuzzy (the Robot)
(unrelated to omni-wheel robots, but still interesting)
Fuzzy, for fuzzy logic, was my first attempt towards a robot with AI.
I basically reasoned the more sensors I had on the robot, the more
'intelligent' the decisions it could make. I was going to give it a set of 'emotions':
tired: slow speed
bored: randomly activate other emotions
afraid: hide, avoid things that move
claustrophobic: stay out in lighted, open areas
hungry: low battery alert, be more efficient
wanderlust: explore a lot
frustration: try something new to acheive a goal
Sensors Used
Three scanning Sharp IR rangefinders mapped
everything in front of it. 2D Mapping was done at 180 degrees, picking up objects at a distance of up to 20ft,
and with an update rate of 3Hz. It successfully made intelligent navigation decisions, as seen in
the video. It can identify all objects, and the size of the objects, in front of it to determine
if there is enough room between objects to pass through or if it must go around.
Three sonar, used mainly as bumper sensors to compliment
the Sharp IR. It was my first time using sonar, so it was a good educational experiment.
Looking back, I think two wide angle sonar would have been more than sufficient though.
Two infrared emitter detector pairs were used for the line following modification.
The results of the experiment? Well, lets just say the PIC16F877 doesnt have enough memory
to do AI. It ran out of memory after programming most of the sensor's into it.
I had plans for a digital compass and
photoresistors too, but that didnt work out.
It did mapping, did intelligent obstacle avoidance,
could do all of its movements properly, etc. But sadly, no emotions.
Source Code:
PIC 16F877 source code for omni-wheel robots
note: there is a minor uncorrected bug for motion planning that I never got around to fixing