Luc Steel’s mars explorer in webot
Table of Contents
This project implements Luc Steels’ Mars Explorer in webot
1. Subsumption architecture ATTACH
Subsumption architecture in LSMEW is implemented with Layer of control definition and trigger-action layer definition.
- Behaviour
- each behaviour corresponds to a layer in subsumption architecture defined with trigger-action layer definition
- single thread state machine
- LSMEW uses a single thread to embody each state, in which a sequence of trigger-states with descending priority(each trigger-state suppresses all states after it) is checked one by one on unsatisfaction, until a trigger-state delivers a message of truth(or triggered), when all following triggers would be supressed, and the linked action would be performed for one step.
- Graceful stop
- As each behaviour is totally seperated, and there’s no parallel processing, when 2 consecutive actions are from different behvaiours(2 different action state), an additional “graceful stop” method would be performed on the former, so as to keep internal representations of behaviours intact. This extension can also be implemented equivallently with a “stale check” state that reinitializes internal representation when finding internal representation stale in each action.
2. List of Behaviours
With decending priority:
- LSMEW: random movement
- LSMEW: return movement (with respect to gradient field)
- LSMEW: explore movement (with respect to gradient field)
- LSMEW: path-attraction
- LSMEW: sample handling
- LSMEW: obstacle avoidance
3. Movement Motor Interface
In principle each behaviour have their own motor and perception system, for example path-attraction behaviour have access to motor “CrumbHandler”, whereas random movement behaviour only have access to the wheel motors.
However each movement behaviour use the same set of motor actions, so they are kept together to improve code reuse, with a movement motor interface which includes the following methods:
- forward()
- move forward for one step time at a predefined constant speed (speed defined in interface, not behaviour)
- turn(deg)
- rotate in place
deg
degree, clockwise
4. gradient field
could be implemented with:
- a LSMEW: GradientFieldEnvironment class simulating gradient field
- a LSMEW: GradientSensor class simulating a sensor that detacts the gradient field
5. self-organisation with path-attraction
could be implemented with:
- a simulating the difussion of crumb signals
- a LSMEW: CrumbSensor class simulating a crumb sensor that points out the direction largest concentration of crumb signals
- a LSMEW: CrumbHandler class puttgni crumbs into CrumbEnvironment and taking them out.
6. Project reflection
6.1. Time management
- time management
- There’s some serious issue on time management: The bulk of development did not start until 2024-04-09, which I’d say probably would be the latest of all.
- (no term)
- reason 1 -
Backlinks
Luc Steel’s mars explorer in webot
(Subsumption architecture)
Subsumption architecture in LSMEW is implemented with Layer of control definition and trigger-action layer definition.
- Behaviour
- each behaviour corresponds to a layer in subsumption architecture defined with trigger-action layer definition
- single thread state machine
- LSMEW uses a single thread to embody each state, in which a sequence of trigger-states with descending priority(each trigger-state suppresses all states after it) is checked one by one on unsatisfaction, until a trigger-state delivers a message of truth(or triggered), when all following triggers would be supressed, and the linked action would be performed for one step.
- Graceful stop
- As each behaviour is totally seperated, and there’s no parallel processing, when 2 consecutive actions are from different behvaiours(2 different action state), an additional “graceful stop” method would be performed on the former, so as to keep internal representations of behaviours intact. This extension can also be implemented equivallently with a “stale check” state that reinitializes internal representation when finding internal representation stale in each action.
Backlinks
Luc Steel’s mars explorer in webot
(Subsumption architecture)
Subsumption architecture in LSMEW is implemented with Layer of control definition and trigger-action layer definition.
- Behaviour
- each behaviour corresponds to a layer in subsumption architecture defined with trigger-action layer definition
- single thread state machine
- LSMEW uses a single thread to embody each state, in which a sequence of trigger-states with descending priority(each trigger-state suppresses all states after it) is checked one by one on unsatisfaction, until a trigger-state delivers a message of truth(or triggered), when all following triggers would be supressed, and the linked action would be performed for one step.
- Graceful stop
- As each behaviour is totally seperated, and there’s no parallel processing, when 2 consecutive actions are from different behvaiours(2 different action state), an additional “graceful stop” method would be performed on the former, so as to keep internal representations of behaviours intact. This extension can also be implemented equivallently with a “stale check” state that reinitializes internal representation when finding internal representation stale in each action.