
Welcome to my arduino project Site.
I've built an autonomous pololu walker that solves the maze problem using range sensors.
This project was made in the framework of the "Arduino Project" course in the Computer Science faculty at the Technion.



Methodology
Materials
-
Arduino Nano
-
3 MG995 Tower pro engines – each controlling 1 pair of legs
-
3 HC-SR04 supersonic range finder - able to detect range from 4-400cm
-
Metal angles for all 6 legs
-
4 AA batteries
The Building Proccess

-
Attachment of the outer servos to 2 pair of identical large legs. These can rotate horizontally 0-180 deg
-
Addition of a range finder On the front and either sides
-
Addition of a smaller front leg to the middle servo used for forward motion of the pololu walker.

Forward Motion
​
there is only one possible forward gait called "the tripod gait"
-
The angle of the middle servo determines which side is up and which side is down (opposites)
-
The side that is up moves forwards in the air with no friction
-
The side that is down pushes backwards on the ground allowing the walker to move forwards
-
Then the hexapod shifts its weight to the other side continuing in the same way
Move_straight();
​
-
tilt_left();
-
move_right_forwards_left_backwards();
-
tilt right();
-
move_left_forwards_right_backwards();

straight with short legs

straight with long legs

straight - below view
Left Turn
-
This time the walker moves both legs move in the same direction:
-
the walker shifts its weight to the right.
-
both legs move backwards together allowing the right leg to push backwards on the ground and left leg to move backwards with no friction.
-
then the walker shifts it weight to the left.
-
both legs move forwards together allowing the left leg to push backwards on the ground and right leg to move backwards with no friction.
Turn_left();
​
-
tilt_right();
-
move_left_and_right_backwards();
-
tilt_left();
-
move_left_and_right_forwards();

turn left
right turn is achieved in the same way by changing the order of the tilts

maze short
Technology
Module

Activate sensors in delay time
In order to simultaneously move forwards and activate the sensors without delay I kept a schedule using millies() that returns the current time and had the sensors activated at a fixed interval rate.
Pros & Cons
Pros: Allows us to simultaneously activate servos and engines.
Cons: This idea is good but as the sensors are located on the walker legs at different times we get different positions which do not reflect the real measures.
Therefore I preferred activating the sensors after each leg movement.
Sensor Monitoring
• sensor monitoring during execution showing:
left sensor, front sensor, right sensor
• Reducing range of motion of outer legs for front sensor free.
• Using multipe sensor samples for accuracy.
Algorithm

Improvements
Extending the idea to find an exit inside a room By Mapping the room:
​
•Adding a 128kb SD card that stores places using the time travelled in each direction.
​
•Using a Kinect 3D mapping of the room
​
•Optimization of turning angles to any degree so that the robot can solve mazes that are not squared shaped.
​