How to extend navground#
The designed way to extend navground is by adding new components, that is new Behaviors, Behavior Modulations, Kinematics, State Estimations, Tasks, and Scenarios. In fact, navground is designed to become a repository of navigation algorithms (behavior), providing all infrastructure needed to test and compare them.
In C++ and in Python, each type of component has an base class with methods that sub-classes must/can specialize. The sub-classes can then be integrated into navground by perfoming few steps described in How to integrate a C++ component and How to integrate a Python component, through which the component can be converted to/from YAML and can be used to perform experiments.
See also
Two additional ways to extend navground using the API (i.e., not exposed through YAML) are:
- How to record custom data in experiments
To record custom data that is not provided by default by experiments, for example to record the internal state of a custom behavior.
- Scenarios’ groups and initializers
Instead of defining a new scenario, you can add groups or initializers to an existing scenario, for example to position all agents in the scenario along a curve.