Ardumower software design: Unterschied zwischen den Versionen

Aus www.wiki.ardumower.de
Wechseln zu: Navigation, Suche
(C++ classes/interfaces)
K (Änderungen von Pierlau38 (Diskussion) wurden auf die letzte Version von Alexanderg zurückgesetzt)
Zeile 6: Zeile 6:
 
State diagram (Note: The drawing has been created using [https://drive.draw.io/?url=https%3A%2F%2Fraw.githubusercontent.com%2FArdumower%2Fardumower%2Fmaster%2Fswdesign%2FArdumower_Statemachine.xml draw.io])
 
State diagram (Note: The drawing has been created using [https://drive.draw.io/?url=https%3A%2F%2Fraw.githubusercontent.com%2FArdumower%2Fardumower%2Fmaster%2Fswdesign%2FArdumower_Statemachine.xml draw.io])
  
 
+
<gallery>
[[File: Ardumower_states.png|500px]]
+
File: Ardumower_states.png
 
+
</gallery>
  
 
Implemented updates:
 
Implemented updates:
Zeile 15: Zeile 15:
  
 
=C++ classes/interfaces=
 
=C++ classes/interfaces=
 
Revision : ardumower-1.0a4-Azurit
 
 
(Courtesy of Jacques found in the Forum)
 
 
[[File:  Soft map1.PNG]]
 
[[File:  Soft map2.PNG]]
 
[[File:  Soft map3.PNG]]
 
 
 
<gallery>
 
<gallery>
File: interfaces.png
+
  File: interfaces.png
 
</gallery>
 
</gallery>
 +
  
 
=Further links=
 
=Further links=

Version vom 19. März 2016, 15:18 Uhr

This page describes some internals of the Ardumower software architecture.

Finite state machine

Main component of the software is a so called 'finite state machine', that means there exists a set of states ("OFF", "FORWARD", "ROLL", etc.) that the robot can be in. Depending on events (sensor is triggering etc.), the robot will enter a new state.

State diagram (Note: The drawing has been created using draw.io)

Implemented updates:

  • If obstacle during reverse => roll
  • If obstacle during roll => forward

C++ classes/interfaces


Further links