Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.6.0 Alpha Release: Sapien 3 integration #175

Merged
merged 13 commits into from
Dec 14, 2023
Merged

v0.6.0 Alpha Release: Sapien 3 integration #175

merged 13 commits into from
Dec 14, 2023

Conversation

StoneT2000
Copy link
Member

@StoneT2000 StoneT2000 commented Dec 5, 2023

Current work on a v0.6.0 Alpha release which integrates the new SAPIEN 3 into the Maniskill benchmark. A number of new features and code refactors are also being done here in order to support some large-scale new projects coming to Maniskill for enabling better evaluation at scale and robot learning at scale.

Upcoming Changes

The biggest change is now SAPIEN 3 is now used instead of SAPIEN 2. This comes with a lot of nice upgrades to the GUI, from turning on ray tracing to make it look more realistic, to better pre-built scenes via a new scene builder API.

Preview of some of the new prebuilt scenes with some including existing tasks:
Frame 4 (2)

To play around with the new setup, if you have a GUI you can run

python mani_skill2/examples/demo_random_action.py -e "PegInsertionSide-v0" --render-mode="human" shader_dir "rt-fast"

which will run the PegInsertion task and open a viewer and turn on ray-tracing.

In the future, there will also be another large change (shouldn't affect users who don't need to write new tasks and just benchmark) where a lot of functions (building a scene, reward generation, getting observations) may be converted to be functional to support some new sapien features in the future. These planned changes are not in this alpha release. Moreover, demonstrations need to be regenerated, so the current ones do not work at the moment, this will be added later.

High-level Overview

  • SAPIEN 3 is now used instead of SAPIEN 2.
  • SAPIEN 3 uses an entity component system (ECS) which Maniskill builds upon now. To learn how ECS works see: https://github.com/SanderMertens/ecs-faq#what-is-ecs
  • New Scene Builder class which simplifies any code for building scenes. Maniskill default provides a few simple scenes like a table-top scene (instead of that gray floor), as well as a prebuilt class that supports loading scenes from AI2-Thor (via the HSSD dataset: https://huggingface.co/datasets/hssd/)
  • New Agent/Robot API. This enforces one robot class maps to exactly one URDF file and removes the need to define robot configurations, keeping code more readable, less scattered. Each robot class defines its own uid, urdf file, urdf_configs, controller configs, and sensor configs (all of which may be defined at runtime via the python @property decorator). Many folders and files have been reorganized as well. See mani_skill2/agents/robots/panda/panda.py for a good template to understand how the new API works.
  • Cameras are no longer the top of the hierarchy, they now inherit BaseSensor and BaseSensorConfig classes, allowing users to define custom sensors (e.g. Lidar).
  • A number of APIs that used be SAPIEN wrappers over the PhysX engine are now deprecated e.g sapien.Link should now be sapien.physx.PhysxArticulationLinkComponent
  • New environment state parameterization
  • Minimal environment class template is given. (Only initializes a robot).
  • Some motion planning solution examples have been provided

More Details

SAPIEN 2 -> SAPIEN 3 Changes relevant to ManiSkill

  • sapien.Link, sapien.Joint, sapien.Articulation now map to sapien.physx.Physx* components. In code we typically do import sapien.physx as physx to access these components now.
    In particular, the following have moved as so:
sapien.ActorBase -> physx.PhysxBaseComponent
sapien.Actor -> sapien.Entity
sapien.Link -> physx.PhysxArticulationLinkComponent
sapien.Joint -> physx.PhysxArticulationJoint
sapien.Contact -> physx.PhysxContact
  • Transforming sapien poses is now done as pose_1 * pose_2 instead of pose_1.transform(pose_2)
  • articulation.get_qlimit is now articulation.get_qlimit
  • joint.get_limits is now joint.get_limit
  • joint.set_limits is now joint.set_limit
  • import sapien instead of import sapien.core as sapien
  • builder.add_multiple_collisions_from_file is now builder.add_multiple_convex_collisions_from_file
  • builder.add_collision_from_file is now builder.add_convex_collision_from_file
  • sapien.RenderMaterial is now sapien.render.RenderMaterial
  • actor.hide_visual is no longer a function. ManiSkill now out of the box provides a hide_entity and show_entity function which disables the first render body component of a given entity.
  • sapien.Actor is now sapien.Entity. In general, everything is now an entity or component. In code, actor usually refers to entities that impact physical simulation (e.g. a static/dynamic object, the robot articulation). Entities can include even things such as the viewer window itself.
  • A number of properties of sapien.Actor are now found in components physx.PhysxRigidDynamicComponent and sapien.render.RenderBodyComponent. Use entity.find_component_by_type(component_class_type) to find these and retrieve the relevant properties.
  • global friction is now set via the sapien.physx module, and the default is 0.3 for all and 0 for restitution (matching unity.)
  • urdf loaders no longer accept urdf_config as an argument. ManiSkill itself now provides an apply_urdf_config function to do the same thing.
  • velocity is now called linear_velocity. physx.PhysxArticulationLinkComponent and physx.PhysxRigidDynamicComponent both support getting and setting linear and angular velocities.
  • visual bodies no longer exist. Visual data is now in the form of a list of render shapes. To get the old visual bodies, find the RenderBodyComponent and loop over the render_shapes
for render_shape in entity.find_component_by_type(sapien.render.RenderBodyComponent).render_shapes:
    ...
  • collision_shape.set_collision_groups does not accept *args, it accepts a single list of groups now.
  • entity.set_damping is now deprecated. Instead you must set linear and angular damping on the physx.PhysxRigidDynamicComponent component of an entity. E.g.
obj_comp = entity.find_component_by_type(physx.PhysxRigidDynamicComponent)
obj_comp.set_linear_damping(0.1)
obj_comp.set_angular_damping(0.1)
  • entity.lock_motion is now obj_comp.set_locked_motion_axes and the obj_comp is the physx.PhysxRigidDynamicComponent.
  • sapien.PhysicalMaterial is now physx.PhysxMaterial
  • The default sapien viewer and camera shader dir is called "default" not "ibl" now.
  • scene.add_directional_light accepts shadow_scale instead of scale as argument

General Environment Changes

  • Environments now have different environment state parameterizations.
  • All original demonstrations (stored in the demos/v0 folder) are generally unusable due to using SAPIEN 3 now. These will be regenerated and uploaded online. When downloaded again the new demos in versions v0.6.x will be stored in demos/v1.
  • Collision meshes of various assets will be regenerated with CoACD so they will be slightly different than before.
  • SUPPORTED_ROBOTS is no longer something defined in environments (It was never used before)
  • Deprecated the bg_name property of all base environments, which was a simple short solution to load scene files.
  • With the new robot/agent API, the _configure_agent function is now deprecated.
  • Environment first reset may be a little bit slower than previously. This is due to calling _load_agent an extra time to obtain run-time defined sensor and controller configurations to then correctly determine how observations generated
  • Small optimization to reduce number of calls to env.evaluate function when computing reward.

Agent / Robot changes

  • Each robot type has it's own folder. In each folder there are files defining the robot class for each URDF variant (e.g. Panda Arm with real sense camera on it). New API now means the agent configs folder is now removed.
  • Moved base_controller.py to one folder above.
  • Each robot class defines sensor_configs and controller_configs itself.
  • Assets/robot descriptions have been reorganized. They are now in mani_skill2/assets/robots folder.
  • Tasks that use specific robot like the real sense equipped panda arm explicitly use that robot class specified via robot uid or the robot class itself as the default robot to use instead of overloading the panda robot uid with different configurations.

Other

  • All paths generally use python format string to pass in constants like PACKAGE_ASSET_DIR in file as opposed in another file
  • get_actor_mesh is now get_component_mesh which gets the mesh of a given component such as a physx.PhysxArticulationLinkComponent component.
  • get_actor_meshes is now get_component_meshes
  • get/set_actor_visibility is now get/set_entity_visibility
  • get_visual_body_meshes is now get_render_body_meshes
  • RecordEpisodeWrapper now accepts a video_fps argument

@StoneT2000 StoneT2000 changed the base branch from main to dev December 14, 2023 02:03
@StoneT2000 StoneT2000 merged commit cfe8f37 into dev Dec 14, 2023
1 check passed
@StoneT2000 StoneT2000 deleted the v0.6.0-sapien3 branch December 22, 2023 07:34
StoneT2000 added a commit to itsygao/ManiSkill2 that referenced this pull request Jan 30, 2024
* version bump

* copy code over

* refactor xmate3

* Update xmate3.py

* Changed Replay Trajectory to add options to record rewards as well as specify reward mode (haosulab#177)

* Added reward mode argument and record rewards argument to replay trajectory

* Fixed an error

---------

Co-authored-by: Arnav G <[email protected]>
Co-authored-by: Stone Tao <[email protected]>

* merge in refactor and updates for utils

* merge in changes for trajectory

* merge new examples

* merge new env code, refactors + new scene builder api

* merge new agents code

* merge code for new assets, floors etc.

* Update __init__.py

* Delete README.md

---------

Co-authored-by: Arnav G <[email protected]>
Co-authored-by: Arnav G <[email protected]>
StoneT2000 added a commit that referenced this pull request Apr 25, 2024
* v0.6.0 Alpha Release: Sapien 3 integration  (#175)

* version bump

* copy code over

* refactor xmate3

* Update xmate3.py

* Changed Replay Trajectory to add options to record rewards as well as specify reward mode (#177)

* Added reward mode argument and record rewards argument to replay trajectory

* Fixed an error

---------

Co-authored-by: Arnav G <[email protected]>
Co-authored-by: Stone Tao <[email protected]>

* merge in refactor and updates for utils

* merge in changes for trajectory

* merge new examples

* merge new env code, refactors + new scene builder api

* merge new agents code

* merge code for new assets, floors etc.

* Update __init__.py

* Delete README.md

---------

Co-authored-by: Arnav G <[email protected]>
Co-authored-by: Arnav G <[email protected]>

* bump version and remove old requirements.txt file

* merge updates (#183)

- fix bug where some files were missing for franka for motion planning code
- fix bug that required user to have ai2 assets
- update floor tiles

* fix bug with scene demos

* version bump

* Update README.md

* merge updates

* Added decision transformer implementation to baseline (#180)

* copy over ms3 code

* fix pick cube task reward

* code format

* fix bug with to_tensor

* fix bug with to_tensor calls

* Fetch mobile (#188)

* Progress: Fetch mobile base

* fix

* fix

* unfinished: integrate into gpu sim stuff

* Fix: gpu sim compatibility issues

* Fix: fetch sensor cfg

* Fix: pd_ee_pose controller ik, env step cpu sim output, utils, fetch pose

* Fix: fetch is_grasping cpu sim

* code formatting

* fix a few a number of environments and tests (#190)

* fix a few envs, mark pick clutter as to be fixed in the future.

* code refactor

* fix some batching code, only reset and step return numpy on cpu mode

* format code

* code formatting

* remove a lot of unused variables

* gpu end effector control + various bug fixes (#191)

* update template

* add minimal pick cube task with "task sheet"

* task sheets

* init

* fix some bugs

* auto batch actions before processing

* init

* work

* bug fix

* Update visual_all_envs_cpu.py

* code golfing

* Update sapien_env.py

* update some tests

* Update vec_env.py

* formatting

* Squashed commit of the following:

commit 27101d4bdc4bd98451ed38d209045b36794288a9
Author: Stone Tao <[email protected]>
Date:   Tue Jan 23 18:12:03 2024 -0800

    fix some bugs with fetch

* fix bug with ee pose controller for panda

* Fix: pd_base_vel action expected Float not Double

* Trivial: table scene builder height and width

* Tasks remake for GPU sim (#192)

* work

* sac impl

* update template

* add minimal pick cube task with "task sheet"

* task sheets

* work

* work

* work

* fix templates

* using torch rng

* use torch rng

* batched uniform sampler, stack cube v1 task

* fix bugs with scene masking, merge_actors function

* Update pick_single_ycb.py

* Update pick_single_ycb.py

* bug fixes

* stack cube task bug fix

* refactor, appending hidden_objects list allows handling of hiding e.g. goal sites

* WIP work

* Revert "WIP work"

This reverts commit 9a6710f.

* quick fix: table dims in scene builder

* Tasks remake (#195)

* work

* sac impl

* update template

* add minimal pick cube task with "task sheet"

* task sheets

* work

* work

* work

* fix templates

* using torch rng

* use torch rng

* batched uniform sampler, stack cube v1 task

* fix bugs with scene masking, merge_actors function

* Update pick_single_ycb.py

* Update pick_single_ycb.py

* bug fixes

* stack cube task bug fix

* refactor, appending hidden_objects list allows handling of hiding e.g. goal sites

* WIP work

* Revert "WIP work"

This reverts commit 9a6710f.

* Revert "Revert "WIP work""

This reverts commit dcb3a5f.

* refactor some code, cache some properties, batch some properties

* fix naming of joints and links to also be prepended by scene-{i}

* bug fixes. Disable some functionality via a ._merged bool

* disable hand camera on panda (people should use the real sense panda config

* fix some setters

* work

* cache property for body data indices, it is now auto computed for user

* work

* change default value for static as resting objects still have a minor amount of angular rotation at times

* code updates

* decorator to assert error when gpu is initialized for calling functions user should not call.

* Update actor.py

* bug fixes

* work

* new utility functions for getting desired meshes, fixed goal site place

* performance improvements, swap obs and info

* Update __init__.py

* Update articulation.py

* Update pick_single_ycb.py

* update documentation

* tuned max episode steps for faster PPO

* use memory leak free new sapien and new buffer access api, fix controller reconfigure

* bug fixes, new tests

* test

* more bug fixes

* work

* add velocity target control gpu support. perf improvements for indexing articulation related things. Fix some bugs

* Update base_controller.py

* fix collision setting bugs

* apply vel

* fix self collision bugs

* fix gymnasium vector env wrapper to ignore the timelimit wrapper

* clean up

* fixes

* linkmerging

* bug fix

* work

* better camera angles

* work

* bug fixes

* code clean up with new wrappers

* Fix: pick cube get_obs_extra pass info

* Fix: fetch is_static

* Benchmarking code (#198)

* cleaner benchmarking code

* code init

* Update benchmark_cpu_sim.py

* Update benchmark_gpu_sim.py

* basic profiler

* update benchmark code

* code update

* Update README.md

* Fix: fetch is_static

---------

Co-authored-by: arth-shukla <[email protected]>

* Code cleanup (#197)

* cleanup

* remove old tasks

* cleanup

* refactor

* work

* more tests

* fix tests

* visual-encoders (#199)

* First commit of VisualEncoder

Add necessary files

* Try to deal with ConnectionResetError by changing wrappers location

* Change wrappers

* Removed tyro

* Change filename to lowercase

* work and add tests

* Delete ppo_liftcube_VisualEncoder.py

* fixes

---------

Co-authored-by: itsygao <[email protected]>
Co-authored-by: ygaoproj <[email protected]>

* faster benchmark results, new sapien

* bug fix

* Fix build_actor_ai2 Actor

* fix bug in cpu sim with init_raw_obs

* refactor some names from render_cameras to render_human_cameras and cameras to sensors

* Fix: fetch init

* Fix: fetch action space normed to -1 to 1

* Expand sensor api properly and refactor code to use it (#201)

* new tests, mark gpu tests, rework sensor api

* renaming

* new test

* code clean up

* docs

* Update sapien_env.py

* refator more code. Observation processing code only delete sensor data that they replace now.

* bug fix with human renderer

* fetch torso link

* Multirobot support + basic tasks (#202)

* multi robot support

* work

* Update two_robot_stack_cube.py

* finish task obs and reward

* reward, fixes

* bug fixes

* refinement

* Update pick_cube.py

* better camera angles

* fix int issue

* work

* Update two_robot_stack_cube.py

* work

* robot support typing

* better debugging camera

* Update two_robot_stack_cube.py

* work

* Update ppo.py

* add multi agent task tests

* bug fix with SUPPORTED_ROBOTS attribute

* Save benchmark data to csv (#203)

* profiling code to csv

* Update benchmark_gpu_sim.py

* trivial pr: `cameras` render mode (#204)

* Trivial: add cameras, renders both human cameras and agent sensors

* Fix: cpu inverted colors bug

* Remove cameras render mode

* Reset by index (#205)

* support partial resets and add test

* adhere to gymnasium

* support fail and success terminations and update docs

* work

* Update link.py

* Settable default scene/memory configs  + attempt at legged tasks + bug fixes (#206)

* basic locomotion robot

* work

* bug fixes

* work

* work

* Update articulation.py

* bug fixes

* tuned sim configs for some tasks

* tuned scene configs for more tasks

* work

* Update benchmark_gpu_sim.py

* Update sapien_env.py

* bug fix with controller not resetting after each env reset, affecting e.g. joint delta pos controllers (#207)

* fix controller not resetting to a initial state when env.reset is called...

* Update pd_joint_pos.py

* simplify code

* fixes

* use a lower memory configuration for all gpu sim tests

* reset agent before episode initialization in case episode initialization will set other qpos/qvel/qf values

* Update minimal_template.py

* fetch reachable dist

* update pick cube mp solution

* work

* init code

* Update interactive_teleop.py

* fix rt rendering

* Fixed bug for resetting elapsed steps (#211)

* fix some bugs with interactive panda tele-op and recording epsiodes and state get/set (#210)

* fix state setting.

* Update record.py

* work

* Update record.py

* wip

* buyg fixes and work

* bug fixes

* bug fixes

* work

* Update interactive_teleop.py

* Update pick_single_ycb.py

* reduce verbosity

* add batched timelimit wrapper only for gpu sim envs. Otherwise use gymnasium CPU one.

* Update registration.py

* use make_vec api? and avoid timelimit wrapper type issues

* bug fixes

* fix tests

* Update test_gpu_envs.py

* bug fixes

* Update ppo.py

* bug fixes

* fix bug where gymnasium vecenv wrapper would mess up success indicators and now gymnasium vecenv wrapper will auto find max episode steps value

* Fix: clone() on int in cpu sim

* Net force (#213)

* new package

* add net force tensor for a body

* net forces for multiple links on articulation

* work

* Update README.md

* Update xmate3.py

* update sapien version

* bug fixes with gpu ppo + partial resets (#215)

* partial reset + rookie implementations

* Update ppo.py

* Update README.md

* New task: DClaw Valve Rotating (#214)

* add: add dclaw rotating task

* ref: resolve todo

* fix: fix partial reset bug and make the environment much simpler for level 0

* work (#216)

* Fix: update render_human camera pos each render (e.g. when mounted to moving object)

* Baselines diffusion policy (#196)

* init diff policy baseline

* added training script and readme

* Finished diffusion policy baseline

* corrected jupyter notebook

* formatted notebook

* lowercase

---------

Co-authored-by: Stone Tao <[email protected]>

* fix bug where viewer camera was fixed in place to a sensor

* fix bug where failure is not used for termination

* bug fix with adding mounted cameras

* GPU Simulated Scenes, New more organized asset locations (#217)

* Fix: some scene manip env issues

* Better fetch cameras

* Fix: disable collisions only on fetch wheels

* Fix: fetch grapsing retval

* Progress: updates to scene-related classes/envs

* Fix: ai2thor scene builder set poses in initialize()

* Fix: ai2thor fetch scene builder ground collisions

* Fix: ai2 sb don't reconfigure by default

* Fix: sb load_actors instead of load_agents

* Trivial: add fetch resting qpos as attr

* Fix: pick_object scene pose setting

* Fix: renderer follows camera

* Fix: options is None

* Fix: fetch body delta pos controller

* Fix: record wrapper options=None by default

* Progress: support for loading navigable positions

* Progress: update base scene builder w/ DexM3 version

* Trivial: add arm camera, more "working" coacd objects

* minor ai2 sb changes

* Trivial: port over everything needed for scene manip testing

* bigger place reward

* Fix: keep x/y/zrot qvel in obs

* Try tune reward

* scale place reward more

* Try lessen place rew

* work

* work

* add bug fix

* Create scene_gpu.py

* Update sequential_task.py

* temp code

* make more objects static

* base empty scene manipulation env

* work

* work

* tests

* work

* more work

* modify benchmark code to support cpu and gpu sim tests

* add lighting?

* work

* articulations

* work

* Update scene_builder.py

* new dataset location

* fix for new dataset paths for some tasks, remove old tasks

* remove scene tasks as they are not done

* work

* work

* fixes

* change some defaults

---------

Co-authored-by: arth-shukla <[email protected]>

* Fix actor show/hide visual gpu sim (#221)

* Fix: actor show/hide visual not working on gpu sim

* Fix: by default hidden poses hidden

* bug fix

* Fix: setter and getter for actor.pose returns before_hide_pose if hidden, Fix: render human also sets _hidden_objs to hidden when doen rendering

* Unit test + fix for hide/show visual

---------

Co-authored-by: StoneT2000 <[email protected]>

* New docs (#220)

* work

* Update setup.py

* lots of docs

* work

* new theme and work

* readthedocs

* work

* bug fix

* fix

* work

* new task: in hand rotating in_hand_task (#219)

* fix bug where articulation get net contact forces was oriented wrong despite having right shape

* Fix: fetch in TableSceneBuilder

* New trajectory format and bug fixes (#222)

* work

* work?

* bug fixes and support new state dict format, reduce robot name verbosity

* Update pick_cube.py

* Update test_gpu_envs.py

* Update test_gpu_envs.py

* bug fix with setting before hide poses

* bug fixes

* work

* work

* fix a bunch of bugs

* fix batching for scalar values

* Update benchmark_maniskill.py

* bug fix

* add more useful print for ppo

* fix bug where controller reset did nothandle partial reset correctly and new tests

* bug fixes

* bug fix with set state dict where merged actor didnt have the right new name and other bugs

* bug fix to handle both single and multiple envs

* bug fixes with formatting

* Update record.py

* sapien upgrade

* Update sapien_utils.py

* work

* fix default value of gravity issue caused by newer python verisons

* Robot and scene builder registration and all env testing and temporarily removing old envs (#224)

* work

* unregister envs that are not meant to be run by themselves

* bug fixes

* bug fixes

* Update record.py

* Update README.md

* remove old code, register another scene

* typings

* make scene builder api consistent

* Update table_scene_builder.py

* Packaging and import fixing (#225)

* add lots of init py files

* new imports 1

* more

* work

* work

* work

* fixes

* Update setup.py

* remove circular import errors?

* support a default sim configuration choice

* use dacite package to fix nested dataclasses and typecheck the sim configs

* Update sapien_env.py

* More ms3 docs (#227)

* use shared version in docs and pip

* work

* support upload videos in docs

* work

* Update .gitignore

* docs

* Update teleoperation.md

* work

* work

* docs, move some code around

* Update quickstart.md

* some benchmarking results

* new theme with better github support

* examples

* Update teleoperation.md

* docs

* work

* Update custom_tasks.md

* work

* Update sapien_env.py

* work

* more docs

* work

* fix rtd

* Update conf.py

* temp fix for videos on rtc

* New packaging (#228)

* work

* www

* updates

* Update setup.py

* renaming a lot

* work

* Update publish-to-pypi.yml

* Bug fixes releases (#229)

* work

* more docs, change far for cameras

* Fix: circular import from table scene builder

* Mp work (#230)

* motion planning demos

* work

* Update motionplanning.md

* work

* work

* work

* examples

* Update interactive_panda.py

* remove old TODOs

* Update setup.py

* Update types.py

* docs

* Datasets+replay fix gpu camera matrices (#231)

* Update index.md

* raise user warning about registering with types

* Update README.md

* Update README.md

* disable target ee control mode due to bug atm, fix up replay trajectories

* clean up code

* www

* Update observations.py

* rgb option and work and bug fixes

* lots of bug fixes

* docs, small optimization to cache matrices

* work

* dataset documentation and some refactoring

* nice documentation and figures and bug fix

* Update panda.py

* more documentation on advanced featureas

* more docs

* typos

* more typo fixes

* code refactoring to simplify maniskill lifecycle (#232)

* refactor: reconfigure -> _reconfigure. Add _after_reconfigure() function for use cases like mobile manip. pick task

* refactor: _load_actors -> _load_scene. Deprecate _load_articulations in favor of user self organization in their code

* refactor _setup_lighting -> _load_lighting. better docs

* Update sapien_env.py

* docs

* multiple refactors (#233)

* refactoring

* bug fixes

* refactor: _register_* to _sensor_configs property

* refactoring default sim cfg

* consistency work

* consistent namings

* bump and include .stl files for mplib

* bug fixes

* Update setup.py

* Pull cube and Lift peg tasks with demo videos (#234)

* pull cube and lift peg tasks

* pull cube and lift peg tasks

* More docs (#235)

* Update README.md

* refactoring

* refactor the new tasks

* fix tasks, add more docs on tasks

* new diagrams and work

* temporarily remove not up to date code

* Update installation.md

* Update Dockerfile

* fix typos in docs

* new sapien package without mem leak

* More demos more docs (#236)

* Create contact_pair_impulse_test.py

* fixes

* Update setup.py

* work

* work

* Update download_asset.py

* bug fix with table scene builder

* Update demo_vis_pcd.py

* fix bug where deepcopy will track internal dict references that broke parse urdf config

* Add back some old tasks and bug fixes (#237)

* bug fix, upgrade realsense panda arm with actual real sense camera mesh

* work

* bug fix for episode recording

* bug fixes, reward mode none supported

* version bump

fixes:
- extrinsic camera matrix was None, broke some visual observations
-  improved panda + camera model
- bug where gpu sim used with 1 parallel env has broken visual data processing code
- bug where save video did not save separate videos on CPU sim.
changes:
- add back peg insertion side task (but without dense reward as its not easy to batch)

* Update observations.py

* Update installation.md

* fix demo name

* AssemblingKits-v1 on gpu, update docs and more consistent video names (#239)

* work

* use scene_idxs as opposed to scene_mask for faster loading, for loops are too slow

* Update assembling_kits.py

* bug fixes

* work

* updated documentation on scene_idxs (faster than scene_masks)

* partially support mimic joints (#238)

* partially support mimic joints

* Update articulation_builder.py

---------

Co-authored-by: StoneT2000 <[email protected]>

* fix warning consistency

* camera randomization tutorial/vectorized camera poses and some refactoring (#240)

* vectorized camera poses and refactor camera config

* bug fixes

* fixes

* documentation

* Update domain_randomization.md

* Update domain_randomization.md

* better naming

* refactoring some code

* a

* Refactor scene mask to scene idxs (#242)

* move out scene masks in favor of scene idxs

* Update link.py

* Update custom_tasks_advanced.md

* bug fix where could not mount camera on actor and docs

* dev4 version bump + fix bug with human render camera global pose

* typo

* work

* fix typos

* Refactor to provide options in load and initialize related functions (#243)

* work

* Update custom_tasks.md

* update documentation for new features, evaluate and get obs extra are optional now

* Added ppo partial reset arg (#241)

* Added ppo-partial reset arg

* Changed eval envs to also have a partial reset arg

* Fixed bug

* require actors/articulations built to have unique names

* Task tuning (#244)

* tuning

* Update README.md

* Update assembling_kits.py

* Update ppo.py

* update docs to clarify the gymnasium wrapper implementation reasons

* Update setup.py

* fix bug with pcd demo

* Fix: replicacad static obj poses

* Fix: replicacad pose issues

* Use fast kinematics library now for IK

* moving demos to hugging face and small change in demo storage structure.

* Created using Colaboratory

* Update setup.py

* move tutorial to right location

* fix demo manual control, hardcoded for fetch for now, and fix render functions returning batched images when there is only one environment

* support (batched) intrinsics in camera config and bug fix with demo manual control

* bug fix with ordering in dataclass

* set some defaults for camera cfg and fix ordering bug for some tasks

* Update setup.py

* Update README.md

* bug fix with typings for python 3.11

* update docs

* Batched drives, hide not ready functions, improved typing of structs, some bug fixes for unregistered envs (#248)

* support using different drive mode in the joint position controller

* refactoring

* work

* w

* w

* fix typings

* w

* w

* version bump

* Created using Colaboratory

* move draft tutorial

* docs on how to contribute tasks (#250)

* add

* w

* docs

* work

* work

* Rotate Cube Task using Trifingerpro robot (#249)

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* Fix pd ee pose for non panda robots, name refactors to be more explicit, and links have references to their joints (#253)

* save joint reference in links

* some code refactor, gpu sim ee control for other robots should be working now

* Pick clutter task (GPU) (#254)

* init

* Update pick_clutter_ycb.py

* fix bug with reset mask

* support more indexing options for Pose, actor_views and articulation_views, pick clutter task work, bug fix with pd_ee_pose controller

* return in reset info whether we reconfigure, necessary to know in order to determine when to delete trajectory buffer in record wrapper

* Update actor.py

* Update sapien_env.py

* Update pick_clutter_ycb.py

* docs

* Update pick_clutter_ycb.py

* fix bug with rotate cube task requiring pytorch kinematics library

* Update articulation.py

* Fix doc typos and refactor some old links/names (#255)

* updates to docs

* refactorings

* remove old code and fix circular import bugs with register envs utility

* sapien.physx -> physx for consistency and fix typings

* support evaluation options for PPO baseline code, remove old videos, refactor force_use_gpu_sim to sim_backend, bug fix where seed was null in saved trajectory jsons

* improved docs w.r.t installation

* versioin bump

* Fix RotateCubeLevel1 Rotation Init Error (#256)

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* Peg insertion side batched dense reward, simplify utilities code and refactoring (#259)

* init

* clean up utility functions, refactoring some out into new files

* merge conflicts, refactoring

* simplify imports

* refactorings

* Update sapien_utils.py

* modify tutorial tasks to always include the common utilities module

* Update sapien_utils.py

* fix circular import errors

* bug fix with index_dict_array, affecting record episode wrapper

* more flexible pose setting for merged actors/articulation views on CPU (#260)

* support setting pose on a view of actors in CPU sim, add device property to pose struct

* flexible pose setting for links as well

* Clamp and normalize reward of RotateCubeEnv (#261)

* support controllers configuring balance_passive_force (#263)

* version bump

* typo fix in template robot file

* Fix memory leaks caused by bad cache for visual obs modes, fix printing of actors/articulations in pdb modes, clear sim state after reconfigures (#264)

* fix cpu sim mem leak with visual obs and constant reconfiguring

* more fixes

* remove old code

* Update mem_leak_test.py

* version bump

* Fix camera not accepting intrinsic argument, small refactor of add_camera API, and add peg insertion to test matrices (#267)

* work

* add peg insertion side to test matrices

* Update test_gpu_envs.py

* fix asset download for ReplicaCAD / hf repo datasets (to be moved in the future)

* Add segmentation data w/ docs + demos, fix replay trajectory test, change OrderedDict to dict in some places (#270)

* work

* fix replay trajectory tests to use new directory

* Update test_replay_trajectory.py

* Update test_replay_trajectory.py

* deprecate env.get_actors and env.get_articulations.

* demo code

* fix demo code

* Update observation.md

* Update sapien_env.py

* Update sapien_env.py

* version bump

* fix fast_kinematics version as latest one may be buggy as its in beta

* fix bug where extrinsic matrix was incorrectly cached when there is a mount

* Update render_camera.py

* add appropriate tests

* fix tests

* Fix: use physx.is_gpu_enabled() instead of self.num_envs > 1 (#272)

* MJCF Loader for SAPIEN/ManiSkill and example CartPole task from DM Control, New QoL features for joints (#273)

* move controller config setup after articulation is loaded for robots to give user access to active joints easily

* change fix_root_link to be a agent property

* work

* work

* fixes

* Update mjcf_loader.py

* work

* code cleanup, use joint pos correctly

* work

* fixes

* work

* a1 loading test

* Update _mjcf_loader.py

* support loading other objects in xml

* cartpole task implemented from xml

* cart pole task, fetch qpos by joint

* work

* docs

* fix controllers, use disable gravity to balance passive forces on CPU and GPU.

* Update sapien_env.py

* more runtime errors

* tuned ppo for cartpole

* some minor fixes

* cart pole video demo

* docs

* H1 robot (#275)

* work

* cleaner code

* init

* fix urdf mesh paths

* provide a typical "standing" keyframe

* fix a few files

* some useful scripts

* work

* new envs, simplified contact version of h1 robot

* work

* Tutorial on how to add robots (#276)

* work

* cleaner code

* work

* work

* Update custom_robots.md

* Update custom_robots.md

* Update controllers.md

* Code refactor for better naming (#277)

* default_sim_cfg -> default_sim_config to follow semantics of other code

* _sensor_configs->_default_sensor_configs, _human_render_camera_configs->_default_human_render_camera_configs

* remove _parsed

* remove OrderedDict in favor of dict and removing old code

* Update docker to ms3 (#281)

* auto install maniskill, torch, and physx, nicer error message

* Update docker.md

* Update docker.md

* a lot new merged code, reorganized articulation building from datasetzs

* bug fixes for open cabinet task

* update rotate valve task to use new link merge API

* bug fix where there were way too many contacts on gpu sim

* ManiSkill2 -> ManiSkill rebranding, remove some old baselines temporarily

* Fix open cabinet task and add it back, fix init state of peg insertion, new demo to visualize initial state distributions (#283)

* ww

* fix partnet asset downloads

* trigger link pose updates when getting collision meshes

* improvements

* support video trigger saving for training video saving like gymnasium,

* fixes

* fix fetch not using the correct friction due to wrong link names

* Update open_cabinet_drawer.py

* work

* quick reset init dist script and modify init state of cabinet task

* better code peg insertion, use same init distribution for open cabinet drawer task

* random sample target link during reconfiguration, drawer task, use numpy for object randomization

* Ppo rgb baseline (#285)

* flatten rgbd obs mode wrapper

* Update flatten.py

* rgb baseline

* bug fixes

* work

* changes

* fix target kl breaking too late

* results

* fixes

* Update flatten.py

* work

* record better metrics, bug fixes

* Update README.md

* eval visual rl policy

* finalize code

* fixes

* work

* Cabinet fix (#286)

* bug fix

* ww

* Update open_cabinet_drawer.py

* update links dev->main

* Update conf.py

* Update README.md

* remove old comment and assert about actor merges

* Final cleanup (#288)

* temporarily remove not yet updated warp code an fix peg insertion motion plan sol

* refactor where table top tasks live

* Update download_asset.py

* register a easy version of the FMB task

* Update fmb.py

* Update run.py

---------

Co-authored-by: Arnav G <[email protected]>
Co-authored-by: Arnav G <[email protected]>
Co-authored-by: arth-shukla <[email protected]>
Co-authored-by: itsygao <[email protected]>
Co-authored-by: ygaoproj <[email protected]>
Co-authored-by: Yuzhe Qin <[email protected]>
Co-authored-by: smtrived <[email protected]>
Co-authored-by: Fanbo Xiang <[email protected]>
Co-authored-by: Chen Bao <[email protected]>
Co-authored-by: Chen Bao <[email protected]>
StoneT2000 added a commit that referenced this pull request Apr 26, 2024
* v0.6.0 Alpha Release: Sapien 3 integration  (#175)

* version bump

* copy code over

* refactor xmate3

* Update xmate3.py

* Changed Replay Trajectory to add options to record rewards as well as specify reward mode (#177)

* Added reward mode argument and record rewards argument to replay trajectory

* Fixed an error

---------

Co-authored-by: Arnav G <[email protected]>
Co-authored-by: Stone Tao <[email protected]>

* merge in refactor and updates for utils

* merge in changes for trajectory

* merge new examples

* merge new env code, refactors + new scene builder api

* merge new agents code

* merge code for new assets, floors etc.

* Update __init__.py

* Delete README.md

---------

Co-authored-by: Arnav G <[email protected]>
Co-authored-by: Arnav G <[email protected]>

* bump version and remove old requirements.txt file

* merge updates (#183)

- fix bug where some files were missing for franka for motion planning code
- fix bug that required user to have ai2 assets
- update floor tiles

* fix bug with scene demos

* version bump

* Update README.md

* merge updates

* Added decision transformer implementation to baseline (#180)

* copy over ms3 code

* fix pick cube task reward

* code format

* fix bug with to_tensor

* fix bug with to_tensor calls

* Fetch mobile (#188)

* Progress: Fetch mobile base

* fix

* fix

* unfinished: integrate into gpu sim stuff

* Fix: gpu sim compatibility issues

* Fix: fetch sensor cfg

* Fix: pd_ee_pose controller ik, env step cpu sim output, utils, fetch pose

* Fix: fetch is_grasping cpu sim

* code formatting

* fix a few a number of environments and tests (#190)

* fix a few envs, mark pick clutter as to be fixed in the future.

* code refactor

* fix some batching code, only reset and step return numpy on cpu mode

* format code

* code formatting

* remove a lot of unused variables

* gpu end effector control + various bug fixes (#191)

* update template

* add minimal pick cube task with "task sheet"

* task sheets

* init

* fix some bugs

* auto batch actions before processing

* init

* work

* bug fix

* Update visual_all_envs_cpu.py

* code golfing

* Update sapien_env.py

* update some tests

* Update vec_env.py

* formatting

* Squashed commit of the following:

commit 27101d4bdc4bd98451ed38d209045b36794288a9
Author: Stone Tao <[email protected]>
Date:   Tue Jan 23 18:12:03 2024 -0800

    fix some bugs with fetch

* fix bug with ee pose controller for panda

* Fix: pd_base_vel action expected Float not Double

* Trivial: table scene builder height and width

* Tasks remake for GPU sim (#192)

* work

* sac impl

* update template

* add minimal pick cube task with "task sheet"

* task sheets

* work

* work

* work

* fix templates

* using torch rng

* use torch rng

* batched uniform sampler, stack cube v1 task

* fix bugs with scene masking, merge_actors function

* Update pick_single_ycb.py

* Update pick_single_ycb.py

* bug fixes

* stack cube task bug fix

* refactor, appending hidden_objects list allows handling of hiding e.g. goal sites

* WIP work

* Revert "WIP work"

This reverts commit 9a6710f.

* quick fix: table dims in scene builder

* Tasks remake (#195)

* work

* sac impl

* update template

* add minimal pick cube task with "task sheet"

* task sheets

* work

* work

* work

* fix templates

* using torch rng

* use torch rng

* batched uniform sampler, stack cube v1 task

* fix bugs with scene masking, merge_actors function

* Update pick_single_ycb.py

* Update pick_single_ycb.py

* bug fixes

* stack cube task bug fix

* refactor, appending hidden_objects list allows handling of hiding e.g. goal sites

* WIP work

* Revert "WIP work"

This reverts commit 9a6710f.

* Revert "Revert "WIP work""

This reverts commit dcb3a5f.

* refactor some code, cache some properties, batch some properties

* fix naming of joints and links to also be prepended by scene-{i}

* bug fixes. Disable some functionality via a ._merged bool

* disable hand camera on panda (people should use the real sense panda config

* fix some setters

* work

* cache property for body data indices, it is now auto computed for user

* work

* change default value for static as resting objects still have a minor amount of angular rotation at times

* code updates

* decorator to assert error when gpu is initialized for calling functions user should not call.

* Update actor.py

* bug fixes

* work

* new utility functions for getting desired meshes, fixed goal site place

* performance improvements, swap obs and info

* Update __init__.py

* Update articulation.py

* Update pick_single_ycb.py

* update documentation

* tuned max episode steps for faster PPO

* use memory leak free new sapien and new buffer access api, fix controller reconfigure

* bug fixes, new tests

* test

* more bug fixes

* work

* add velocity target control gpu support. perf improvements for indexing articulation related things. Fix some bugs

* Update base_controller.py

* fix collision setting bugs

* apply vel

* fix self collision bugs

* fix gymnasium vector env wrapper to ignore the timelimit wrapper

* clean up

* fixes

* linkmerging

* bug fix

* work

* better camera angles

* work

* bug fixes

* code clean up with new wrappers

* Fix: pick cube get_obs_extra pass info

* Fix: fetch is_static

* Benchmarking code (#198)

* cleaner benchmarking code

* code init

* Update benchmark_cpu_sim.py

* Update benchmark_gpu_sim.py

* basic profiler

* update benchmark code

* code update

* Update README.md

* Fix: fetch is_static

---------

Co-authored-by: arth-shukla <[email protected]>

* Code cleanup (#197)

* cleanup

* remove old tasks

* cleanup

* refactor

* work

* more tests

* fix tests

* visual-encoders (#199)

* First commit of VisualEncoder

Add necessary files

* Try to deal with ConnectionResetError by changing wrappers location

* Change wrappers

* Removed tyro

* Change filename to lowercase

* work and add tests

* Delete ppo_liftcube_VisualEncoder.py

* fixes

---------

Co-authored-by: itsygao <[email protected]>
Co-authored-by: ygaoproj <[email protected]>

* faster benchmark results, new sapien

* bug fix

* Fix build_actor_ai2 Actor

* fix bug in cpu sim with init_raw_obs

* refactor some names from render_cameras to render_human_cameras and cameras to sensors

* Fix: fetch init

* Fix: fetch action space normed to -1 to 1

* Expand sensor api properly and refactor code to use it (#201)

* new tests, mark gpu tests, rework sensor api

* renaming

* new test

* code clean up

* docs

* Update sapien_env.py

* refator more code. Observation processing code only delete sensor data that they replace now.

* bug fix with human renderer

* fetch torso link

* Multirobot support + basic tasks (#202)

* multi robot support

* work

* Update two_robot_stack_cube.py

* finish task obs and reward

* reward, fixes

* bug fixes

* refinement

* Update pick_cube.py

* better camera angles

* fix int issue

* work

* Update two_robot_stack_cube.py

* work

* robot support typing

* better debugging camera

* Update two_robot_stack_cube.py

* work

* Update ppo.py

* add multi agent task tests

* bug fix with SUPPORTED_ROBOTS attribute

* Save benchmark data to csv (#203)

* profiling code to csv

* Update benchmark_gpu_sim.py

* trivial pr: `cameras` render mode (#204)

* Trivial: add cameras, renders both human cameras and agent sensors

* Fix: cpu inverted colors bug

* Remove cameras render mode

* Reset by index (#205)

* support partial resets and add test

* adhere to gymnasium

* support fail and success terminations and update docs

* work

* Update link.py

* Settable default scene/memory configs  + attempt at legged tasks + bug fixes (#206)

* basic locomotion robot

* work

* bug fixes

* work

* work

* Update articulation.py

* bug fixes

* tuned sim configs for some tasks

* tuned scene configs for more tasks

* work

* Update benchmark_gpu_sim.py

* Update sapien_env.py

* bug fix with controller not resetting after each env reset, affecting e.g. joint delta pos controllers (#207)

* fix controller not resetting to a initial state when env.reset is called...

* Update pd_joint_pos.py

* simplify code

* fixes

* use a lower memory configuration for all gpu sim tests

* reset agent before episode initialization in case episode initialization will set other qpos/qvel/qf values

* Update minimal_template.py

* fetch reachable dist

* update pick cube mp solution

* work

* init code

* Update interactive_teleop.py

* fix rt rendering

* Fixed bug for resetting elapsed steps (#211)

* fix some bugs with interactive panda tele-op and recording epsiodes and state get/set (#210)

* fix state setting.

* Update record.py

* work

* Update record.py

* wip

* buyg fixes and work

* bug fixes

* bug fixes

* work

* Update interactive_teleop.py

* Update pick_single_ycb.py

* reduce verbosity

* add batched timelimit wrapper only for gpu sim envs. Otherwise use gymnasium CPU one.

* Update registration.py

* use make_vec api? and avoid timelimit wrapper type issues

* bug fixes

* fix tests

* Update test_gpu_envs.py

* bug fixes

* Update ppo.py

* bug fixes

* fix bug where gymnasium vecenv wrapper would mess up success indicators and now gymnasium vecenv wrapper will auto find max episode steps value

* Fix: clone() on int in cpu sim

* Net force (#213)

* new package

* add net force tensor for a body

* net forces for multiple links on articulation

* work

* Update README.md

* Update xmate3.py

* update sapien version

* bug fixes with gpu ppo + partial resets (#215)

* partial reset + rookie implementations

* Update ppo.py

* Update README.md

* New task: DClaw Valve Rotating (#214)

* add: add dclaw rotating task

* ref: resolve todo

* fix: fix partial reset bug and make the environment much simpler for level 0

* work (#216)

* Fix: update render_human camera pos each render (e.g. when mounted to moving object)

* Baselines diffusion policy (#196)

* init diff policy baseline

* added training script and readme

* Finished diffusion policy baseline

* corrected jupyter notebook

* formatted notebook

* lowercase

---------

Co-authored-by: Stone Tao <[email protected]>

* fix bug where viewer camera was fixed in place to a sensor

* fix bug where failure is not used for termination

* bug fix with adding mounted cameras

* GPU Simulated Scenes, New more organized asset locations (#217)

* Fix: some scene manip env issues

* Better fetch cameras

* Fix: disable collisions only on fetch wheels

* Fix: fetch grapsing retval

* Progress: updates to scene-related classes/envs

* Fix: ai2thor scene builder set poses in initialize()

* Fix: ai2thor fetch scene builder ground collisions

* Fix: ai2 sb don't reconfigure by default

* Fix: sb load_actors instead of load_agents

* Trivial: add fetch resting qpos as attr

* Fix: pick_object scene pose setting

* Fix: renderer follows camera

* Fix: options is None

* Fix: fetch body delta pos controller

* Fix: record wrapper options=None by default

* Progress: support for loading navigable positions

* Progress: update base scene builder w/ DexM3 version

* Trivial: add arm camera, more "working" coacd objects

* minor ai2 sb changes

* Trivial: port over everything needed for scene manip testing

* bigger place reward

* Fix: keep x/y/zrot qvel in obs

* Try tune reward

* scale place reward more

* Try lessen place rew

* work

* work

* add bug fix

* Create scene_gpu.py

* Update sequential_task.py

* temp code

* make more objects static

* base empty scene manipulation env

* work

* work

* tests

* work

* more work

* modify benchmark code to support cpu and gpu sim tests

* add lighting?

* work

* articulations

* work

* Update scene_builder.py

* new dataset location

* fix for new dataset paths for some tasks, remove old tasks

* remove scene tasks as they are not done

* work

* work

* fixes

* change some defaults

---------

Co-authored-by: arth-shukla <[email protected]>

* Fix actor show/hide visual gpu sim (#221)

* Fix: actor show/hide visual not working on gpu sim

* Fix: by default hidden poses hidden

* bug fix

* Fix: setter and getter for actor.pose returns before_hide_pose if hidden, Fix: render human also sets _hidden_objs to hidden when doen rendering

* Unit test + fix for hide/show visual

---------

Co-authored-by: StoneT2000 <[email protected]>

* New docs (#220)

* work

* Update setup.py

* lots of docs

* work

* new theme and work

* readthedocs

* work

* bug fix

* fix

* work

* new task: in hand rotating in_hand_task (#219)

* fix bug where articulation get net contact forces was oriented wrong despite having right shape

* Fix: fetch in TableSceneBuilder

* New trajectory format and bug fixes (#222)

* work

* work?

* bug fixes and support new state dict format, reduce robot name verbosity

* Update pick_cube.py

* Update test_gpu_envs.py

* Update test_gpu_envs.py

* bug fix with setting before hide poses

* bug fixes

* work

* work

* fix a bunch of bugs

* fix batching for scalar values

* Update benchmark_maniskill.py

* bug fix

* add more useful print for ppo

* fix bug where controller reset did nothandle partial reset correctly and new tests

* bug fixes

* bug fix with set state dict where merged actor didnt have the right new name and other bugs

* bug fix to handle both single and multiple envs

* bug fixes with formatting

* Update record.py

* sapien upgrade

* Update sapien_utils.py

* work

* fix default value of gravity issue caused by newer python verisons

* Robot and scene builder registration and all env testing and temporarily removing old envs (#224)

* work

* unregister envs that are not meant to be run by themselves

* bug fixes

* bug fixes

* Update record.py

* Update README.md

* remove old code, register another scene

* typings

* make scene builder api consistent

* Update table_scene_builder.py

* Packaging and import fixing (#225)

* add lots of init py files

* new imports 1

* more

* work

* work

* work

* fixes

* Update setup.py

* remove circular import errors?

* support a default sim configuration choice

* use dacite package to fix nested dataclasses and typecheck the sim configs

* Update sapien_env.py

* More ms3 docs (#227)

* use shared version in docs and pip

* work

* support upload videos in docs

* work

* Update .gitignore

* docs

* Update teleoperation.md

* work

* work

* docs, move some code around

* Update quickstart.md

* some benchmarking results

* new theme with better github support

* examples

* Update teleoperation.md

* docs

* work

* Update custom_tasks.md

* work

* Update sapien_env.py

* work

* more docs

* work

* fix rtd

* Update conf.py

* temp fix for videos on rtc

* New packaging (#228)

* work

* www

* updates

* Update setup.py

* renaming a lot

* work

* Update publish-to-pypi.yml

* Bug fixes releases (#229)

* work

* more docs, change far for cameras

* Fix: circular import from table scene builder

* Mp work (#230)

* motion planning demos

* work

* Update motionplanning.md

* work

* work

* work

* examples

* Update interactive_panda.py

* remove old TODOs

* Update setup.py

* Update types.py

* docs

* Datasets+replay fix gpu camera matrices (#231)

* Update index.md

* raise user warning about registering with types

* Update README.md

* Update README.md

* disable target ee control mode due to bug atm, fix up replay trajectories

* clean up code

* www

* Update observations.py

* rgb option and work and bug fixes

* lots of bug fixes

* docs, small optimization to cache matrices

* work

* dataset documentation and some refactoring

* nice documentation and figures and bug fix

* Update panda.py

* more documentation on advanced featureas

* more docs

* typos

* more typo fixes

* code refactoring to simplify maniskill lifecycle (#232)

* refactor: reconfigure -> _reconfigure. Add _after_reconfigure() function for use cases like mobile manip. pick task

* refactor: _load_actors -> _load_scene. Deprecate _load_articulations in favor of user self organization in their code

* refactor _setup_lighting -> _load_lighting. better docs

* Update sapien_env.py

* docs

* multiple refactors (#233)

* refactoring

* bug fixes

* refactor: _register_* to _sensor_configs property

* refactoring default sim cfg

* consistency work

* consistent namings

* bump and include .stl files for mplib

* bug fixes

* Update setup.py

* Pull cube and Lift peg tasks with demo videos (#234)

* pull cube and lift peg tasks

* pull cube and lift peg tasks

* More docs (#235)

* Update README.md

* refactoring

* refactor the new tasks

* fix tasks, add more docs on tasks

* new diagrams and work

* temporarily remove not up to date code

* Update installation.md

* Update Dockerfile

* fix typos in docs

* new sapien package without mem leak

* More demos more docs (#236)

* Create contact_pair_impulse_test.py

* fixes

* Update setup.py

* work

* work

* Update download_asset.py

* bug fix with table scene builder

* Update demo_vis_pcd.py

* fix bug where deepcopy will track internal dict references that broke parse urdf config

* Add back some old tasks and bug fixes (#237)

* bug fix, upgrade realsense panda arm with actual real sense camera mesh

* work

* bug fix for episode recording

* bug fixes, reward mode none supported

* version bump

fixes:
- extrinsic camera matrix was None, broke some visual observations
-  improved panda + camera model
- bug where gpu sim used with 1 parallel env has broken visual data processing code
- bug where save video did not save separate videos on CPU sim.
changes:
- add back peg insertion side task (but without dense reward as its not easy to batch)

* Update observations.py

* Update installation.md

* fix demo name

* AssemblingKits-v1 on gpu, update docs and more consistent video names (#239)

* work

* use scene_idxs as opposed to scene_mask for faster loading, for loops are too slow

* Update assembling_kits.py

* bug fixes

* work

* updated documentation on scene_idxs (faster than scene_masks)

* partially support mimic joints (#238)

* partially support mimic joints

* Update articulation_builder.py

---------

Co-authored-by: StoneT2000 <[email protected]>

* fix warning consistency

* camera randomization tutorial/vectorized camera poses and some refactoring (#240)

* vectorized camera poses and refactor camera config

* bug fixes

* fixes

* documentation

* Update domain_randomization.md

* Update domain_randomization.md

* better naming

* refactoring some code

* a

* Refactor scene mask to scene idxs (#242)

* move out scene masks in favor of scene idxs

* Update link.py

* Update custom_tasks_advanced.md

* bug fix where could not mount camera on actor and docs

* dev4 version bump + fix bug with human render camera global pose

* typo

* work

* fix typos

* Refactor to provide options in load and initialize related functions (#243)

* work

* Update custom_tasks.md

* update documentation for new features, evaluate and get obs extra are optional now

* Added ppo partial reset arg (#241)

* Added ppo-partial reset arg

* Changed eval envs to also have a partial reset arg

* Fixed bug

* require actors/articulations built to have unique names

* Task tuning (#244)

* tuning

* Update README.md

* Update assembling_kits.py

* Update ppo.py

* update docs to clarify the gymnasium wrapper implementation reasons

* Update setup.py

* fix bug with pcd demo

* Fix: replicacad static obj poses

* Fix: replicacad pose issues

* Use fast kinematics library now for IK

* moving demos to hugging face and small change in demo storage structure.

* Created using Colaboratory

* Update setup.py

* move tutorial to right location

* fix demo manual control, hardcoded for fetch for now, and fix render functions returning batched images when there is only one environment

* support (batched) intrinsics in camera config and bug fix with demo manual control

* bug fix with ordering in dataclass

* set some defaults for camera cfg and fix ordering bug for some tasks

* Update setup.py

* Update README.md

* bug fix with typings for python 3.11

* update docs

* Batched drives, hide not ready functions, improved typing of structs, some bug fixes for unregistered envs (#248)

* support using different drive mode in the joint position controller

* refactoring

* work

* w

* w

* fix typings

* w

* w

* version bump

* Created using Colaboratory

* move draft tutorial

* docs on how to contribute tasks (#250)

* add

* w

* docs

* work

* work

* Rotate Cube Task using Trifingerpro robot (#249)

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* Fix pd ee pose for non panda robots, name refactors to be more explicit, and links have references to their joints (#253)

* save joint reference in links

* some code refactor, gpu sim ee control for other robots should be working now

* Pick clutter task (GPU) (#254)

* init

* Update pick_clutter_ycb.py

* fix bug with reset mask

* support more indexing options for Pose, actor_views and articulation_views, pick clutter task work, bug fix with pd_ee_pose controller

* return in reset info whether we reconfigure, necessary to know in order to determine when to delete trajectory buffer in record wrapper

* Update actor.py

* Update sapien_env.py

* Update pick_clutter_ycb.py

* docs

* Update pick_clutter_ycb.py

* fix bug with rotate cube task requiring pytorch kinematics library

* Update articulation.py

* Fix doc typos and refactor some old links/names (#255)

* updates to docs

* refactorings

* remove old code and fix circular import bugs with register envs utility

* sapien.physx -> physx for consistency and fix typings

* support evaluation options for PPO baseline code, remove old videos, refactor force_use_gpu_sim to sim_backend, bug fix where seed was null in saved trajectory jsons

* improved docs w.r.t installation

* versioin bump

* Fix RotateCubeLevel1 Rotation Init Error (#256)

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* update rotate_cube v1

* Peg insertion side batched dense reward, simplify utilities code and refactoring (#259)

* init

* clean up utility functions, refactoring some out into new files

* merge conflicts, refactoring

* simplify imports

* refactorings

* Update sapien_utils.py

* modify tutorial tasks to always include the common utilities module

* Update sapien_utils.py

* fix circular import errors

* bug fix with index_dict_array, affecting record episode wrapper

* more flexible pose setting for merged actors/articulation views on CPU (#260)

* support setting pose on a view of actors in CPU sim, add device property to pose struct

* flexible pose setting for links as well

* Clamp and normalize reward of RotateCubeEnv (#261)

* support controllers configuring balance_passive_force (#263)

* version bump

* typo fix in template robot file

* Fix memory leaks caused by bad cache for visual obs modes, fix printing of actors/articulations in pdb modes, clear sim state after reconfigures (#264)

* fix cpu sim mem leak with visual obs and constant reconfiguring

* more fixes

* remove old code

* Update mem_leak_test.py

* version bump

* Fix camera not accepting intrinsic argument, small refactor of add_camera API, and add peg insertion to test matrices (#267)

* work

* add peg insertion side to test matrices

* Update test_gpu_envs.py

* fix asset download for ReplicaCAD / hf repo datasets (to be moved in the future)

* Add segmentation data w/ docs + demos, fix replay trajectory test, change OrderedDict to dict in some places (#270)

* work

* fix replay trajectory tests to use new directory

* Update test_replay_trajectory.py

* Update test_replay_trajectory.py

* deprecate env.get_actors and env.get_articulations.

* demo code

* fix demo code

* Update observation.md

* Update sapien_env.py

* Update sapien_env.py

* version bump

* fix fast_kinematics version as latest one may be buggy as its in beta

* fix bug where extrinsic matrix was incorrectly cached when there is a mount

* Update render_camera.py

* add appropriate tests

* fix tests

* Fix: use physx.is_gpu_enabled() instead of self.num_envs > 1 (#272)

* MJCF Loader for SAPIEN/ManiSkill and example CartPole task from DM Control, New QoL features for joints (#273)

* move controller config setup after articulation is loaded for robots to give user access to active joints easily

* change fix_root_link to be a agent property

* work

* work

* fixes

* Update mjcf_loader.py

* work

* code cleanup, use joint pos correctly

* work

* fixes

* work

* a1 loading test

* Update _mjcf_loader.py

* support loading other objects in xml

* cartpole task implemented from xml

* cart pole task, fetch qpos by joint

* work

* docs

* fix controllers, use disable gravity to balance passive forces on CPU and GPU.

* Update sapien_env.py

* more runtime errors

* tuned ppo for cartpole

* some minor fixes

* cart pole video demo

* docs

* H1 robot (#275)

* work

* cleaner code

* init

* fix urdf mesh paths

* provide a typical "standing" keyframe

* fix a few files

* some useful scripts

* work

* new envs, simplified contact version of h1 robot

* work

* Tutorial on how to add robots (#276)

* work

* cleaner code

* work

* work

* Update custom_robots.md

* Update custom_robots.md

* Update controllers.md

* Code refactor for better naming (#277)

* default_sim_cfg -> default_sim_config to follow semantics of other code

* _sensor_configs->_default_sensor_configs, _human_render_camera_configs->_default_human_render_camera_configs

* remove _parsed

* remove OrderedDict in favor of dict and removing old code

* fixing up anymal and refactoring

* add friction to robot feet to let it stand easily, procedurally generated checkerboard

* Update ground.py

* tuning

* work

* Update anymal_c.py

* refactor

* update benchmarking code

* work

* tune joint limits for easy rl

* use simplified collision mesh

* work

* revert

* revert

* revert

* revert

* revert

* work

* Delete floor_tiles_06_2k.glb

---------

Co-authored-by: Arnav G <[email protected]>
Co-authored-by: Arnav G <[email protected]>
Co-authored-by: arth-shukla <[email protected]>
Co-authored-by: itsygao <[email protected]>
Co-authored-by: ygaoproj <[email protected]>
Co-authored-by: Yuzhe Qin <[email protected]>
Co-authored-by: smtrived <[email protected]>
Co-authored-by: Fanbo Xiang <[email protected]>
Co-authored-by: Chen Bao <[email protected]>
Co-authored-by: Chen Bao <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants