-
Notifications
You must be signed in to change notification settings - Fork 27
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
Generic locomotion envs #206
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… to current time.
…thout being hacky nor code duplication.
…se for acrobot and cartpole envs. Remove unappropriate 'is_success' info in base env.
duburcqa
added a commit
that referenced
this pull request
Oct 11, 2020
* [Gym] Generic locomotion envs - PART I (#194) * [Viewer] Replace multi args "," delimiter by "|" to allow comma in path. Raise exception is * [Gym] Major rework to add base locomotion learning environments. * [Core] Implement methods to add and remove frames from the robot model. * [Core] Add 'mechanicalReduction' option to the motors. * [Core] Add support of mesh collisions using HPP-FCL. Migration to pinocchio/eigenpy v2.5.0. * [misc] Cleanup cmake config file to implement actual legacy mode for Ubuntu18. Update Ubuntu 18 easy install deps. * [misc] Add official support of Ubuntu 20. * [Core] Add support of body collision with the ground, but do NOT actually compute the forces. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * [Gym] Generic locomotion envs - PART II (#196) * [core] Expose collision model/data in Python. Fix mesh path at robot level instead of viewer. * [core] Make clear the difference between body collisions and contact frames. Implement actual force sensor. * [core] Fix collision computation. Add option for max collision contact points. * [core] Various minor improvements. Enable FCL convex hull computation. * [core] Implement collision body contact force. Use convex hull instead of the actual geometry for evaluating the collisions. * [misc] Fix compilation flags on windows. Update Pinocchio to the latest available release on Ubuntu 18 (same as 20). * [Viewer] Remove deprecation warning of Pinocchio. Do not try to load plane primitive associated with the ground. * [Viewer] Minor improvement of error handling. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * [Gym] Generic locomotion envs - PART III (#197) * [core] Add new 'successiveIterFailedMax' stepper option. * [core] Fix collision body contact force computation and primitive geometry support. Fix add frame. Fix generic robot envs. * [core] Improve mesh package support. Add meshPackageDirs optional argument to model.initialize method. * [core] Expose sensor data individually. Add sensor __repr__. Expose EngineMultiRobot systems vector in Python. Fix systemData returning unusable robot and controller. * [engine_async] Improve viewer backend management. * [unit_py] Rework the unit test in Python to reduce code duplication. Add dedicated box and sphere testing urdf with collision and visual. * [misc] Reduce static library compile size by removing debugging symbols. * [python/robot] Set controller and sensors update periods. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * [Gym] Generic locomotion envs - PART IV (#198) * [core] Add ControllerFunctor default value 'None' in Python. Take advantage of it for EngineAsync. * [python] Improve PEP8 compliance and typing. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * [Gym] Generic locomotion envs - PART V (#199) * [python] Remove Python2 support for Python bindings. * [core] Fix exception catching addCouplingForce. * [gym] Use typing. * [gym] Add generic locomotion env. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * [Gym] Generic locomotion envs - PART VI (#200) * [core] More specific Utilities error messages. * [core] Add support of collision with bodies associated with multiple geometries. * [misc] Multi-level data folder architecture. * [misc] Rename gym env_base.py in env_bases.py. * [python] Enable to specify collision bodies, contact points, and ground model in TOML config file. * [python] Add IMU sensor to root body by default systematically if no Gazebo IMU has been found. * [python] BaseJiminyEngine now creates a temporary toml file if not available. * [gym] Enable to refresh observation and action spaces separately. Enable to use custom PID gains. * [gym] Remove 'TorqueControl' from walker name since it is the default. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * [Gym] Generic locomotion envs - PART VII (#201) * [misc] Remove Python 2 compatibility code. * [core] Fix Model 'removeCollisionBodies' method. * [core] Fix support of multiple geometry by body for collision computation. * [core] Compute the centers of mass systematically. * [core] Check that the initial state is not out of bounds. * [core|gym] Properly handle step integration failure. * [gym] Fix 'done' flag handling in 'step' method. Remove 'engine' property to avoid redundancy. * [gym] Use sample_state to get initial height. * [gym] Fix PD Control env motor-to-encoder mapping. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * [Gym] Generic locomotion envs - PART VIII (#202) * [misc] Move meshes in subdirectories. * [core] Add support of 'continuous' joint type. * [core] Check that at least one geometry is associated with the bodies when adding collisions. * [core] Fix AddFrame to check not already exists, and update pinocchio data. * [core] Add optional parameter to ignore meshes when adding collision body. * [core] Fix support of mechanical reduction. * [python] Add support of encoders and motors of any 1-dof type. Better handling of default sensor and controller update period. * [python] Fix force sensor and collision guess if no gazebo plugin available. * [python] Improve handling of collision bodies by adding several fallback mechanisms. * [python] Make sure that up to 3 points are in contact, instead of being aligned with the closest contact point frame. * [python] Fix motor inertia and mechanical reduction not properly extracted from the URDF. * [gym] Apply ground offset at 'reset' instead of '_sample_state'. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * [Gym] Generic locomotion envs - PART IX (#203) * [misc] Update dependency versions. * [core] Minor rework for engine forward dynamics computation. * [python/dynamics] Fix dynamics quantities not properly initialized at engine reset. * [python/dynamics] Take into account collision body orientation for box primitive when computing freeflyer. * [python/robot] Automatically convert box primitive body collision in contact points for numerical robustness. * [python/robot] Improve default toml generation. * [python/Viewer] Fix play_trajectory 'wait_for_client' option not used. * [python/Viewer] Refactor Viewer to make it simpler and clearer. * [python/Viewer] Use typing everywhere in Viewer. * [gym] Enable to define custom neutral configuration. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * [Gym] Generic locomotion envs - PART X (#204) * [core] Fix various segfault in case of exceptions. More verbose error message when failing to load URDF model. * [core] Enable to postpone Controller def after engine init, and to change it between simu. * [python] Remove meshes and use primitives for toys models. * [python] Refactor of engine/simulator classes to be more versatile yet simpler. * [python/Viewer] More robust handling of meshcat comms in Jupyter. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * Generic locomotion envs (#206) * [python/simulator] Add 'plot' method to simulator to display simulation data up to current time. * [python/examples] Remove messy examples and fix the others. * [gym] Minor refactoring to enable getting normal env from goal env without being hacky nor code duplication. * [gym] Enable to set camera pose in env 'render' method. Remove 'is_success' info in base env. * [gym] Fix terminal reward computation. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * [core] Implement Lie-group based steppers. (#205) * [core] Implement custom steppers working in Lie group directly, for improved accuracy and performance. * [core] Add constraint for wheel rolling on flat ground. Co-authored-by: Matthieu Vigne <matthieu.vigne@wandercraft.eu> Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> * Bug fixes and stepper performance improvement. (#208) * [msic] Various bug fixes. * [misc] Enable Eigen 3.3 for any plateform since it is no longer conflicting with Boost. * [core] Use enable_if_t from STL C++14. * [core] Rework Lie Algebra implementation for efficiency. * [core] Stepper performance improvement by using buffers. * [misc] Fix 'set-env' github CI deprecations. Co-authored-by: Alexis Duburcq <alexis.duburcq@wandercraft.eu> Co-authored-by: Matthieu Vigne <matthieu.vigne@wandercraft.eu>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.