Skip to content

Welcome & FAQs

James Douthwaite edited this page Oct 6, 2026 · 3 revisions

Welcome and FAQs

OpenMAS simulates multi-agent scenes in MATLAB. Agents are classes. A setup script places them, OMAS_initialise steps the scene, and the session folder holds trajectories, events, and figures.

If this page does not answer the question, the rest of the wiki is organised as: Getting Started, Codebase, Agent dictionary, Scenarios, Figures, Monte Carlo, and Studies.

Where are the papers?

How those experiments map onto the current function names is on Studies and use cases.

Which script should I run first?

examples/setup_example.m, with MATLAB's current folder set to the repository root. It builds two agent_example agents on a ring and writes events, plan, and gif. The desktop folder name in that script is OpenMAS_data. If you omit outputPath, output goes to <repository>/data.

Where did processTimeCycle and simulation_initialise go?

They were renamed. The time-step method is main. The entry point is OMAS_initialise. Global pose is GetGLOBAL / SetGLOBAL, not a VIRTUAL struct. The creating agents page is the current contract.

The study script errors on getScenario_UKACC or agent_vectorSharing_interval.

Those names are from an earlier layout. The current scenario functions start with scenario_, and the interval agent is agent_IA or agent_2D_IA. The translation table is on Scenarios and the per-paper replacements are on Studies.

Which agent should I use?

Goal Class
Understand the interface agent_example
Planar reciprocal avoidance agent_2D_RVO or agent_2D_ORCA
3D velocity obstacles agent_VO, agent_RVO, agent_HRVO
Interval bounds on the conflict agent_IA (needs INTLAB)
A quadrotor quadcopter or ARdrone_LQR
Flocking agent_formation_boids

The full list with file paths is the agent dictionary.

Why is there no motion even though localState changed?

The integrator reads GLOBAL.velocity. main has to call a GlobalUpdate* method (or SetGLOBAL('velocity', ...) together with a quaternion) before it returns. The velocity published on this step is applied at the start of the next step.

Why did my figure request do nothing?

Labels are matched in OMAS_figureGenerator. 'fig' is not one of them. Use plan, isometric, events, gif, and the other names on the Figures page. 'none' is intentional suppression. inputs and times stay empty unless the agent wrote agent.DATA.

Where do Monte Carlo files go?

Pass directory, not outputPath. The default directory is a US18_data folder on the desktop. Inside it you get a timestamped monte_carlo_data folder, one session folder per row of the object matrix, and a summaryData.csv per session. Parallel cycles are isParallel, not threadPool. Details are on Monte Carlo.

Does interval avoidance need extra software?

Yes. agent_interval calls IntLab() in its constructor. Add the bundled toolbox with addpath(genpath('toolboxes')) before constructing agent_IA or agent_2D_IA.

Who do I contact?

James A. Douthwaite, douthwaiteja@gmail.com. Further notes are on jamesdouthwaite.co.uk. Please cite the figshare record if you use the simulator in your own work. The citation is on the home page.