Embedded Motion Control 2015 Group 10
|Sudarsan Kumar Venkatesan
|Manoj Kannan Soundarapandian
|Avinash Visagan Varadarajan
Design and implement a robotic software system for the robots Pico/Taco, such that they are able to solve a maze in shortest time possible.
- The robot should exit the maze as quickly as possible.
- The robot should align itself along the path orientation.
- The robot should avoid collision with the walls.
- The robot should be able to detect and differentiate between doors and walls.
- The robot should be able to identify that it has reached the end the maze.
- The robot should move along its Y-axis.
- The robot should stop before taking a turn.
- The robot should rotate 180o in case of a dead end.
- The robot should rotate 90o to its left or right when it encounters a corner.
- The robot should sense doors and walls.
- The robot should go through in case of door.
- The robot should sense the difference between a dead end, a corner with a right or left opening.
- The robot should stop once it exits the maze.
- Robot : A-MAZE-ING PICO
- Laser sensor
- Holonomic base (Omni - wheels)
- Running Ubuntu 12.04
- ROS (Robot Operating) - RVIZ
Maze Solving Logic
The maze is considered as a map consisting of straight lanes,turns and in some cases loops. The robot should be able to navigate itself according to the scenario it is faced with. Mostly, the basic movements of the robot that need to be controlled are that of straight line motion and rotation during turns / dead-ends. They are described briefly in the following sub-sections:
Straight line motion
The robot should be able to navigate itself through a straight lane without touching / colliding with the walls. To satisfy this condition for all track-widths, the robot should be positioned equidistantly with respect to the walls. Initially, the robot orients its' axis parallel to the walls upon sensing them. As the robot starts to move in the lane, the LASER sensor data is used to identify the distance with walls in either direction (left/right). The distance identified on either sides is used to obtain an equidistant line, which the robot will trace throughout its'motion.
Negotiating turns / dead-ends
When the robot encounters a turn, it senses the direction of the turn (left/right) using the LASER range data. In the event of a turn, the LASER range increases in that particular direction. This range increase helps the robot to identify a turn and stop as it reaches the turn. The robot should position itself centrally with respect to the edges of the turn, in order to enter the turn without touching the edges. In order to ensure this, the robot senses the edges and maintains its'axis at 45 degrees with respect to the edge. Once the robot has positioned itself centrally at the mouth of a turn, it rotates 90 degrees towards the turn opening and proceeds straight ahead. In case of a wall obstruction, the robot turns back and returns to its'initial position at the mouth of the turn.