
    niX                     b    S r SSKrSSKrSSKJr  SrSrSrSr	Sr
 " S	 S
\R                  5      rg)z6Randomize the minitaur_gym_env when reset() is called.    N   )env_randomizer_base)gɿg?)g-@g0@)r   g{Gz?)g?g      ?c                   6    \ rS rSrSr\\\\4S jr	S r
S rSrg)MinitaurEnvRandomizer   zAA randomizer that change the minitaur_gym_env during every reset.c                 4    Xl         X l        X0l        X@l        g N)_minitaur_base_mass_err_range_minitaur_leg_mass_err_range_battery_voltage_range_motor_viscous_damping_range)selfminitaur_base_mass_err_rangeminitaur_leg_mass_err_rangebattery_voltage_rangemotor_viscous_damping_ranges        f/home/james-whalen/.local/lib/python3.13/site-packages/pybullet_envs/bullet/minitaur_env_randomizer.py__init__MinitaurEnvRandomizer.__init__   s    
 *F&(C%"7(C%    c                 :    U R                  UR                  5        g r	   )_randomize_minitaurminitaur)r   envs     r   randomize_env#MinitaurEnvRandomizer.randomize_env   s    S\\*r   c                    UR                  5       n[        R                  " USU R                  S   -   -  USU R                  S   -   -  5      nUR	                  U5        UR                  5       n[        R                  " U5      SU R                  S   -   -  n[        R                  " U5      SU R                  S   -   -  n[        [        U5      5       Vs/ s H'  n[        R                  R                  XW   Xg   5      PM)     nnUR                  U5        [        R                  " [        S   [        S   5      n	UR                  U	5        [        R                  " [        S   [        S   5      n
UR                  U
5        [        R                  " [         S   [         S   5      nUR#                  U5        gs  snf )a4  Randomize various physical properties of minitaur.

It randomizes the mass/inertia of the base, mass/inertia of the legs,
friction coefficient of the feet, the battery voltage and the motor damping
at each reset() of the environment.

Args:
  minitaur: the Minitaur instance in minitaur_gym_env environment.
g      ?r   r   N)GetBaseMassFromURDFrandomuniformr
   SetBaseMassGetLegMassesFromURDFnparrayr   rangelenSetLegMassesBATTERY_VOLTAGE_RANGESetBatteryVoltageMOTOR_VISCOUS_DAMPING_RANGESetMotorViscousDampingMINITAUR_LEG_FRICTIONSetFootFriction)r   r   	base_massrandomized_base_mass
leg_massesleg_masses_lower_boundleg_masses_upper_boundirandomized_leg_massesrandomized_battery_voltagerandomized_motor_dampingrandomized_foot_frictions               r   r   )MinitaurEnvRandomizer._randomize_minitaur   s    ,,.I!>>S4==a@@AS4==a@@AC -...0JXXj1S4;\;\]^;_5_`XXj1S4;\;\]^;_5_` s:''A 			035K5NO'   /0!'0Ea0HJ_`aJb!c9:%~~.I!.L.I!.L N##$<=%~~.CA.FH]^_H`a56s   .F;)r   r
   r   r   N)__name__
__module____qualname____firstlineno____doc__MINITAUR_BASE_MASS_ERROR_RANGEMINITAUR_LEG_MASS_ERROR_RANGEr(   r*   r   r   r   __static_attributes__ r   r   r   r      s$    I -K+H%:+F	D+!7r   r   )r=   r   numpyr#    r   r>   r?   r(   r*   r,   EnvRandomizerBaser   rA   r   r   <module>rE      sD    <   ! "-  + $ ' " 17/AA 17r   