Skip to main content
Ctrl+K

navground 0.7.0.dev documentation

Contents:

  • Introduction
  • Installation
    • PyPi
    • Github release
    • Docker
    • Building from source
    • Step-by-step Instructions
    • Setup a development environment
    • Troubleshooting
  • First Steps
  • Command Line Interface
  • A tour of navground
  • Packages
    • navground_core
    • navground_core_py
    • navground_sim
    • navground_sim_py
    • navground_examples
    • navground_examples_py
    • navground_examples_yaml
    • navground_demos
    • navground_minimal_plugin_cpp
    • navground_minimal_plugin_py
  • Tutorials
    • Designing an experiment
    • Running and analysing experiments (in memory)
    • Running and analysing experiments (HFD5)
    • Visualize a simulation
    • Load and playing back recorded experiments
    • Deadlocks and Collisions
    • Behavior Modulations
    • Sensors
    • World attributes
    • Scenarios generate worlds
  • Guides
    • How to extend navground
      • How to integrate a C++ component
      • How to integrate a Python component
      • Behaviors
      • Behavior groups
      • Behavior modulations
      • Kinematics
      • State Estimations
      • Tasks
      • Scenarios
    • How to parallelize the execution of an experiment
    • How to record custom data in experiments
    • How to build without the ROS build tools
    • How to validate code
  • Components
    • Behaviors
      • Dummy
      • Optimal Reciprocal Collision Avoidance (ORCA)
      • Hybrid Velocity Obstacle (HRVO)
      • Human-like (HL)
      • Social Force
    • Behavior Modulations
      • Limiting the acceleration
      • Limiting the twist
      • Motorized Wheels PID
      • Relaxation
    • Kinematics
      • Omni-directional
      • Ahead
      • Two-wheeled differential drive
      • Two-wheeled differential drive with limited torque
      • Four-wheeled omnidirectional drive
      • Bicycle
    • State Estimations
      • Geometric with limited range
      • Discs
      • Odometry
      • Lidar
      • Boundary
      • Local GridMap
      • Marker
    • Tasks
      • Direction
      • Waypoints
      • GoToPose
      • Path
    • Scenarios
      • Antipodal
      • Corridor
      • Cross
      • Cross Torus
  • Background Information
    • Two-wheeled kinematics
    • Accessors
    • Attributes vs Properties
  • Reference
    • Core
      • C++ API
        • Types
        • Geometry
        • Auto registration
        • Attributes
        • YAML
        • Kinematics
        • Target
        • Behaviors
        • Environment State
        • Computing collisions
        • Social margin
        • Behavior Modulations
        • Controller
        • Helpers
        • Build info
      • Python API
        • Geometry
        • Auto registration
        • Attributes
        • YAML
        • Kinematics
        • Target
        • Behaviors
        • Environment State
        • Computing collisions
        • Social margin
        • Behavior Modulations
        • Controller
        • Build info
      • YAML Schemas
        • Geometry
        • Registered components
        • Attributes
        • Kinematics
        • Social margin
        • Behavior Modulation
        • Environment State
        • Behavior
    • Simulation
      • C++ API
        • World
        • Agent
        • State estimations
        • Tasks
        • Sampling
        • Scenarios
        • Experiments
        • YAML
      • Python API
        • World
        • Agent
        • State estimations
        • Tasks
        • Sampling
        • Scenarios
        • Experiments
        • YAML
        • Plugins
        • Helpers
        • Visualization
      • YAML Schemas
        • Agent
        • Task
        • State estimation
        • World
        • Sampling
        • Scenario
        • Experiment
  • .rst

navground_core

Contents

  • Dependencies
  • Libraries
    • navground_core
  • Executables
    • info
      • Named Arguments
      • Example
    • echo
      • Positional Arguments
      • Named Arguments
      • Example
    • schema
      • Positional Arguments
      • Named Arguments
      • Example
    • plugins
      • Named Arguments
      • Example

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:

  1. 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)
    
  2. 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] [-v] [--build] [--properties] [--description] [--behaviors [BEHAVIORS]] [--kinematics [KINEMATICS]]
            [--modulations [MODULATIONS]]

Named Arguments#

--no-plugins

Do not load plugins

-v, --version

show program’s version number and exit

--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] [-v] [--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

-v, --version

show program’s version number and exit

--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] [-v] [--register] [--type TYPE] [{kinematics,core,behavior_modulation,behavior}]

Positional Arguments#

kind

Possible choices: kinematics, core, behavior_modulation, behavior

The target type of the scheme

Named Arguments#

--no-plugins

Do not load plugins

-v, --version

show program’s version number and exit

--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] [-v] [--dependencies]

Named Arguments#

-v, --version

show program’s version number and exit

--dependencies

Display dependencies of C++ plugins

Example#

$ plugins

navground_examples
------------------
Behaviors: Idle [C++]

previous

Packages

next

navground_core_py

Contents
  • Dependencies
  • Libraries
    • navground_core
  • Executables
    • info
      • Named Arguments
      • Example
    • echo
      • Positional Arguments
      • Named Arguments
      • Example
    • schema
      • Positional Arguments
      • Named Arguments
      • Example
    • plugins
      • Named Arguments
      • Example

By Jérôme Guzzi, IDSIA

© Copyright 2023, Jérôme Guzzi, IDSIA.