All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- None.
- None.
- None.
- Simplified the process of adding new models with the introduction of robot configurations.
- Enabled the ability to override the robot in the environment.
- Added DemoPlayer entity containing shortcuts to replay and validate demonstrations.
- Adjusted stiffness of floating base positional actuators to reach target state with +-1mm precision.
- Added configurable floating base DOFs. By default, floating base has [X, Y, RZ] DOFs.
- Added new tasks.
- Added presets for environments.
- Different decimation for absolute and delta action modes.
- BiGym refactored to use Mojo.
- Added customizable
control_frequency
of theBiGymEnv
.
- Updated Demo Player.
- Environment reset behaviour should be implemented in
on_reset
now instead ofreset_model
. - Environment termination behaviour uses
_should_terminate
which should now be overridden in the task environment.
- Lightweight demos are automatically uploaded to Google Cloud Buckets when using
DemoStore.upload_demo
andDemoStore.upload_demos
. TooManyDemosRequestedError
is raised when requesting more demos than available in the bucket.DemoNotFoundError
is raised when requesting demos when none are available in the bucket.
- The observation vector of the
BiGymEnv
is now configured usingObservationConfig
andCameraConfig
instead of flags.
- Added
DemoStore
to upload and download demonstrations from Google Cloud Buckets. - Added
Lightweight
demo format to store only demo action, termination and truncation information.
- Implemented handling of
PhysicsError
resulting from an unstable state in the simulation. Instead of raising an error,UnstableSimulationWarning
is now raised. If multipleUnstableSimulationWarning
occur consecutively,UnstableSimulationError
is raised. Theis_healthy
property of theBiGymEnv
now indicates the current state of the simulation.
- Refactored utils file into separate modules.
- Fixed NumPy 1.25
DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated.
formove_plate_between_drainers.py
.
- Added demo replay utility: replay_demos.py.
- Wrist joints are now part of the arm instead of gripper.
- Order of arm joints and actuators is matching now.
- Removed EE pose action mode.
- Visual observations can now be collected simultaneously with rendering to the on-screen window.
- Fixed
block_until_reached
flag for absolute joint position control mode.
- Additional wrist DOF could be added to H1 model.
- Updated the control range of grippers to a discrete mode ranging from 0 to 1.
- Added EE pose action mode.
- Renamed and updated
put_plate_in_drainer
task tomove_plate_betweeen_drainers
. - Renamed and updated
swipe_table
task tostack_blocks
. - Gripper control space is now always in the 0-1 range.
- When floating mode is enabled redundant joints are removed completely to prevent instability.
- Removed unnecessary rotation offsets of props to simplify manipulation.
- Added functionality to run BiGym environments in VR using pyopenxr. See collect_demos.py.
BiGymEnv._add_dynamic_objects()
is now an abstract method and should not be called in child classes.
- Added functionality to control seed of the BiGym environments.
- Added demo collection/replaying functionality and examples.
- Added control of H1 via mediapipe body tracking.
- Added new
SwipeTable
task.
- Added the
discrete_gripper
flag to control grippers in binary open-closed mode instead of positional mode.
- Constructor now takes an
ActionMode
. Constructor argfloating
has been removed and rolled into newActionMode
workflow. - We now make use of
mjcf.physics
rather than directly usingmujoco.MjData
.
- Floating base is now controlled by positional actuators, and collisions are not ignored.
- Added new examples for tracking body with kinect to control H1.
- Fixed "floppy" legs when H1 is controlled in floating mode. Enabling the floating mode now "freezes" the legs of the H1; collisions are disabled, and the motion range is limited to a minimum.
- Added new "Put plate in drainer" task.
- Added
is_gripper_holding_object
toBiGymEnv
for checking if an object is grasped. - Added
get_ee_pos
andget_gripper_ee_pos
toBiGymEnv
to retrieve the positions of H1 hands and grippers.
- Attached 2 2F-85 Robotiq grippers to H1.
- Automatically adjust home key frame of the H1 when attaching grippers.
- XML files not being included when installing.
- Head, left and right wrist cameras.
- Constructor arguments to take in camera names.
- Floating base so that H1 can be controlled without legs; (x, y, theta) actions
- End-effector "sites".
- Added reach target task.
- Initial project code.