How to extend navground

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.