- Switch to openrobots2-idl
- Reset imu values to NaN in case of timeout, to clean log files
- Measure effective sensor rate and refuse to servo() if below 80% of the desired rate. Also log the measured rate in the log file
- Don't scale input twice during startup ramp
- Actually send only non-NaN rotors velocities (saves bandwidth)
- Improve motor startup, by resending startup message in case it was lost
- Print unknown flight controller messages on stderr.
- Log brushless controller clock rate in the log file
- Log IMU timestamp in the log file
- Use aio(7) for logging and drop log entries when io requests are too slow.
- Fix initial scaling ramp when the input port is not updated during 2 periods or more.
- Wait until all motors have cleared their emergency flag before starting (that would otherwise prevent proper start after a failure to start).
- Fix a logic bug in the startup monitoring, which could cause an infinite wait.
- Document some services, in particular calibrate_imu() and set_zero().
- Raise an error in set_velocity() only if a motor in in emergency (#99)
- Use ASYNC_LOW_LATENCY ioctl on the tty when available, and check that the ftdi latency is actually 1ms.
- Use openrobots-idl-1.4, drop now superfluous "rotors" port (merged into rotor_measurement port) (#110).
- Add a set_throttle() service, setting an open-loop PWM (#111).
- Allow a direct connection to a single brushless controller (with mkbl software).
- Allow opening ttys by passing their usb serial id.
- Replace NaN with zeroes in set_velocity() and set_throttle(), to avoid spinning at excessive velocity in case of a bug (#102).
- Add a notch filter removing most of the propellers mechanical vibrations. Parameters can be tuned via a set/get interface.
- Process only one message at a time on the tty channel. This provides a better scheduling on a loaded machine.
- Allow individual motor start and stop. mikrokopter::disable function may now be called while motors are spinning. This will stop the designated motor id.
- Initialize the disabled flag of motor data during startup
- Make the stop() service an activity, and let it wait until motors are stopped
- Fix the velocity set when stopping the servo activity
- Add an acceleration ramp when starting the servo activity
- Log the commanded and measured propeller velocities in the log file
- Implement more precise timestamping of data (motor data, imu) from flight controller.
- Implement full IMU calibration (requires a minimum of 10 different static poses).
- Add a logging request.
- Let the start() service detect if some motors are failing to start.
- Add a 'set_wrench' service, allowing to set a desired wrench once (useful only if called periodically).
- Fixed minor issues
Also available in: Atom