Releases: haosulab/ManiSkill
v3.0.0.dev13
What's Changed
- Fix camera not accepting intrinsic argument, small refactor of add_camera API, and add peg insertion to test matrices by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/267
- Add segmentation data w/ docs + demos, fix replay trajectory test, change OrderedDict to dict in some places by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/270
Full Changelog: haosulab/ManiSkill2@v3.0.0.dev12...v3.0.0.dev13
v3.0.0.dev11
What's Changed
- Fix RotateCubeLevel1 Rotation Init Error by @Kami-code in https://github.com/haosulab/ManiSkill2/pull/256
- Peg insertion side batched dense reward, simplify utilities code and refactoring by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/259
There is a ton of refactoring and breaking changes as a result. There is a new mani_skill.utils.gym_utils module and many utilities in sapien_utils were moved to common or gym_utils. This is primarily for organizational purposes and better to do it now than after release - more flexible pose setting for merged actors/articulation views on CPU by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/260
- Clamp and normalize reward of RotateCubeEnv by @Kami-code in https://github.com/haosulab/ManiSkill2/pull/261
- support controllers configuring balance_passive_force by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/263
Full Changelog: haosulab/ManiSkill2@v3.0.0.dev10...v3.0.0.dev11
v3.0.0.dev10
What's Changed
- docs on how to contribute tasks by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/250
- Rotate Cube Task using Trifingerpro robot by @Kami-code in https://github.com/haosulab/ManiSkill2/pull/249
- Fix pd ee pose for non panda robots, name refactors to be more explicit, and links have references to their joints by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/253
- Pick clutter task (GPU). Also includes a few changes to how Actor.merge and Articulation.merge work in terms of the state dict the simulation has. In particular merging is now considered as a way of "viewing" existing data (like a reference/pointer), allowing for some more flexible control and usage as done in PickClutter where each sub-scene has a different number of objects as well and we need to reset all of them to initial poses. by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/254
- Fix doc typos and refactor some old links/names by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/255
- Improved docs w.r.t to installation instructions and around errors with fast kinematics
- PPO example code supports an evaluation mode
- force_use_gpu_sim -> sim_backend. Specify which simulation backend (cpu or gpu or auto) to use. In auto mode, GPU is used if num_envs > 1 when creating the environment, CPU otherwise
- Remove circular import errors with registration tools so users can easily inherit existing tasks in maniskill to build on them
- Updated tutorial task code for PushCube to be more explicit in class arguments for camera configurations
- Remove dependencies on the old pytorch_kinematics library, it is no longer needed
- Example RL code working google colab (not yet a tutorial, to be completed)
- Fix bug with replay trajectory tool when trying to handle trajectories generated during GPU simulation
- Fix bug with replay trajectory tool that doesn't set the first env state when using env states
- Fix bug with RecordEpisode wrapper where it saved a null value for seed when no seed is given. Instead the seed key is removed entirely
- Several old code files have been removed
New Contributors
- @Kami-code made their first contribution in https://github.com/haosulab/ManiSkill2/pull/249
Full Changelog: haosulab/ManiSkill2@v3.0.0.dev9...v3.0.0.dev10
v3.0.0.dev9
What's Changed
- Batched drives, hide not ready functions, improved typing of structs, some bug fixes for unregistered envs by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/248
Full Changelog: haosulab/ManiSkill2@v3.0.0.dev8...v3.0.0.dev9
v0.6.0.dev3
- YCB related tasks load faster
- EGAD related tasks are deprecated as the collision meshes are too poor to really be useful at the moment
- Various bug fixes
- Example motion planning code has been provided for some rigid body tasks
v0.6.0.dev2
See #175 for all changes
Install with pip install man-skill2==0.6.0.dev2
main changes are integrating SAPIEN 3 (lots of new features and nicer GUI), more visual variety in table top tasks, and experimental scene code for loading e.g. AI2THOR House scenes
v0.5.3
What's Changed
- Fix bug where set_main_rng would reset main rng every call to reset even if no seed is given by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/141
- V0.5.3 release by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/152
Full Changelog: haosulab/ManiSkill2@v0.5.2...v0.5.3
v0.5.2
What Changed
- Fix soft body env demo download links
Full Changelog: haosulab/ManiSkill2@v0.5.1...v0.5.2
v0.5.1
What's Changed
- Colab updates and minor bug with fix with ManiSkill2 custom env registration by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/139
- Fix demo downloads and auto unzip
Full Changelog: haosulab/ManiSkill2@v0.5.0...v0.5.1
v0.5.0
ManiSkill2 Release Notes
This update migrates ManiSkill2 over to using the new gymnasium package along with a number of other changes.
Breaking Changes
env.render
now accepts no arguments. The old render functions are separated out as other functions andenv.render
calls them and chooses which one based on theenv.render_mode
attribute (set usually upon env creation).env.step
returnsobservation, reward, terminated, truncated, info
. See https://gymnasium.farama.org/content/migration-guide/#environment-step for details. For ManiSkill2, the old done signal is now called terminated and truncated is False. All environments by default have a 200 max episode steps so truncated=True after 200 steps.env.reset
returns a tupleobservation, info
. For ManiSkill2, info is always an empty dictionary. Moreover,env.reset
accepts two new keyword arguments:seed: int, options: dict | None
. Note thatoptions
is usually used to configure various random settings/numbers of an environment. Previously ManiSkill2 used to use custom keyword arguments such asreconfigure
. These keyword arguments are still usable but must be passed through an options dict e.g.env.reset(options=dict(reconfigure=True))
.env.seed
has now been removed in favor of usingenv.reset(seed=val)
per the Gymnasium API.- ManiSkill VectorEnv is now also modified to adhere to the Gymnasium Vector Env API. Note this means that
vec_env.observation_space
andvec_env.action_space
are batched under the new API, and the individual environment spaces are defined asvec_env.single_observation_space
andvec_env.single_action_space
- All reward functions have been changed to be scaled to the range of [0, 1], generally making any value-learning kind of approach more stable and avoiding gradient explosions. On any environment a reward of 1 indicates success as well and is also indicated by the boolean stored in
info["success"]
. The scaled dense rewards are the new default reward function and is callednormalized_dense
. To use the old <0.5.0 ManiSkill2 dense rewards, setreward_mode
todense
.
New Additions
Code
- Environment code come with separated render functions representing the old render modes. There is now
env.render_human
for creating a interactive GUI and viewer,env.render_rgb_array
for generating RGB images of the current env from a 3rd person perspective, andenv.render_cameras
which renders all the cameras (including rgb, depth, segmentation if available) and compacts them into one rgb image that is returned. Note that human and rgb_array are used only for visualization purposes. They may include artifacts like indicators of where the goal is for visualization purposes, see PickCube-v0 or PandaAvoidObstacles-v0 for examples. cameras mode is reflective of what the actual visual observations are returned by calls toenv.reset
andenv.step
. - The ManiSkill2 VecEnv creator function
make_vec_env
now accepts amax_episode_steps
argument which overrides the defaultmax_episode_steps
specified when registering the environment. The defaultmax_episode_steps
is 200 for all environments, but note it may be more efficient for RL training and evaluation to use a smaller value as shown in the RL tutorials.
Data
- Demonstration data has moved completely to hugging face https://huggingface.co/datasets/haosulab/ManiSkill2, which offers a more stable file storage platform than google drive.
Tutorials
- All tutorials have been updated to reflect new gym API, new stable baselines 3, and should be more stable on google colab
Not Code
- New CONTRIBUTING.md document has been added, with details on how to locally develop on ManiSkill2 and test it
Bug Fixes
- Closes #124 with using the newest version of Sapien, 2.2.2.
- Closes #119 via #123 where scalar values returned by the state part of a dictionary would cause errors.
- Fixes a compatability bug with Gymnasium AsyncVectorEnv where Gymnasium also could not handle scalar values as it expects shape (1, ), not shape (). This is done by modifying environments to instead of returning floats for certain scalar observation values to return numpy array versions of them. So far only affected TurnFaucet-v0. Partially closes #125 where TurnFaucet-v0 had non-deterministic rewards due to computing rewards based on unseeded sampled points from various meshes.
Miscellaneous Changes
- Dockerfile now accepts a python version as an argument
- README and documentation updated to reflect new gym API
mani_skill2.examples.demo_vec_env
module now accepts a--vecenv-type
argument which can be eitherms2
orgym
and defaults toms2
. Lets users benchmark the speed difference themselves. Module was further cleaned to print more nicely- Various example scripts that have
main
functions now accept anargs
argument and allow for using those scripts from within python and not just the CLI. Used for testing purposes. - Fix some lack of quietness on some example scripts
- Replaying trajectories accepts a new
--count
argument that lets you specify how many trajectories to replay. There is no data shuffling so the replayed trajectories will always be the same and in the same order. By default this isNone
meaning all trajectories are replayed.
What's Changed
- Fix docker building instructions by @xuanlinli17 in https://github.com/haosulab/ManiSkill2/pull/78
- Fix colab crash issue by automatically adding nvidia json files by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/83
- Fix #85 by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/87
- [BC] Add base_pose and tcp_pose in MS1 envs' observations by @xuanlinli17 in https://github.com/haosulab/ManiSkill2/pull/96
- Fix softbody installation instructions in installation.md by @xuanlinli17 in https://github.com/haosulab/ManiSkill2/pull/99
- 0.5.0 by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/76
- update versions to 0.5.0 and fix docs with downgrade of sphinx by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/135
- Fix bug with demo random action not creating a video at the end. by @StoneT2000 in https://github.com/haosulab/ManiSkill2/pull/136
- minor fix in quickstart doc by @xuanlinli17 in https://github.com/haosulab/ManiSkill2/pull/138
Full Changelog: haosulab/ManiSkill2@v0.4.2...v0.5.0