Embedded Motion Control 2017 Group 3
Group Members
1032791 | Ayisha wafa | ayisha.wafa@student.tue.nl |
0980790 | Aparnasri Sekar | a.sekar@student.tue.nl |
0976940 | Nick Peters | @student.tue.nl |
0976467 | Jelte Borsboom | @student.tue.nl |
Tutor | Wouter Kuijpers | w dot j dot p dot kuijpers at tue dot nl |
Documents
Here given is the initial design document namely, File:Emc-design-specification.pdf that points the approaches taken towards problem, algorithms used and system design for the robot to navigate through maze and find the exit autonomously.
The slides for the initial design presentation can be found here: File:Group3 2017 Initial design presentation.pdf
Overview
This article presents a summary of the software design to solve the following challenges with the Pico robot.
- Corridor competition: To follow a corridor and take the first exit.
- Maze competition: To solve and exit an unknown maze.
The project is divided in the following aspects:
- Requirements
- Specifications
- Functions
- Components
- Interfaces
Requirements
After brainstorming section, requirements are listed for our robot (PICO) to complete maze successfully and is as follows:
- PICO may not touch the walls or any other obstacle in the maze at any time
- PICO must operate fully autonomous (i.e. without input from the team)
- PICO may not be idle for more than 3 seconds from the start of program unless it has passed the exit
- PICO must be able to detect available space using the Laser Range Finder (LRF) and move to the detected space according to the motion planning algorithm
- PICO must be able to find the exit in finite time (≤ 7 sec for maze and ≤ 5 sec for corridor.)
- PICO must be able to detect the objects (dead ends) that have a high probability of being a door
- PICO must be able to open the door in the maze and pass through it
Functions
The functions are separate modules called supervisors where, the supervisor unknown of what is inside the other supervisor. This approach makes software architecture simpler, it is also easier to edit and error count will be less since no direct interaction of modules. Supervisors are listed below:
- Path-finding Supervisor
- Door Handling Supervisor
- Wall / Path Detection
- Motion Supervisor
- Actuator Supervisor
Path-finding Supervisor
1-Pledge Algorithm: Takes in the extracted wall information as input and sets a movement goal for the PICO and move towards it. This algorithm is useful when the robot is challenged to solve loop inside the maze. The algorithm functions as a continuous loop. (Maze challenge)
2- Cornering: Take the corner using the wall information as input. (Corridor challenge)
Door Supervisor
1-Ring Bell: Ring the bell if it detect the door possible deadends
2-Standstill: Wait for 5 sec to for the door openingsequence.
Wall / Path Detection
1-Read LRF data: Gets raw data from the LRF sensor
2-Filter LRF data: Reduces noise from raw LRF data and splits it into 3 directions (left, right and front).
3-Transform data: Calculate one distance approximation for the 3 directions.
4-Possiblity checker: Calculate for all directions if movement in that direction is possible, taking a ‘safe’ zone around PICO into account.
Motion Supervisor
1-Position stabilizing: Feedback loop that keep PICO approximately in the center of the corridor by implementing a feedback controller for the distance to the walls on the left and right of the robot.
2-Turn Corner: Make a 90 degree turn either on left or on right
Actuator Supervisor
1-Steady PICO: Keep the front of the PICO aligned to the direction of movement.
2-Omniwheels handeling: Set speed and angle of Omniwheels
Interfaces
The interfaces are defined as the movement/flow of data between the functions that are defined in above section. The different interfaces are described and the italic sentences are type of codes in implementation.
1- Sending information about current state, which is distance to walls at -90 degrees, 0 degrees and 90 degrees from the centerpoint and whether it has potential from moving forward and turning left or right. <Struct with float values and booleans>.
2- Forward information about potential movement.<Struct of Boolean>.
3- Forward information about wall distances.<Struct of floats>.
4- Turning command, which is either 1 (turning left) or 2(turning right). <integer>.
5- Send information about the possibility of a door.<Boolean>.
6- Confirmation that door handling is finished <Boolean>.
7- Setting the values for actuator.<Struct of floats>
Components
1- Sensors:Laser Range Finder (LRF), Odometry (Wheel Encoder).
2- Holonomic base (omni-wheels):Max. translational speed of 0.5 m/s , Max angular speed of 1.2 rad/s.
3- Embedded platformComputer with Ubuntu 14.04 on an intel i7 (other specifications are unknown)
4- Bell:device to produce sound from PICO as bell to open door.