LouKordos / walking_controller

The main walking controller code for the Bipedal Robot.
14 stars 3 forks source link

Test suite with gzserver docker container to validate a build #43

Open LouKordos opened 3 years ago

LouKordos commented 3 years ago

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.

LouKordos commented 3 years ago

Test suite should include tests for each module, making sure they return the correct data (i.e. MPC, Leg Model formulas).

LouKordos commented 3 years ago

Also check RMS error of simulated environment, energy used to stabilize the system and compare to baseline, more to come.

LouKordos commented 3 years ago

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.

LouKordos commented 3 years ago

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.

LouKordos commented 3 years ago

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.