Added
- Targets now have an optional path to follow to reach a pose or position. Behaviors support this path be defining a new virtual method `cmd_twist_along_path` whose default implementation is a form of carrot planner that uses two new parameters `path_tau` (over which time length to converge to the path), and `path_look_ahead` (how far ahead to look when following the path). The equivalent controller actions now have an additional parameter `along_path`.
- Added `PathTask` Python class to follow a path composed by a list of points.
- Behaviors can now overwrite a new virtual method `cmd_twist_towards_pose` to implement more specific control strategies to reach a pose. The default implementation moves straight to the pose and then rotates in place.
- Added functions `to_{relative|absolute}_point` to `core/common.h` to convert the frame of reference of points (not just vectors).
- Exposed additional `core/common.h` functions to Python
- `Buffer` exposes the stride of their multi-dimensional arrays.
- Added `name` to prefix all fields of the data updated by a `Sensor`
- Added wheels for Python 3.13
- Added `no-plugins` option to the CLI commands to disable loading plugins.
- Added `echo` command to load from YAML and then print the YAML representation of an object.
- Added `plugins` command to list loaded plugins.
- Added `OdometryStateEstimation` sensor.
- Added simple `LimitTwistModulation` modulation to clip the twist command.
- Added manual control mode using `follow_manual_command`: the controller will ignore the actual behavior and return the manual command.
Fixed
- Resetting a sampler with `once=true` now correctly sets its index to 0.
- Recording keys associated to agents (for tasks and sensing) do now correctly make use of the config `use_agent_uid_as_key`.
Changed
- Renamed `normalize` to `normalize_angle`
- All kinematics now have default values in their constructors and uses infinite to represent unconstrained values, like, e.g., maximal angular speed. Negative values are also interpreted as unconstrained.
- `TwoWheelsDifferentialDriveKinematics` now supports additional (control) limitation in angular, forward and backward speed. It also supports moving backwards, although it is disabled by default for back compatibility.
- Removed const-ness from `Task::prepare`
- Removed const-ness from `StateEstimation::prepare` and `StateEstimation::update`.
- `LidarStateEstimation` is now more realistic, supporting offset positions and (normal) rangings errors.
Removed