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_frequencyof theBiGymEnv.
- Updated Demo Player.
- Environment reset behaviour should be implemented in
on_resetnow instead ofreset_model. - Environment termination behaviour uses
_should_terminatewhich should now be overridden in the task environment.
- Lightweight demos are automatically uploaded to Google Cloud Buckets when using
DemoStore.upload_demoandDemoStore.upload_demos. TooManyDemosRequestedErroris raised when requesting more demos than available in the bucket.DemoNotFoundErroris raised when requesting demos when none are available in the bucket.
- The observation vector of the
BiGymEnvis now configured usingObservationConfigandCameraConfiginstead of flags.
- Added
DemoStoreto upload and download demonstrations from Google Cloud Buckets. - Added
Lightweightdemo format to store only demo action, termination and truncation information.
- Implemented handling of
PhysicsErrorresulting from an unstable state in the simulation. Instead of raising an error,UnstableSimulationWarningis now raised. If multipleUnstableSimulationWarningoccur consecutively,UnstableSimulationErroris raised. Theis_healthyproperty of theBiGymEnvnow 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_reachedflag 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_drainertask tomove_plate_betweeen_drainers. - Renamed and updated
swipe_tabletask 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
SwipeTabletask.
- Added the
discrete_gripperflag to control grippers in binary open-closed mode instead of positional mode.
- Constructor now takes an
ActionMode. Constructor argfloatinghas been removed and rolled into newActionModeworkflow. - We now make use of
mjcf.physicsrather 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_objecttoBiGymEnvfor checking if an object is grasped. - Added
get_ee_posandget_gripper_ee_postoBiGymEnvto 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.