
    h                     j    S /r SSKrSSKJr  SSKJr  SSKJr  SS0r	 " S S	\\R                  5      rg)
zRushiv Arora    N)utils)	MujocoEnv)Boxdistanceg      @c                   L    \ rS rSr/ SQSS.r    SS jrS rS rS rS	 r	S
r
g)HalfCheetahEnv   )human	rgb_arraydepth_array
rgbd_tuple   )render_modes
render_fpsc                    [         R                  R                  " U UUUU40 UD6  Xl        X l        X0l        UU l        U(       a8  [        [        R                  * [        R                  S[        R                  S9nO7[        [        R                  * [        R                  S[        R                  S9n[        R                  " U SS4U[        S.UD6  g )N)   )lowhighshapedtype)   zhalf_cheetah.xml   )observation_spacedefault_camera_config)r   EzPickle__init___forward_reward_weight_ctrl_cost_weight_reset_noise_scale+_exclude_current_positions_from_observationr   npinffloat64r   DEFAULT_CAMERA_CONFIG)selfforward_reward_weightctrl_cost_weightreset_noise_scale*exclude_current_positions_from_observationkwargsr   s          _/home/james-whalen/.local/lib/python3.13/site-packages/gymnasium/envs/mujoco/half_cheetah_v4.pyr   HalfCheetahEnv.__init__   s     	!6	
 	
 '<#!1"3 7 	8 6 #VVG"&&RZZ! !$VVG"&&RZZ! 		
 0"7	
 	
    c                 t    U R                   [        R                  " [        R                  " U5      5      -  nU$ )N)r   r!   sumsquare)r%   actioncontrol_costs      r+   r2   HalfCheetahEnv.control_costG   s*    --ryy7H0IIr-   c                    U R                   R                  S   nU R                  XR                  5        U R                   R                  S   nX2-
  U R                  -  nU R                  U5      nU R                  U-  nU R                  5       nXe-
  nSn	UUUU* S.n
U R                  S:X  a  U R                  5         XxU	SU
4$ )Nr   F)
x_position
x_velocity
reward_runreward_ctrlr
   )
dataqposdo_simulation
frame_skipdtr2   r   _get_obsrender_moderender)r%   r1   x_position_beforex_position_afterr6   	ctrl_costforward_rewardobservationreward
terminatedinfos              r+   stepHalfCheetahEnv.stepK   s     IINN1-6??399>>!,&:dggE
%%f-	44zAmmo+
*$(%:	
 w&KKMJt;;r-   c                 4   U R                   R                  R                  R                  5       nU R                   R                  R                  R                  5       nU R
                  (       a  USS  n[        R                  " X45      R                  5       nU$ )N   )	r9   r:   flatcopyqvelr    r!   concatenateravel)r%   positionvelocityrE   s       r+   r>   HalfCheetahEnv._get_obsd   sn    99>>&&++-99>>&&++-;;|Hnnh%9:@@Br-   c                    U R                   * nU R                   nU R                  U R                  R                  XU R                  R
                  S9-   nU R                  U R                   U R                  R                  U R                  R                  5      -  -   nU R                  X45        U R                  5       nU$ )N)r   r   size)r   	init_qpos	np_randomuniformmodelnq	init_qvelstandard_normalnv	set_stater>   )r%   	noise_low
noise_highr:   rO   rE   s         r+   reset_modelHalfCheetahEnv.reset_modeln   s    ,,,	,,
~~ 6 6 !7 !
 
 NN%%(F(Ftzz}}(UUV 	
 	t"mmor-   )r   r    r   r   N)g      ?皙?rd   T)__name__
__module____qualname____firstlineno__metadatar   r2   rI   r>   rb   __static_attributes__ r-   r+   r   r      s;    
 H "37+
Z<2r-   r   )__credits__numpyr!   	gymnasiumr   gymnasium.envs.mujocor   gymnasium.spacesr   r$   r   r   rk   r-   r+   <module>rq      s<      +    
nY nr-   