aseba-community / thymio-vpl2

Next generation VPL for Thymio using Qt Quick from Qt 5.x
GNU Lesser General Public License v3.0
2 stars 5 forks source link

Replace "advanced mode" by an "FSM mode" #51

Open stephanemagnenat opened 7 years ago

stephanemagnenat commented 7 years ago

Preliminary tests with users show that the current advanced mode prototype does not work, as it fail to impose a clear visual structure and make the notional machine apparent.

In the recent weeks, I have been talking with different people and iterated over a new design.

The result is to provide two editors:

  1. a reactive one corresponding to the current simple mode, with the extension to optionally allowing several events per pair, in case they all need to be true for the pair to be executed.
  2. an state machine one in which one can only write FSM with events-actions on transitions, exactly corresponding to the Mealy machine formalism.

In the state machine editor, for each state one could optionally import existing an program that shall be executed when this state is active.

stephanemagnenat commented 7 years ago

The FSM mode for a labyrinth navigation task with optional stop could look like that:

advanced-mode-rework-paper-prototype_labyrinth-singlethreaded-alt2 svg

PDF: advanced-mode-rework-paper-prototype_labyrinth-singlethreaded-alt2.pdf

While in this mockup the states are denoted by texts, in the spirit of VPL they should rather be by images. If a program is imported in a state, the corresponding image should be used by default, provided #62 is implemented.

stephanemagnenat commented 7 years ago

In addition to images documenting the states, it might be interesting for the VPL environment to automatically add a binary code to the state, than will be shown in the LED circle. Then would allow to keep the visibility of the current state on the robot. It would break recursive encapsulation of FSM programs as one state in another FSM programs, so it's a trade-off.

sprlye commented 7 years ago

For the sake of clarity for the children, maybe it would be worth describing the different states or modes with different colours that would also be displayed on the robot, for example using the LEDs on the bottom side. These colours could also be visible in the VPL.