Repository navigation
Welcome & 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.
- SDF 2017 — interval collision avoidance
- UKACC 2018 — comparison of velocity-obstacle methods
- US 2019 — velocity obstacle approaches for multi-agent collision avoidance
How those experiments map onto the current function names is on Studies and use cases.
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.
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.
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.
| 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.
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.
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.
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.
Yes. agent_interval calls IntLab() in its constructor. Add the bundled toolbox with addpath(genpath('toolboxes')) before constructing agent_IA or agent_2D_IA.
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.