Mobile Robot Control 2023 Wall-E: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
No edit summary
No edit summary
Line 77: Line 77:


==Function description==
==Function description==
In this paragraph every function is discussed. The input and output
In this paragraph every function is discussed. The input and output data and the way this data is processed are the main aims of this paragraph.
 
 
User input
 
Inputs: User defined sequence of numbers inputted through terminal
 
Outputs: Array with table numbers in correct order
 
This is a simple function that requests the sequence of table numbers as a user input. It then converts these numbers into an array where every index of the array is a table number.
 
 
Coordinator
 
Inputs: Array with table numbers, Signal that the robot has arrived at the table
 
Outputs: Table number, Stop signal
 
The coordinator keeps track of the table number that the robot has as goal. Once the robot arrives at this table, the coordinator sets the next table in the queue as the new goal. Once all tables have been visited, it stops the robot.
 
 
Localization
 
Inputs: Laser data, odometer data, map data
 
Outputs: xy position of robot, rotation of robot
 
This function is the heart of the system. It takes the laser, odometer and map data and combines them to determine the position of the robot with regards to the map. It uses the ParticleFilter as designed in the exercises to achieve this goal.
 
 
Global Path planning
 
Inputs: Node locations, Current position of the robot, Goal table number
 
Outputs: Sequence of nodes for Path
 
The global path planning function makes use the A* algorithm as defined in the exercises. It looks at the current position of the robot and calculates a path through predefined nodes. It sends the sequence of nodes that the robot needs to follow to arrive at the goal.
 
 
Follow path
 
Inputs: Location of the robot, Sequence of nodes for Path.
 
Outputs: control commands for robot
 
When the sequence of nodes is defined, this function makes sure the robot moves from node to node until it reaches its goal. It uses either the open spaces or artificial vector field approach for this.
 
 
Obstacle detected
 
Inputs: laser data
 
Outputs: control commands for robot
 
When an object is in the path of the robot, it needs to be avoided. This function will take care of that. It overrules the path following function.
 
 
Signal arrival
 
Inputs: location of the robot, location of the table
 
Outputs: Sound message, signal to coordinator to set next table as goal.
 
This function looks if the robot has arrived at the table by calculation the distance between the robot and the table. Once this value is under a certain threshold, a sound message is sent to the robot and the coordinator is informed that the robot has reached the table.
 
 
 
<br />

Revision as of 13:35, 11 June 2023

Group members:

Caption
Name student ID
Lars Blommers 1455893
Joris Bongers 1446193
Erick Hoogstrate 1455176
Noortje Hagelaars 1367846
Merlijn van Duijn 1323385
Sjoerd van der Velden 1375229

Task description

Task descriptions
Name Tasks week 8 Tasks week 9
Lars Blommers 1. Localisation (particle filter)
Joris Bongers 1. Navigation (combining global

and local navigation)

Erick Hoogstrate 1. Localisation (particle filter)
Noortje Hagelaars 1. Adjust state and data diagram

after feedback from tutors

2. Navigation (A* algorithm)

Merlijn van Duijn 1. Navigation (A* algorithm)
Sjoerd van der Velden 1. Adjust state and data diagram

after feedback from tutors

2. Navigation (combining global

and local navigation)

Design presentation


State flow diagram


Data flow diagram

Function description

In this paragraph every function is discussed. The input and output data and the way this data is processed are the main aims of this paragraph.


User input

Inputs: User defined sequence of numbers inputted through terminal

Outputs: Array with table numbers in correct order

This is a simple function that requests the sequence of table numbers as a user input. It then converts these numbers into an array where every index of the array is a table number.


Coordinator

Inputs: Array with table numbers, Signal that the robot has arrived at the table

Outputs: Table number, Stop signal

The coordinator keeps track of the table number that the robot has as goal. Once the robot arrives at this table, the coordinator sets the next table in the queue as the new goal. Once all tables have been visited, it stops the robot.


Localization

Inputs: Laser data, odometer data, map data

Outputs: xy position of robot, rotation of robot

This function is the heart of the system. It takes the laser, odometer and map data and combines them to determine the position of the robot with regards to the map. It uses the ParticleFilter as designed in the exercises to achieve this goal.


Global Path planning

Inputs: Node locations, Current position of the robot, Goal table number

Outputs: Sequence of nodes for Path

The global path planning function makes use the A* algorithm as defined in the exercises. It looks at the current position of the robot and calculates a path through predefined nodes. It sends the sequence of nodes that the robot needs to follow to arrive at the goal.


Follow path

Inputs: Location of the robot, Sequence of nodes for Path.

Outputs: control commands for robot

When the sequence of nodes is defined, this function makes sure the robot moves from node to node until it reaches its goal. It uses either the open spaces or artificial vector field approach for this.


Obstacle detected

Inputs: laser data

Outputs: control commands for robot

When an object is in the path of the robot, it needs to be avoided. This function will take care of that. It overrules the path following function.


Signal arrival

Inputs: location of the robot, location of the table

Outputs: Sound message, signal to coordinator to set next table as goal.

This function looks if the robot has arrived at the table by calculation the distance between the robot and the table. Once this value is under a certain threshold, a sound message is sent to the robot and the coordinator is informed that the robot has reached the table.