This PR introduces a Ticker component in mc_control and a built-in mc_rtc_ticker program that is built upon it.
The introduction of the Ticker class is aimed to simplify writing unit tests in and out of mc_rtc.
The ticker itself has the same functionalities as existing tickers (the one in ROS and the one in mc_rtc-magnum), i.e.:
step-by-step play
as-fast-as-possible mode
reset on demand
It is also capable of loading a log file and using this log to provide sensor inputs to the controller. Furthermore, GUI events are now recorded in the log and these events can also be replayed by the ticker. While in replay mode, every mc_rtc system runs as-if it was connected to a live system/simulation.
This feature is mainly targeted at three scenarios:
recording GUI inputs to replay in a CI environment
helping the development of observers
helping to resolve/diagnose controller failures due to solver failures
ToDo:
[x] Implement output replay
[x] Improve time synchronization
[x] Add progress-bar (read-only) for the logs
[x] Use the Ticker class in mc_rtc tests
[x] Allow to extract GUI events only from a full log
This PR introduces a
Ticker
component inmc_control
and a built-in mc_rtc_ticker program that is built upon it.The introduction of the
Ticker
class is aimed to simplify writing unit tests in and out of mc_rtc.The ticker itself has the same functionalities as existing tickers (the one in ROS and the one in mc_rtc-magnum), i.e.:
It is also capable of loading a log file and using this log to provide sensor inputs to the controller. Furthermore, GUI events are now recorded in the log and these events can also be replayed by the ticker. While in replay mode, every mc_rtc system runs as-if it was connected to a live system/simulation.
This feature is mainly targeted at three scenarios:
ToDo:
Ticker
class in mc_rtc tests