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
---------
Dummy
environment: (str)
HL
aperture: 3.14159 (float)
barrier_angle: 1.5708 (float)
epsilon: 0 (float)
eta: 0.5 (float)
resolution: 101 (int)
tau: 0.125 (float)
HRVO
max_neighbors: 1000 (int)
uncertainty_offset: 0 (int)
Idle
ignore_obstacles: false (bool)
Minimal
ORCA
...
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] [{kinematics,core,behavior,behavior_modulation}]
Positional Arguments#
- kind
Possible choices: kinematics, core, behavior, behavior_modulation
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++]