Skip to content

v2.0.0

Compare
Choose a tag to compare
@stephane-caron stephane-caron released this 26 Oct 17:21
· 603 commits to main since this release

This major release makes all Python code synchronous (asynchronous code was mainly for logging, now handled by C++ spines). It also ships binary releases of the pi3hat spine that can be directly used on the robots, improves the MPC and PPO agents, and cleans up legacy dependencies.

Thanks to @boragokbakan and @pgraverdy for contributing to this release 👍

Added

  • PPO balancer: Allow custom training path
  • PPO balancer: Allow re-training with the same policy name
  • PPO balancer: Low-pass filter action before acceleration clamping
  • PPO balancer: Update reward to penalize commanded accelerations
  • UpkieGroundVelocity: Augment observation with previous command
  • agents: Closed-loop model predictive control
  • envs: Allow custom initial base velocity in Bullet config
  • examples: Closed-loop model predictive control
  • spines: Build and export the pi3hat spine binary in continuous integration, by @pgraverdy
  • spines: --version flag for all spine binaries

Changed

  • MPC balancer: Remove asyncio logic
  • PPO balancer: Remove asyncio logic
  • Pink balancer: Remove asyncio logic
  • Wheel balancer: Remove asyncio logic
  • envs: Move reset state sampling to InitRandomization class
  • spines: Add _spine suffix to binary names, e.g. pi3hat_spine
  • spines: Allow pi3hat spine to run without joystick if user validates

Fixed

  • Make Makefile date command more portable, by @boragokbakan
  • PPO balancer: Correct save frequency during training
  • PPO balancer: Run policy deterministically after training
  • envs: Merge default and runtime configuration dictionaries

Removed

  • Breaking: async_step function and asyncio logic
  • Breaking: pi32_config as 64-bit is the new default
  • Breaking: upkie.utils.log_path submodule and its utility function
  • Dependency on mpacklog.cpp (already in Vulp)
  • Dependency on mpacklog.py