-
Core:
- algebraic and geometric operators to Disc and Neighbor
- added custom YAML serialization/deserialization to registered subclasses (C++ and Python)
- behavior modulations
- acceleration limiting modulation
- motor PID modulation
- behavior tag manipulation from Python
- dynamic two-wheeled diff drive kinematics
-
Sim:
- Eigen tensor view of datasets
- jumping to time steps in recorded runs
- user customizable World termination criteria
World
bounds property- grid, agent following, rotation and trimming to visualization/videos
- support to make videos from simulated runs
- python (sub) modules for notebook and pyplot
- exposed random generator (seed) in Python
- sensor combination and boundary sensor
- recording sensor readings and neighbors
- experiment init callback
- method to extract collision "events"
-
Python:
- stubs for core and sim
- increased pickle support
- Corrected (registered) Python sub-classes pickling
- Lines were sometimes ignored by ORCA
- Replaced implicit zero eigen vectors with explicit `Vector2::Zero()`` calls
-
Core:
- improved ORCA: switched to most recent library version, new options, exposed ORCA lines, neighbor computation aligned to RVO2 implementation
- improved HRVO: new options and cleaned up
- improved SocialForce: exposed options
- it is now possible to instantiate "empty" behaviors from YAML
- refactored
Behavior::compute_cmd
into public not virtual class and protected virtual internal implementation
-
Sim:
- group number is now a random variable
- function to sample discs
- lattice implementation does not use ghosts anymore
- refactored World preparation and validity checks
- requires now
multiprocess
instead ofmultiprocessing
- added option to report nearest point instead of center and id to
DiscsStateEstimation
- wall/obstacle YAML include Line/disc as an child now
- corrected collision with walls
- scenario properties are now random variables too.
- experiments now stores Python probes
- samplers reset seed is now optional
-
All:
- support for Windows and MSVC
- simplified installation using VCS
- colcon deps and config files
- pickle serialization via YAML
-
Docs
- how to use probes
-
Sim:
- waypoints task now supports random order and dynamically changing waypoints
- discs state estimation now supports more parameters
- added an option to retrieve the runs when running a multi-process experiment and saving them to a single HFD5 file
- datasets
- methods to remove agents from a world
- function to open an HTML view
-
CoppeliaSim:
- properties accessors
- adding/removing agents
- YAML-CPP target
- CSS style so that real time HTML visualization works in all major browsers
- Snap twists to zero when dumping World to YAML, else the YAML may contain invalid numbers.
- Silenced moviepy
- Moved registration to compiled files to support MSVC which does not like complex inline initializations
-
All:
@registered_property
to@property + @register
- C++ plugins uses now the ament index and do not require setting env variables anymore.
-
Core:
- removed optionals from social margin API.
-
Sim:
- moved random generator to
World
. - separated data ("records") from data recorders ("probes")
- we now have three classes of probes:
Probe
,RecordProve
(1 dataset),GroupRecordProbe
(a map of datasets). They are defined by three callbacks to prepare, update, finalize an experimental run. - moved notebook view functions to separate module.
- moved random generator to
-
CoppeliaSim:
- now uses CoppeliaSim handles instead of navground UID as keys
- Sim:
- do not store anymore number and indices of agents in
ExperimentalRun
but compute them on the fly.
- do not store anymore number and indices of agents in
-
All:
- added cmake option and C macro
NAVGROUND_USES_DOUBLE
to use double instead of floats. It is disabled by default.
- added cmake option and C macro
-
Core:
- added
Buffer
andSensingState
to use homogeneous multi-dimensional array as environmental states. - added deprecated names to properties
- added deadlocked/stuck
- add efficacy
- added
-
Sim:
- added
Lidar
andDiscs
State estimations - added agent
color
- added property
update_static_obstacles
toBoundedStateEstimation
- added the possibility to record custom data during experiments
- added support to run experiment in parallel.
- added class to load recorded experiment.
- added capability to render worlds and record videos
- added
runs
andrun_index
params to therun[_py]
executables - added optional
tqdm
progress bar to simulations. - added displaying deadlocks, collisions, and custom decoration in UI
- added
-
CoppeliaSim:
- added support for CoppeliaSim 4.6
-
Examples:
- added examples for custom recordings
- added example for custom decoration
- Sim:
- competed
World::get_static_obstacles_in_region
- competed
-
Core:
- changed
Collisions
to usestd::valarray
and split angles/ranges
- changed
-
Sim:
- changed
range_of_view
torange
- moved to optional seed for
Scenario::init_world
- refactored
Trace
into 2 separate classes,ExperimentalRun
that holds the data, andProbe
that records data. Experiment
can now store multiple runs, not just the last.- Each world has now its own random generator
- changed
-
Sim:
run_until
and callbacks to World- Task logging
- replay
- added
once
parameter to sample only once per run
-
CoppeliaSim:
- support for CoppeliaSim 4.5
- recording experiments in CoppeliaSim
- support for externally controlled agents in CoppeliaSim
-
Docs:
- experiment tutorial
- scenarios' documentation
-
Support for clang15
- HL relaxation.
- HL behavior when overlapping safety margin
- Pass optional seed to
Scenario::init_world
- An additional
state
argument to the protected virtual interface ofStateEstimation::update
. - Various other changes to the internal interface.
- Initial release