Open LouKordos opened 3 years ago
Test suite should include tests for each module, making sure they return the correct data (i.e. MPC, Leg Model formulas).
Also check RMS error of simulated environment, energy used to stabilize the system and compare to baseline, more to come.
Do the testing in two stages, once simulate with the pure state space model, once with gzserver. For the mathematical model, create separate binary that communicates with the controller the same way gazebo does, so that only small changes are necessary.
Since the Github actions hardware is not powerful enough for realtime, implement realtime factor parameter in the controller and run gzserver with lower real time factor as well when Github Actions env is detected or specified by Docker environment flag. This way, mathematical model and physics based sim, albeit slower than realtime, can be tested on every commit. Then, a policy should be introduced that forces the changes to be run on a powerful desktop on before every PR merge to make sure changes still work.
For adjusting RTF, try multiplying the current_time - start_time
in the time thread by the RTF and multiply wait times in the control loops regulating the loop frequency by 1/RTF
.
Edit: This is incorrect, the desired loop duration should be multiplied by 1/RTF
. This is implemented in 9202c5e1fd5193b70d828126a6dda402a8f0b758.
Create test suite to validate performance in a number of realistic scenarios using the gzserver docker container. Combine this with Autobuilds / Github Actions (?) to determine build status.