- Fix constant_velocity model sometimes producing a singular covariance matrix.
- Don't run the filter until a first measurement is present. This prevents form growing the uncertainty unnecessarily.
- Change the behaviour of set_position(): it now merely sets the current state, fixing a previous issue with orientation setttings. The drawback is that any new position or orientation measurements will overwrite this.
- Fix altimeter measurements not being reset after fusion.
- Drop measurements older than maximum history length, instead of just warning the user.
- Log prediction model, process noise and magnetic field settings in state log file.
- Log measurement name vs. id mapping in the measurements log file.
- Fix replaying of log files after slight format change in 3.4.
- Add set_ecutoff() service to configure minimum satellite elevation cutoff
- Set the ublox dynamic platform model to something more dynamic
- Add set_timestamp_mode() service to configure the timestamp of GPS solutions
- Add set_frame() to change the mapping from ENU to XYZ
- gcc-10 compatibility
- Add pconnect() service to connect to multiple hardware devices.
- Update the e_rate exception to report the name of the low-rate sensor.
- Fix set_zero* functions not resetting the gyroscope bias.
- Fix possible deadlock when stopping component while the connection is broken.
- Receive and log IMU temperature if present.
- Log battery level.
- Log raw IMU and magnetometer measurements in addition to filtered ones, so that the filtering performance can be assessed.
- Log IMU filter settings, IMU calibration and sensor rates at the beginning of the log file and as soon as they are updated, so that the log file analysis gives all the important configuration details.
- Log only new data samples and use '-' for unchanged data. Missing data (i.e. not updated since last log line) is replaced by '-' (ASCII 0x2d). This provides better feedback on the sample rates of the sensors and time of reception. This is compatible with "set datafile missing '-'" in gnuplot. An incompatible change is that column headers are in a different order than before. The column labels have been kept identical though, so log parsing scripts using the labels instead of the column number will continue to work as before.
- Collect temperature during calibration and record the average. The calibration has a new 'temperature' parameter. It is unused at the moment (so it can be set to anything when loading calibration data from older versions). It gives an indication at which temperature the calibration was done so that it can be redone if necessary.
- Use dpkg-architecture to retrieve the debian architecture name (fix aarch64 support).
- Sync with unconstified '_maximum' member in C bounded sequences (genom3-2.99.40).
- Better actionlib client initialization so that a request sent quickly after loading the client will not fail because of incomplete initialization.
- port->data() returns NULL if a previous port->read() had an error.
- port->read() errors are reported only once for consecutive errors (all errors are still reported in debug mode).
- Default control task stack size is 8MB.
- Require genom3-2.99.40 for unconstified _maximum member of bounded sequences
- Remove the 'const' qualifier from the C mapping of _maximum in bounded sequence
- Allow 'stack' property to be specified at component level (for all tasks)
- Fix possibly missing 'optional' keyword in generated type documentation
- Fix Jacobian of the "MRP to quaternion" function (#353).
- Fix computation of the orientation measurements delta and covariance
- Log variance of roll, pitch, yaw angles instead of those of the quaternion
- Log euler angles of measurement offset instead of quaternion
- Add an explicit emergency state in the permanent activity automata
- Add set_gtmrp_geom() helper for Generically Tilted Multi-Rotor Platform
- Don't fly until a robot geometry has been explicitly configured