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

Fetch mobile #188

Merged
merged 10 commits into from
Jan 22, 2024
Merged

Fetch mobile #188

merged 10 commits into from
Jan 22, 2024

Conversation

arth-shukla
Copy link
Collaborator

@arth-shukla arth-shukla commented Jan 22, 2024


ms2 mobile base integration + other fixes


  • fetch mobile base
  • fixed to grasping code
  • utils, controllers, sim outputs, warnings, etc
  • joint base vel controller fixes are cpu-sim specific and need to be updated with gpu sim support in the future



ms3 commit text


DRAFT awaiting testing w/ sapien version from main branch

below are details on the testing done on the fetch robot to make sure it still works properly after the hacky mobile joints are added


stationary base tests

in the charts below, darker colors are stationary torso and lighter colors are mobile torso

baseline

this is the same as the previous pr (no extra joints, no collision group changes)
baseline

joints added as type="fixed", ground collision group 3rd item set to 1 << 37

one seed for mobile torso fails, the rest succeed
fixed-joint_floor-collision

fixed joints with 0 mass/inertia, set third ground collision group

all seeds work
no-mass-inertia_fixed-joint_floor-collision


mobile base tests

these all have floor collisions off with the extra prismatic/continuous joints added. "stationary" means the action is masked to remove control over that part of the robot

red: stationary torso, stationary base
blue: mobile torso, stationary base
green: mobile torso, mobile base

mobile-base-eval

the additional mobility results in some seeds seeds with more 'failure'/slow convergence

examining vids

stationary torso, stationary base

Success Failure
https://github.com/haosulab/ManiSkill3/assets/44527268/f2fc142f-e926-42bf-95f2-a5dd09ebe221 https://github.com/haosulab/ManiSkill3/assets/44527268/e5629f3e-ce7e-4618-947a-794714f8e49a

same as before, fails when controller reaches singularity

mobile torso, stationary base

Success Failure
https://github.com/haosulab/ManiSkill3/assets/44527268/b3006022-ca97-4341-b91c-90f017f932f4 https://github.com/haosulab/ManiSkill3/assets/44527268/80903507-b17b-44ae-9989-f6eeb510a62f

success: same as before

failure: 1 seed which does not reach success, seemingly uses too-broad torso movements

mobile torso, mobile base

Success Failure
https://github.com/haosulab/ManiSkill3/assets/44527268/eabadb6a-6bd9-452a-9e36-ec42ff94e25a https://github.com/haosulab/ManiSkill3/assets/44527268/445dda9c-e3b3-4a4c-9775-fa5066da56fd

success: note that, despite using end-effector delta pos, the robot uses its mobile base to achieve a different pose than normal and reach the goal

failure: 2 seeds with slower convergence, seemingly because they try to move the block by leveraging arm against table. one way to fix is to add collision penalty to reward

next exps

  1. collision penalty to avoid leveraging arm against table
  2. test mobile manip spawning on different parts of table
  3. overfit to hssd object, then run clustering to finetune/train new policies for each object

@arth-shukla arth-shukla added bug Something isn't working enhancement New feature or request labels Jan 22, 2024
@arth-shukla arth-shukla self-assigned this Jan 22, 2024
@@ -18,14 +19,21 @@ def _initialize_action_space(self):
def set_action(self, action: np.ndarray):
action = self._preprocess_action(action)

# TODO (arth): add support for batched qpos and gpu sim
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good that you added the todos, otherwise we will all forget this XD

@StoneT2000 StoneT2000 merged commit 6dde6eb into dev Jan 22, 2024
1 check passed
@StoneT2000 StoneT2000 deleted the fetch_mobile branch January 22, 2024 23:59
@arth-shukla arth-shukla restored the fetch_mobile branch January 23, 2024 07:41
StoneT2000 pushed a commit to itsygao/ManiSkill2 that referenced this pull request Jan 30, 2024
* 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
@StoneT2000 StoneT2000 deleted the fetch_mobile branch March 7, 2024 08:23
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
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants