Jiminy-py

Latest version: v1.8.6

Safety actively analyzes 638646 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 10 of 18

1.6.4

This release improves support of closed kinematic chains by adding analytical distance constraint between frames. It illustrates this new feature, Cassie robot learning environment is now provided. Apart from that, a few minor bug fixes mainly related to the viewer has been fixed, and overall performance has been slightly improved.

<p align="center"><img src="https://raw.github.com/duburcqa/jiminy/readme/cassie.png" width="350"></p>

New features

* [core] Add DistanceConstraint to enforce constant distance between frames.
* [gym/envs] Add Cassie robot example (Closed-kinematic chains).

Improvements

* [core] Improve performance by avoiding unnecessary copies and redundant computations.
* [python/dynamics] Add some RPY converters.
* [python/dynamics] Add options to use theoretical model when computing freeflyer with fixed frame.
* [python/robot] Add convenience property to get robot name.
* [python/simulator] Add 'command' tab to 'plot' method.
* [python/simulator|gym/common/envs] Replace attribute '_is_viewer_available' by public property to avoid redundancy.
* [gym/common/envs] Do not extract log if no terminal reward.
* [gym/examples/rllib] Do not return 'log_root_dir' at init because it is redundant.
* [gym/examples/rllib] Add option to record video periodically during training.

Bug fixes

* [core] Make sure application time of impulse forces are positive (not strictly).
* [python/viewer] Fix terminate viewer backend process when closing.
* [python/viewer] Fix error when closing viewer without waiting for init to finish.
* [python/viewer/meshcat] Increasing timeout to avoid false negative on low-end configurations.
* [python/viewer|gym/common/envs] Make sure viewer is properly closed after simulation replay whenever requested.
* [gym/common/envs] 'compute_command' method no longer update the internal action buffer.
* [gym/examples] Add missing examples tools.
* [misc] Fix wheel generation process corrupting png files.

Miscellaneous

* [core] Move Gauss-Siedel LCP solver in dedicate folder since several may be implemented.
* [core/python] Define meaningful argument names for constructors.
* [misc] Allow executing 'easy_install_deps_ubuntu.sh' multiple times without significant side effects.
* [misc] Make sure *.png files are processed by binary files by git.
* [misc] Increase Pagefile on Windows CI to avoid unit test failure when loading Panda3d.

1.6.3

This release fixes the last remaining blocking issues with Panda3d in order to make it the default viewer backend. So, starting from this point, it will be the default backend, useless for interactive environment like Jupyter, for which Meshcat is still the only appropriate alternative. In addition URDF and meshes associated with Atlas have been updated to make it look better:

<p align="center"><img src="https://user-images.githubusercontent.com/17752950/110535380-7c57d680-8120-11eb-892f-57ff80e401f5.png" width="350"></p>

Improvements

* [jiminy/viewer] Fallback to software rendering with panda3d if necessary.
* [jiminy/viewer] Limit Panda3d framerate to 30FPS to avoid consuming too much resources.
* [jiminy/viewer] Do not shrink legend automatically and slightly increase size on Panda3d.
* [jiminy/viewer] Zoom out default relative camera pose for travelling.
* [gym/common/envs] Automatically update rendering after 'reset' if available.
* [misc] Enable 'panda3d' by default instead of 'meshcat'.

Bug fixes

* [misc] Fix viewer replay on Windows by not removing 'Pinocchio::interpolate' from build anymore.
* [jiminy/simulator] Fix viewer not opening graphical window after closing it once.
* [jiminy/viewer] Fix widgets positioning and scaling on Panda3d.
* [jiminy/viewer] Improve exception handling if window closed during replay to avoid deadlock.
* [jiminy/viewer] Fix panda3d offscreen rendering not always updated before capturing frame.
* [jiminy/viewer] Fix panda3d mesh loader 'assimp' specific path formatting on Windows.
* [gym/common/envs] Fix keyword arguments forwarding for WalkerEnvs class.

Miscellaneous

* [core] Minor improvement of robot weak_ptr management for sensors/motors.
* [jiminy/simulator] Rename 'disable_flexiblity_data' or 'enable_flexiblity_data' for clarity.
* [gym/examples] Rllib 'test' method now returns the environment used for testing.
* [misc] Globally less restrictive Python requirements by using different specifications depending on the platform.
* [misc] Update atlas URDF and meshes to improve rendering.

1.6.2

Panda3d rendering backend support has been greatly improved. It should now works out-of-the-box on any hardware and platform. Meshcat-exclusive features has been ported to Panda3D (watermark and legend), and new Panda3D-exclusive simulation time clock is now available! The recording speed is much faster than meshcat (faster than recording duration at 30FPS and 1000x1000 resolution for 'mp4' format) and supports offscreen rendering without X-server. In addition, Python3.9 pre-built wheels are now provided on any platform. Finally, internal time steps management issues have been fixed, most affecting fixed timestep steppers.

New features

* [jiminy/viewer] Add support of watermark for panda3d.
* [jiminy/viewer] Add support of legend and watermark at Viewer level for Meshcat and Panda3d.
* [jiminy/viewer] Add option to enable clock during replay and recording using panda3d backend.

Improvements

* [core] Increase maximum simulation timestep for RL requirement.
* [jiminy/viewer] Do not open graphical window if possible by default when video recording is requested.
* [jiminy/viewer] Convert Python location meshcat recorder import warning into exception only raised at instantiation.
* [jiminy/viewer] Significant improvement of video recording speed for Panda3D. Record in .webm (slow) or .mp4 (6x faster).
* [gym/common/envs] Make sure the initial posture is close to neutral yet always valid.

Bug fixes

* [core] Fix wrong internal stepper timestep if fixed.
* [jiminy/viewer] Fix meshcat `wait` doing nothing.
* [jiminy/viewer] Fix panda3d black-screen issues.
* [jiminy/viewer] Fix support of Windows 10 for Panda3d backend.
* [gym/examples] Fix Rllib tools for env without reward threshold.

Miscellaneous

* [jiminy/viewer] Make sure only one graphical window can be opened locally.
* [misc] Use same steppers and timesteps than official Classic Control learning environment whenever possible.
* [misc] Remove 'jiminy' prefix from learning envs register id since it is redundant with namespace.
* [misc] Add wheels for Python3.9. From now on, only many2014 wheels will be provided instead of manylinux2010.

1.6.1

This release introduces first Mujoco-like locomotion learning environment in Jiminy [Ant](https://gym.openai.com/envs/Ant-v2/). An example script successfully training it using TD3 algorithm in Rllib is provided. In addition, several bugs have been addressed, mainly affecting video recording.

Improvements

* [jiminy/simulator] Allow chaining rendering methods.
* [gym/common/utils] Add full support of 'gym.spaces.Tuple'.
* [gym/common/envs] Fix 'render' method not call by env before replaying.
* [gym/common/envs] Enable traveling by default if robot has freeflyer.
* [gym/envs] Add mujoco-like Ant learning environment.

Bug fixes

* [core] Fix 'interpolate' utility.
* [jiminy/viewer] Fix traveling.
* [gym/common/envs] Clip returned observation systematically to avoid out-of-bounds errors.

Miscellaneous

* [gym/toolbox] Consistent addon package hierarchy.
* [gym/example] Refactor examples folder architecture to be easier to extend.
* [gym/example] More generic tools for Rllib. Add Ant TD3 Rllib example.
* [misc] Minor rework of acrobot and cartpole toy models.

1.6.0

This release introduces impulse-like contact model, which has became very popular since the last few years. In broad terms, it maximizes the energy dissipation resulting from contact with the ground, in such a way that the position of the contact points is critically damped with predefined natural frequency (corresponding to solving a LCP internally, see Mujoco [documentation](http://www.mujoco.org/book/computation.html) and [paper](https://homes.cs.washington.edu/~todorov/papers/TodorovICRA14.pdf) for reference). Even though it is not a phenomenological model, it features many very interesting properties, among which allowing very large fixed integration timestep (up to 10ms suing Runge Kutta 4), and smoothing ground reaction forces. Those properties are not essential in robotics to design controllers using classical control theory, but it turns out to be very beneficial when it comes to reinforcement learning, presumably because it makes the state-action mapping much more regular, enabling to learn control policies for complex very dynamic locomotion tasks. Learning examples and tutorials are coming !

In addition, the spring-damper contact model has been greatly simplified to use standard coulomb friction model, and a few significant bugs have been addressed.

New features

* [core] Add new impulse-like contact model.

Improvements

* [core] Check if initial configuration is valid at float precision instead of double then normalized to avoid casting issue in Python.
* [core] Change contacts/bounds spring-damper model to clamp the whole force rather than sole velocity-related component.
* [core] Remove stiction from spring-damper model.
* [python/simulator] Do not fill progress bar if aborted.
* [python/simulator/plot] Add parameter to disable plotting flexibilities. Automatically adjust layout.
* [python/viewer] Add option to only replay specific time interval. Enable to specify unique xyz_offset for replay.

Bug fixes

* [core] Fix inertia bias returning improper matrix.
* [gym/common/envs] Enforce deepcopy of observation and information before returning it to avoid any issue with replay buffer.

Miscellaneous

* [core] Add proper constraints holder to ease implementation of impulse contact model.
* [core] Rename Explicit Euler in Euler Explicit for consistency with Runge Kutta steppers.
* [core] Compute FixedFrameConstraint jacobian and drift LOCAL_WORLD_ALIGNED. Add Baumgarte stabilization.

1.5.9

This release brings minor performance improvement. It is mainly intended to improvement overall code quality and consistency with standard naming conventions (essentially Mujoco terminology). A convenience tool to interpolate trajectories in Lie group space has also been added.

New features

* [core|python/viewer] Provide generic interpolation method for configuration evolution over time. Use it in Python viewer.

Improvements

* [core] Compute subtree coms by default.
* [core] Do not compute 'oMf' for 'JOINT' and 'BODY' frames but rather copy data from 'oMi' and 'oMf'.
* [core] Improvement breakpoint management to avoid skipping controller/sensor updates.
* [core] Return static variables for Robot 'getControlLimit' and 'getArmatures' to avoid memory allocations.
* [core] Set 'command' and 'u_custom' to zero automatically before calling callbacks.
* [core] Improve vector 'clamp' utility to avoid memory allocation.
* [core/python] Make sure registered variables vector is 1D.
* [core|python] Add option to monitor motor efforts and plot them by default instead of command.
* [python/robot] Enable setting options only partially.
* [python/dynamics] Add optional flag to update collisions. Fix com jacobian not computed even if requested.
* [python/simulator] Do not forbid to render system at if no simulation is running.
* [gym/common] Ensure float64 action buffer for compatibility with register_variable telemetry.
* [gym/common/envs] Increment 'num_steps' only at the end of successful step, not right before integration.
* [gym/common/envs] Set robot in neutral configuration at init.

Bug fixes

* [core] Fix edge case in controller breakpoints management.
* [gym/common/envs] Fix edge case for robot without sensors.
* [gym/common/envs] Do not enforce position/velocity/effort bounds at _setup to avoid inconsistent observation/action spaces bounds.

Miscellaneous

* [misc] Move to C++17 for dependencies.
* [core] Rename 'rotorInertia' in 'armature' to be consistent with mujoco and clearer that it is joint side.
* [core] Rename 'EffortLimit' in 'ControlLimit' to avoid redundancy with pinocchio::Data and explicit it is motor-side.
* [core] Rename 'ControlLimit' in 'CommandLimit' for consistency.
* [core] Rename 'u_command' in 'command' to clarify it does not have to be an effort.
* [core] Add dedicated 'u_custom' field for controller's internal dynamics.
* [core] Replace 'u' with more specific variable name when possible.
* [core] Split evaluation of custom internal dynamics from position/velocity bounds and flexibility dynamics.

Page 10 of 18

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.