I know my wife would love it if a robot:
• Could vacuum (we have a Roomba, but I need to fix
it)
• Could pick up small dropped items (that would choke
a Roomba)
• Automatically do the above when there is no one
around
I’d love it if a robot could fetch me snacks and drinks
during hockey games, but that will take a much larger,
smarter, and more powerful bot than Berry.
In order to fetch and move items, not only would the
robot need to be much more powerful and have at least
one arm, it would:
• Have to know where it was in the house
• Have to know the location of items of interest (in 3D
space due to tables and shelves)
We have to learn to walk before we can run, so let’s
forget a large robot with an arm for now, and start to work
on having a robot be able to tell where it is in the house.
This requires indoor positioning. There are many techniques
for indoor positioning, including:
• Measuring wireless signal strength (from Wi-Fi, RF
beacons, RFID, etc.)
• Looking for known optical beacons (whose
positioning is known)
• “Absolute” positioning from wiring or other position
markers in the floor
• Visual recognition of a camera view
• “Dead reckoning” by starting from a known position,
combined with odometry or gyroscope
If you are interested in the MANY methods people
have used, Googling “robot indoor positioning” will get you
more links than you can shake a stick at.
For my robots, I don’t need extremely precise
positioning. I will be happy with knowing where Berry is,
say, within four inches. Currently, I am using:
• A compass to a bearing of “magnetic north”
• Correcting for magnetic declination so I can get “true
north”
• An accelerometer to compensate for compass tilt
The above gives me a reasonably accurate indication of
where true north is relative to where Berry is facing.
Combining knowing where north is with the distance
to the closest object from it, Berry will be able to build a
rough map of the floor he is running around on. Such a
map is the first step to later being able to figure out
WHERE he is — based on direction, distance, and a predefined map of the floor that he can try to locate himself
on via pattern matching.
Later, I will add:
• Wheel encoders for odometry (i.e., how far/how fast
the robot is traveling)
Serving Raspberry Pi
42 SERVO 12.2016
Small robots are a lot of fun.
• We can drive them around in many ways (Wi-Fi,
Bluetooth, wireless joystick)
• We can view out their eyes (Pi camera, etc.)
• We can watch them run around and avoid
obstacles (random walk)
• We can watch them solve mazes and race
around following lines
Wouldn't it be nice if they could do a lot more?
#8
Starting on Indoor Positioning