Repository navigation
Version 1.1.0
Scenario Support
Version 1.1.0 introduces scenario support, allowing users to define, save and reproduce experimental configurations using JSON files.
Scenarios specify the initial conditions of a simulation, including the octopus's position, food objects, obstacles, individual arm targets and movement parameters.
Rather than prescribing a scripted sequence of movements, a scenario establishes an environment in which the existing distributed arm controllers operate independently.
This release also introduces a Behaviour Showcase scenario, demonstrating multiple control behaviours within a single simulation.
New Features
JSON-Based Scenarios
- Define simulation configurations using UTF-8 JSON files
- Specify the initial body position, food objects and circular obstacles
- Assign individual arm targets using coordinates or named food objects
- Configure shared arm parameters with optional per-arm overrides
- Support up to eight individually configured arms, with unassigned arms remaining idle
- Load scenarios directly from the command line
Scenario Playback and Reset
- Scenarios open paused, allowing their initial configuration to be inspected before execution
- Press Space to start or pause the simulation
- Press N to advance a single simulation step while paused
- Press D to restart the scenario from its original configuration, including arm poses, targets and environmental objects
- The scenario name is displayed in the application window title
- Existing interactive controls remain available
Scenario Validation
- Strict validation of JSON structure, field names, object references and parameter values
- Detection of duplicate keys, invalid arm assignments and unknown food references
- Clear error messages identifying invalid scenario configurations
- Validation takes place before the simulation window opens
Behaviour Showcase
This release includes scenarios/behaviour-showcase.json, a demonstration combining several existing controller capabilities in a single experimental environment.
The showcase illustrates:
- Multi-arm control: Four arms independently pursue different targets
- Local sensing: Contact with a food object produces sensory responses
- Obstacle avoidance: An arm negotiates an obstacle while reaching towards its target
- Grasping: Sustained contact initiates a grasping response, resulting in the capture and holding of a food object
The demonstration uses different arm movement parameters to make the individual behaviours easier to observe.
Because the scenario defines initial conditions rather than a timed sequence of commands, the demonstrated behaviours arise through the existing simulation controllers.
See the Behaviour Showcase Wiki page for instructions and a description of the demonstrated behaviours.
Why Scenario Support Matters
Scenario support makes it possible to reproduce experimental setups without manually configuring the simulation each time.
It also provides a foundation for systematic investigations, such as comparing arm configurations, testing obstacle arrangements and examining how movement parameters influence reaching and grasping.
Importantly, scenarios do not replace or bypass the existing movement, sensing, avoidance or grasping mechanisms. They provide a convenient way to configure the conditions under which those mechanisms operate.
Scope and Limitations
- Scenarios define initial conditions, not timed movement scripts or sequences of future commands
- Targets are resolved when the scenario loads and do not automatically track subsequently moved objects
- A valid scenario is not guaranteed to be physically achievable; unreachable targets and obstructed paths remain possible
- Scenario restart restores the original configuration held in memory. Changes made to the JSON file require the scenario to be reloaded
Summary
Octopus Controller v1.1.0 extends the simulation with a reusable scenario system, enabling configurable, repeatable experiments and demonstrations.