- Added several variants of the LinearInterpolator

- checking prerequisites when using an interpolator while accessing channel data
- added subscribeIntervalByElements to Authority for subscribing to channels with
  zero data loss using a ChannelRead instead of a ChannelReadInterval

- Using LinearInterpolator for calculating positions of Nodes in VisualizationBasic (2D, 3D)

- Fixed slightly wrong template method usage that was detected by stricter compiler.
- Now using LinearInterpolator for PointVectorVisualization

- Added RotateTask

- Warning: API change - OdometryCorrectionDifferentialDrive now takes Odometry2 as parameter instead of Pose2
- Fixed bug in OdometryCorrectionDifferentialDrive when driving backwards
- Modified RangescanVisualization for rendering cones with correct aperture

- added transformation parameter for OmniToPanorama.
  This allows to project on a vertical cylinder even if the camera is looking horizontally

- CANToolsView: Removed dependencies to SCITOS definitions
- Fixed missing initialization of member deviceName in CANOpenNodeInfo.

- Using LinearInterpolator for calculating positions of Nodes in OccupancyGridVisualization
- implemented calculation of distance offset from cone angle and aperture

- added code for creating markers in python
- fixed alignment issue when exposing Eigen classes to python

- fixed bug when publishing position estimate as transform (now using LinearInterpolator)

- DynamicRiskMapper: Using LinearInterpolator

- added method to save MCF

- Added new exception XRecoveryFailed
- RewindRecovery: Added tolerance for recording the pose history
- RewindRecovery: Abort and send XRecoveryFailed when chosen zero velocity for a certain duration.
- Added method to manually trigger recovery by setting the internal recovery task
- Added RotateObjective

- HeadG5: Using correct hw timestamp for publishing joint positions
- InterfaceHG3: Changed names from EBC to PowerSupply
- Adapted to changes in OdometryCorrectionDifferentialDrive
- MCU: using timestamps of CAN messages instead of HW-PC-synced ones for publishing odometry (requires firmware >= 1.8.13)
- Added robot specific parameters for odometry correction

- Added config for odometry correction and calibrate script

- added support for simulating Tory, WeRobots and X3
- added simulator module for G5 heads
- added support for simulating range finder reflectors
- added method to simulate reading reading 124kHz RFID tags (user tags).
- added variable 'localizationMap' to let the simulator localize on a different map than the given static map.
- no longer using motion model to add an error to the otherwise undisturbed odometry - use odometry correction instead.


Additional information