navground_core#
This package contains the core implementation of the navigation playground.
Dependencies#
Eigen3 >= 3.3 for linear algebra
yaml-cpp for reading and writing YAML snippets
arparse for CLI
Libraries#
navground_core#
A C++ library with navigation algorithms, controllers, and kinematics, see the API reference.
To use the library in a C++ CMake project:
add the dependency in
CMakeLists.txt
find_package(navground_core REQUIRED) # if using ament # ament_target_dependencies((<MYTARGET> navground_core) # else target_link_libraries(<MYTARGET> PRIVATE navground_core::navground_core)
include the appropriate headers in your code
#include "navground/core/behavior.h"
Executables#
info#
Lists registered components (behaviors, kinematics, and behavior modulations) implemented in C++.
usage: info [-h] [--no-plugins] [--build] [--properties] [--description] [--behaviors [BEHAVIORS]] [--kinematics [KINEMATICS]]
[--modulations [MODULATIONS]]
Named Arguments#
- --no-plugins
Do not load plugins
- --build
Include build infos
- --properties
Include properties
- --description
Include property descriptions
- --behaviors
selects behaviors
- --kinematics
selects kinematics
- --modulations
selects modulations
Example#
$ info --properties
Installed components
====================
Behaviors
---------
CppPolicy
flat: false (bool)
include_angular_speed: false (bool)
include_target_direction: false (bool)
include_target_distance: false (bool)
include_target_speed: false (bool)
include_velocity: false (bool)
max_acceleration: 10 (float)
max_angular_acceleration: 0 (float)
policy_path: (str)
shared: false (bool)
use_acceleration_action: false (bool)
Dummy
environment: (str)
HL
aperture: 3.14159 (float)
...
echo#
Load and then print a YAML representation of an object (behavior, kinematic, or behavior modulation).
usage: echo [-h] [--no-plugins] [--chdir] kind YAML
Positional Arguments#
- kind
The kind of object to load: behavior, modulation, kinematics
- YAML
YAML string, or path to a YAML file, describing an experiment
Named Arguments#
- --no-plugins
Do not load plugins
- --chdir
Whether to change working directory to the directory containing the file. Useful when the config contains relative paths.
Example#
$ echo kinematics "{type: 2WDiff}"
type: 2WDiff
max_backward_speed: 0
max_forward_speed: .inf
wheel_axis: 1
max_speed: .inf
max_angular_speed: .inf
schema#
Print JSON-Schema of YAML-convertible navground core classes.
usage: schema [-h] [--no-plugins] [--register] [--type TYPE] [{behavior,behavior_modulation,core,kinematics}]
Positional Arguments#
- kind
Possible choices: behavior, behavior_modulation, core, kinematics
The target type of the scheme
Named Arguments#
- --no-plugins
Do not load plugins
- --register
Whether to generate the register schema instead of the base class schema
- --type
If provided, generates the schema for the sub-class registered under this name
Example#
$ schema core
$id: http://navground/core
$schema: https://json-schema.org/draft/2020-12/schema
$defs:
vector2:
type: array
items:
type: number
minItems: 2
maxItems: 2
$id: http://navground/vector2
$schema: https://json-schema.org/draft/2020-12/schema
line_segment:
type: array
items:
$ref: vector2
minItems: 2
maxItems: 2
$id: http://navground/line_segment
$schema: https://json-schema.org/draft/2020-12/schema
disc:
...
plugins#
Load and list plugins.
usage: plugins [-h] [--dependencies]
Named Arguments#
- --dependencies
Display dependencies of C++ plugins
Example#
$ plugins
navground_examples
------------------
Behaviors: Idle [C++]