.. _creating_svg_scenario: Creating an SVG Scenario ============================= Each Namo scenario is fully contained in a single SVG file. The Geometry File ----------------- Here are the contents of a minimal svg geometry file. All geometries in the world must be svg **path** elements and each must have an **id** attribute which is used by the **** to configure the geometry as an entity in the simulation. .. literalinclude:: ../../tests/scenarios/minimal_stilman_2005.svg :language: xml Here is the same file rendered as an image: .. image:: ../../tests/scenarios/minimal_stilman_2005.svg :width: 400 :alt: NAMO Simulator You can see the robot starting position in the top left. To the right of the robot is a movable box. The walls are in black. The robot goal pose is visible in the bottom right. We recommend using `Inkscape `_ to edit your svg geometry file. Units ----- It is essential that all units in your SVG geometry file be in CENTIMETERs. The reasons for this is because, Inkscape only supports centimeters and not meters. The NAMO planner will convert the units to meters during execution. The Namo Config --------------- The scenario file must contain a `` element that is a direct child of the root `` element. This object configures the simulator and agents and it the place where all agent behavioral parameters are set. The full specification for the `` is defined by the `NamoConfigModel` class which can be found in `namosim/data_models.py `_. Robots and Navigation Goals --------------------------- Each robot and goal listed in the `` must have a corresponding `` path element somewhere in the svg file. These elements provides the shape, position, and orientation of the robots and goals. .. code-block:: xml You can optionally add a `angle="90"` attribute to specify the orientation in degrees.