The next long term project is going to be an autonomous housecleaning robot, based on the Pololu Zumo Robot chassis an Arduino Mega and a complete overflow of optical and acoustical sensors.
The pololu homepage says, their platform is not compatible with the Arduino 2560 MEGA, but i need the additional IOs so i will try it anyway.
A plan is also to eventually use an Arduino DUE in the future.
I didn’t want to use it because it uses 3.3V on its I/O pins, and you can destroy it with regular 5V shields.
Good news: all R3 shields might work. A lot of sensors have 3.3V modes, so i will try this in the future if SLAM (simultanious location and mapping) which is the way to go for what i need, gets too exhausting for the MEGA.
SLAM means you send out a robot. And the robot drives a path on a map that the robot itself created while driving around.
For example it reads a speed and the sensor on the right side says there is a wall next to it, it draws a map with a wall next to it and at the same time knows that it isnt allow to drive right as long as theres a wall next to it on the map.
My plan is to divide every room into 64×64 squares. The squaresize depends on the room size. And then i decide if a square is “LOW” that means “ok” to drive on or “HIGH” that means there is something on it.
Between rooms, the robot will be on “10cm parallel to the wall” mode and drives to the next door in a sort of line following mode.
On the floor, in front of every room, there will be a barcode sticker with a 10cm black line, that ultimately guides the robot to the barcode with the line following array.
There will be 3 BITs, reserved in the barcode, that will be the room-number for up to 8 rooms and the rest are either repeating tasks or probably positions of semipermanent objects like the couch that i could eventually move.
I probably put the barcode reader tiltable on the back of the robot,so that i can read from the floor in normal position or in “straight looking back”-position, so i can show the robot barcodes with my cell phone.
Idealy i use the barcode reader as line following array, that would be perfect.
In a best case scenario the robot would match the array in the given map with the map that the sensors create, but i think that would be to exhausting for the processor.
So the plan is to use the two mouse sensors to calculate a real world distance. Odometry (sensors in the wheel or motors to measure distances” are useless if the robot or its tracks slip.
And they will slip. Everytime it turns in any direction, part of the tracks have to slip. But you’ll never know how much, thats why you cant’t use it’s data for real distance metering.
The mouse sensor on the other hand gives the arduino deltaX and deltaY via dedicated pins, all in 400 lines per inch resolution and up to 30 inch per second movement of the robot.
Even if the tracks do slip and its not driving 100 percent 90 degree from a position it should turn 90 degree. The mouse sensor reads the real distance and adds or subtracts it to the path.
In my dreams of course.
6x HC-LS04 ultrasonic distance sensors.
— two on each side to let it position parallel to walls without moving
— two pointing forward on seperate servos for swiping
4x IR edge detecting sensors, one on each corner
2x Laser-mouse sensors, centered, one under each axle for exact turnings
1x line following array
(probably) 1x PS2 barcode scanner pointed downwards, so i can leave stickers with barcodes on the floor to communicate with the robot.
Thats the mockup so far:
And a turntable animation:
I rendered it too fast, so you can barely read the text:
The blue sensors are HC SR04 ultrasonics
The red sensors are te edge detection sensors
The green sensors are lasermouse sensors
The yellow sensor is the line following sensor
edit: the zumo came today, and its WAY smaller then i thought:
another edit, months later:
The Arduino MEGA can easily drive the ZUMO shield without any physical modification. The only thing that you cant use is the metal shiels that you can mount if you wanna use the shield as battle robot in mini sumo competitions.
The part of the MEGA that makes it bigger on the opposite side of the USB plug extends the ZUMO on the front.
So pins 30-52 are easily reachable while the MEGA is mounted on the ZUMO shield, which makes it perfect for any prototyping.
In the meantime i added RC control, a wiper and sponge and use it for fun as RC bot, as i’am to consumed by other project at the moment. I will finish the project in one or the other way in the future.