Embedded Motion Control 2019 Group 9: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
Line 30: Line 30:
The world model contains all information about the world. It stores all useful variables.
The world model contains all information about the world. It stores all useful variables.
All functions for updating a variable or obtaining a variable value are coded in this part.
All functions for updating a variable or obtaining a variable value are coded in this part.
''Pseudocode:''
''Pseudocode:''


'''void getDistance():
'''void getDistance():'''
return DISTANCE_VALUE
'''return DISTANCE_VALUE'''


double updateDistance( newvalue ):
'''double updateDistance( newvalue ):'''
DISTANCE_VALUE = newvalue'''
'''DISTANCE_VALUE = newvalue'''


= Initial Finite State Machine model =
= Initial Finite State Machine model =

Revision as of 20:26, 9 May 2019

Group members

Merijn Floren | 0950600
Nicole Huizing | 0859610
Janick Janssen | 0756364
George Maleas | 1301527
Merijn Veerbeek | 0865670

Design Document

The Initial Design document can be found here: File:Initial Design Group9.pdf

The powerpoint presentation about the design is in this file: File:Presentation initial design.pdf

Meetings

On 1 May the first meeting of the team took place. Our tutor Marzieh also attended. The purpose of the meeting was to discuss the content of the design document and to derive a first strategy about the motion of PICO. After some brainstorming and discussion, tasks were assigned to each team member. Specifically:

  • Nicole and George will focus on writing the design document
  • Merijn F., Merijn V. and Janick will focus on writing some pieces of code to test next week on the first test with PICO.

On the 8th of May, the second meeting took place. The meeting was devided into two parts: at first, the powerpoint presentation was reviewed. The tutor had some suggestions we could change. Secondly, different strategies for finding the exit were discussed. The two options are: 1) following the walls and 2) rotate 360 degrees, look for exit and walk straight to exit. After the meeting, the first test session took place. Because of issues with Gitlab, we could not obtain useful data from this test session.

On the 9th of May, the second test session was held. The code of Merijn F was succesfully tested on the robot. The robot walks towards a wall, turns 90 degrees and walks toward the next wall. However, after reaching this wall, it keeps rotating. Data is stored to review later. The code of Merijn V could unfortunately not be tested on the robot within the available time. After the test session, an additional meeting without tutor took place. We devided the interfaces among us. Every task should be finished before Monday so that on monday, bugs can be fixed. The division is as follows.

  • Perception & Monitoring: George
  • World model & responsible for code structure: Merijn V
  • Control & drawing rooms: Nicole
  • Planning wall-following-strategy: Merijn F
  • Planning finding-exit-strategy: Janick

Code architecture

The code architecture can be visualized as in the following picture:

Code architecture.jpeg

And the pseudocode is structured as follows:

  1. World model (Merijn V)

The world model contains all information about the world. It stores all useful variables. All functions for updating a variable or obtaining a variable value are coded in this part.

Pseudocode:

void getDistance(): return DISTANCE_VALUE

double updateDistance( newvalue ): DISTANCE_VALUE = newvalue

Initial Finite State Machine model

The system will make use of a Finite State Machine model. The will take up the task of the executing the plan of the robot and determines the high-level control.

Link to Wikipedia:Finite-state machine.

An image will be added when image is ready.