Added adhesion actuators mimicking vacuum grippers and adhesive biomechanical appendages.
Added related example model and video.
Added mj_jacSubtreeCom
for computing the translational Jacobian of the center-of-mass of a subtree.
Added torquescale
and anchor
attributes to weld
constraints. torquescale
sets the torque-to-force ratio exerted by the constraint, anchor
sets the point at which the weld wrench is applied. See weld for more details.
Increased mjNEQDATA
, the row length of equality constraint parameters in mjModel.eq_data
, from 7 to 11.
Added visualisation of anchor points for both :el:connect
and :el:weld
constraints (activated by the 'N' key in simulate
).
Added weld.xml showing different uses of new weld attributes.
Cartesian 6D end-effector control is now possible by adding a reference site to actuators with site
transmission. See description of new refsite
attribute in the actuator documentation and refsite.xml example model. Video
Added autolimits
compiler option. If true
, joint and tendon limited
attributes and actuator ctrllimited
, forcelimited
and actlimited
attributes will automatically be set to true
if the corresponding range is defined and false
otherwise.
If autolimits="false"
(the default) models where a range
attribute is specified without the limited
attribute will fail to compile. A future release will change the default of autolimits
to true
, and this compilation error allows users to catch this future change of behavior.
This is a breaking change. In models where a range was defined but limited
was unspecified, explicitly set limited to false
or remove the range to maintain the current behavior of your model.
Added moment of inertia computation for all well-formed meshes. This option is activated by setting the compiler flag exactmeshinertia
to true
(defaults to false
). This default may change in the future.
Added parameter shellinertia
to geom
, for locating the inferred inertia on the boundary (shell). Currently only meshes are supported.
For meshes from which volumetric inertia is inferred, raise error if the orientation of mesh faces is not consistent. If this occurs, fix the mesh in e.g., MeshLab or Blender.
Added catenary visualisation for hanging tendons. The model seen in the video can be found here.
Added azimuth
and elevation
attributes to visual/global, defining the initial orientation of the free camera at model load time.
Added mjv_defaultFreeCamera
which sets the default free camera, respecting the above attributes.
simulate
now supports taking a screenshot via a button in the File section or via Ctrl-P
.
Improvements to time synchronisation in simulate
, in particular report actual real-time factor if different from requested factor (if e.g., the timestep is so small that simulation cannot keep up with real-time).
Added a disable flag for sensors.
mju_mulQuat
and mju_mulQuatAxis
support in place computation. For example mju_mulQuat(a, a, b);
sets the quaternion a
equal to the product of a
and b
.
Added sensor matrices to mjd_transitionFD
(note this is an API change).