in mujoco_py/builder.py [0:0]
def user_warning_raise_exception(warn_bytes):
'''
User-defined warning callback, which is called by mujoco on warnings.
Here we have two primary jobs:
- Detect known warnings and suggest fixes (with code)
- Decide whether to raise an Exception and raise if needed
More cases should be added as we find new failures.
'''
# TODO: look through test output to see MuJoCo warnings to catch
# and recommend. Also fix those tests
warn = warn_bytes.decode() # Convert bytes to string
if 'Pre-allocated constraint buffer is full' in warn:
raise MujocoException(warn + 'Increase njmax in mujoco XML')
if 'Pre-allocated contact buffer is full' in warn:
raise MujocoException(warn + 'Increase njconmax in mujoco XML')
# This unhelpfully-named warning is what you get if you feed MuJoCo NaNs
if 'Unknown warning type' in warn:
raise MujocoException(warn + 'Check for NaN in simulation.')
raise MujocoException('Got MuJoCo Warning: {}'.format(warn))