All notable changes to this project were documented in this file.
2.5.1 - 2024-08-09
- Spine: log when dictionary logger is full
- Archive the project
- Update development status to classifier to inactive
- Fix duplicate
data_
attribute in pi3hat actuation interface
2.5.0 - 2024-06-11
- Bullet utility function to compute the center of mass of a robot
- Bullet utility function to compute the total robot mass
- Bullet utility function to compute the world position of a robot link
- BulletInterface: Add extra action to apply external forces
- BulletInterface: Add floating-base orientation and position getters
- BulletInterface: Monitor IMU velocity
- BulletInterface: Report the base state that can be used for training RL agents.
- BulletInterface: Unit test for IMU monitoring
- Interface: Introduce
process_action
function for additional behaviors - docs: Start a dedicated page for observers
- Interface: Remove the redundant
data
argument to allcycle
functions
2.4.0 - 2024-05-27
- BulletInterface: Unit test for contact monitoring
- Python: Expose
SpineInterface
from top-level module - observers: History observer
- Update palimpsest to v2.1.0
- Spine: Cast
logger_.last_size()
explicitly touint32_t
(thanks to @ubgk)
2.3.0 - 2024-05-02
- Build test for the pi3hat interface
- BulletInterface: internal
get_link_index
memoization - BulletInterface: introduce "monitor" configuration dictionary
- BulletInterface: report contacts to bodies specified in configuration
- CICD: Add a workflow for the pi3hat build test
- Introduce
observe
method in actuation interfaces
- CICD: Rename bazel.yml to ci.yml for consistency with other repos
- Pi3HatInterface: make
get_angular_velocity
private - Pi3HatInterface: make
get_attitude
private - Pi3HatInterface: make
get_linear_acceleration
private - Pi3HatInterface: make
imu_data
private
- CICD: Clean up redundant Python build jobs
- SpineInterface: Remove leading slashes from shared memory object names
- Clean up unused
MockInterface::get_angular_velocity
- Clean up unused
MockInterface::get_attitude
- Clean up unused
MockInterface::get_linear_acceleration
- Remove
imu_data
getter from actuation interfaces - Remove
observe_imu
function from observations
2.2.2 - 2024-03-28
- BulletInterface: Set a default servo temperature of 20 °C
- BulletInterface: Set a default servo voltage of 18 V
2.2.1 - 2024-02-20
- BulletInterface: Add a switch the load the floor plane URDF.
- Unregister shared-memory management in Python spine interface
2.2.0 - 2024-02-09
- BulletInterface: Add a new parameter
env_urdf_paths
to allow environment URDFs.
- BulletInterface: Rename
urdf_path
torobot_urdf_path
. - CICD: Match Python versions with project description
- Move exceptions to a dedicated namespace
- Raise a
SpineError
when the spine does not reply in time - Replace posix-ipc by the shared-memory class from Python standard library
- Unregister shared-memory management in Python spine interface
- Bazel: dependencies based on
pip_parse
fromrules_python
- BulletInterface: Removed hardcoded ground plane URDF
2.1.0 - 2024-01-03
- Base class
VulpException
for all exceptions - Check that msgpack is not running the pure-Python implementation
- Optional performance check parameter in SpineInterface constructor
- Take feedforward torque commands into account in all actuation interfaces
2.0.0 - 2023-11-15
- BulletInterface: Model joint kinetic friction
- BulletInterface: Unit tests for joint torque computations
- Log configuration dictionary every time the spine is reset
- Breaking: Narrow down Bullet interface to a single control mode (torque)
- Breaking: Remove
pi32_config
as 64-bit is the new default
1.5.0 - 2023-10-16
- BulletInterface: Extend initial state to include the floating base velocity
- SpineInterface: Mention name of the spine we are waiting for at startup
- Breaking: Add "reset" sub-dictionary to Bullet interface config
- Action dictionaries read by the spine are now fully logged
- BulletInterface: Refactor internal reset functions
- Update mpacklog.cpp to v3.1.0
- Update palimpsest to v2.0.0
- Clear configuration dictionary when resetting the spine
1.4.0 - 2023-08-22
- SpineInterface:
retries
parameter to wait for the spine to start - observers: Keyboard source (thanks to @ubgk)
- Bazel: Compile coverage and test targets in debug by default
- Refactor project directories for simpler Bazel and PyPI distributions
1.3.0 - 2023-07-24
- Portable and SSH-compatible Keyboard source
- Support macOS operating systems (with help from @ubgk)
- Virtual destructor to the main
Interface
class
- Set default compilation mode to optimized rather than fast build
- Bazel: Only run lint tests when
--config lint
is provided
1.2.1 - 2023-07-07
- Improve test coverage
- Bullet interface now reports the IMU orientation in the proper ARS frame
1.2.0 - 2023-06-06
- Bullet: Floor parameter
- Bullet: Gravity parameter
- Bullet: Initial orientation parameter
- Optional constructor parameter to require the joystick to be present
- Unit tests for the internal agent interface
- Avoid the
posix_ipc.O_RDWR
flag in the Python spine interface - Remove
mypy_integration
- Update mpacklog to v2.1.0
- Find
clang-format
path on macOS (thanks to @ubgk) - Only apply the
-lrt
linker flag on Linux - Shared-memory file permissions
1.1.1 - 2023-03-13
- Remove setuptools from Python dependencies
1.1.0 - 2023-03-06
- CPU temperature observer: disabled state
- Distribute a PyPI package
- Spine state machine documentation
- Unit tests for
ObserverError
- Unit tests for
Source
- Bazel: Update PyPI dependencies to a requirements lock
- CI: Merge into a single workflow with multiple jobs
- CPU temperature observer: Read from custom file
- Moved Python
serialize
function to utils - Moved logging to mpacklog.cpp
- Removed unused
//models
- Switch from aiorate to loop-rate-limiters
- Update mpacklog dependency
- Bazel: Clean up unused models and redundant targets
- Bullet interface test
- Clean up empty observation and observers directories
- Fix calls to mpacklog logger functions
1.0.0 - 2022-06-10
First release of the project.