Settings and Configuration
This page describes the configuration that the current public SMART repository actually generates and uses.
Configuration Files
SMART uses ARGoS XML configuration files. These are automatically generated by
run_sim.py, but can be customized for advanced usage.
Default Configuration
The generated configuration file contains:
<?xml version="1.0" ?>
<argos-configuration>
<framework>
<system threads="32" />
<experiment length="0" ticks_per_second="10" random_seed="124" />
</framework>
<controllers>
<footbot_diffusion_controller
id="fdc"
library="build/client/controllers/footbot_diffusion/libfootbot_diffusion">
<actuators>
<differential_steering implementation="default" />
</actuators>
<sensors>
<footbot_proximity implementation="default" show_rays="true" />
<positioning implementation="default" />
</sensors>
<params
alpha="7.5"
omega="1.57"
velocity="2.0"
acceleration="0.5"
portNumber="8182"
outputDir="metaData8182/" />
</footbot_diffusion_controller>
</controllers>
<arena size="32,32,1" center="-15.5,-15.5,0">
<!-- Boxes and robots generated from the map and scenario -->
</arena>
<physics_engines>
<dynamics2d id="dyn2d" />
</physics_engines>
<media />
<visualization>
<qt-opengl>
<camera>
<placements>
<placement
index="0"
position="-15.5,-15.5,32"
look_at="-15.5,-15.5,0"
up="1,0,0"
lens_focal_length="20" />
</placements>
</camera>
</qt-opengl>
</visualization>
</argos-configuration>
Key Settings
Experiment Parameters
<experiment length="0"
ticks_per_second="10"
random_seed="124" />
length- ARGoS experiment length; the generated config uses0ticks_per_second- update frequency (Hz)random_seed- seed embedded in the generated XML
Robot Parameters
The current generator writes controller parameters like:
<params
alpha="7.5"
omega="1.57"
velocity="2.0"
acceleration="0.5"
portNumber="8182"
outputDir="metaData8182/" />
alpha- controller angle range parameteromega- angular velocity parametervelocity- wheel velocity parameteracceleration- linear acceleration parameterportNumber- RPC port shared withADG_serveroutputDir- metadata directory used by the controller
Arena Settings
<arena size="32,32,1" center="-15.5,-15.5,0">
<box id="box_10_0" size="0.9,0.9,0.1" movable="false">
<body position="0,-10,0" orientation="0,0,0" />
</box>
<foot-bot id="fb_5_16">
<body position="-16,-5,0" orientation="0,0,0" />
<controller config="fdc" />
</foot-bot>
</arena>
size- arena dimensions (x, y, z) in meterscenter- arena center pointobstacle boxes are generated from obstacle cells in the .map
robot start poses are generated from the .scen
Physics Engine
<physics_engines>
<dynamics2d id="dyn2d" />
</physics_engines>
The public generator creates a single dynamics2d engine. This page
intentionally stays close to the XML that the repo actually writes.
Command Line Configuration
The current public run_sim.py exposes these configuration-related arguments:
python run_sim.py \
--map_name=map.map \
--scen_name=scenario.scen \
--num_agents=50 \
--headless=True \
--argos_config_name=custom.argos \
--stats_name=custom_stats.csv \
--port_num=8182
If you rerun SMART with the same --argos_config_name, the helper script will
overwrite that XML file.
Editing the Generated XML
If you need a different seed, camera placement, or controller parameter, the current public workflow is:
run
run_sim.pyonce to generate the.argosfile,edit that XML file directly,
launch ARGoS yourself with
argos3 -c your_config.argos.
Keep these values aligned if you edit the file manually:
the controller library path
the
portNumberparameterwhether visualization is enabled or set to
none
What Is Not Exposed as a Public Setting
The current public repo does not expose documented command-line or Python-level settings for:
robot_radiusphysics_accuracycollision_thresholdJSON config profiles
a public
set_config()style API
Next Steps
Usage Guide - Using SMART
Architecture - System architecture
Interfaces and Outputs - public interfaces and outputs