update scripts and upload models for turn around gym
This commit is contained in:
@@ -159,7 +159,7 @@ class WalkEnv(gym.Env):
|
||||
# Small reset perturbations for robustness training.
|
||||
self.enable_reset_perturb = False
|
||||
self.reset_beam_yaw_range_deg = float(os.environ.get("GYM_CPU_RESET_BEAM_YAW_RANGE_DEG", "180"))
|
||||
self.reset_target_bearing_range_deg = float(os.environ.get("GYM_CPU_RESET_TARGET_BEARING_RANGE_DEG", "90"))
|
||||
self.reset_target_bearing_range_deg = float(os.environ.get("GYM_CPU_RESET_TARGET_BEARING_RANGE_DEG", "120"))
|
||||
self.reset_target_distance_min = float(os.environ.get("GYM_CPU_RESET_TARGET_DISTANCE_MIN", "1.2"))
|
||||
self.reset_target_distance_max = float(os.environ.get("GYM_CPU_RESET_TARGET_DISTANCE_MAX", "2.8"))
|
||||
if self.reset_target_distance_min > self.reset_target_distance_max:
|
||||
@@ -472,8 +472,8 @@ class WalkEnv(gym.Env):
|
||||
prev_abs_yaw_error = abs(self.last_yaw_error)
|
||||
yaw_err_delta = prev_abs_yaw_error - abs_yaw_error
|
||||
progress_gate = 1.0 if abs_yaw_error > math.radians(4.0) else 0.0
|
||||
heading_progress_reward = 0.8 * progress_gate * yaw_err_delta
|
||||
heading_progress_reward = float(np.clip(heading_progress_reward, -0.4, 0.4))
|
||||
heading_progress_reward = progress_gate * yaw_err_delta
|
||||
heading_progress_reward = float(np.clip(heading_progress_reward, -1, 1))
|
||||
self.last_yaw_error = yaw_error
|
||||
|
||||
# action_penalty = -0.01 * float(np.linalg.norm(action))
|
||||
@@ -515,7 +515,7 @@ class WalkEnv(gym.Env):
|
||||
ankle_roll_cross_penalty = -0.3 * max(0.0, -(left_ankle_roll * right_ankle_roll))
|
||||
|
||||
# 分别惩罚左右大腿过度转动
|
||||
max_hip_yaw = 0.4 # 最大允许的yaw角度
|
||||
max_hip_yaw = 0.5 # 最大允许的yaw角度
|
||||
left_hip_yaw_penalty = -0.4 * max(0.0, abs(left_hip_yaw) - max_hip_yaw)
|
||||
right_hip_yaw_penalty = -0.4 * max(0.0, abs(right_hip_yaw) - max_hip_yaw)
|
||||
# 智能交叉腿惩罚:只在站立时惩罚,转身时允许交叉腿
|
||||
@@ -582,9 +582,9 @@ class WalkEnv(gym.Env):
|
||||
+ split_penalty
|
||||
+ inward_penalty
|
||||
# + leg_proximity_penalty
|
||||
# + left_hip_yaw_penalty
|
||||
# + right_hip_yaw_penalty
|
||||
# + hip_yaw_cross_penalty
|
||||
+ left_hip_yaw_penalty
|
||||
+ right_hip_yaw_penalty
|
||||
+ hip_yaw_cross_penalty
|
||||
+ position_penalty
|
||||
# + linkage_reward
|
||||
# + waist_only_turn_penalty
|
||||
@@ -655,8 +655,8 @@ class WalkEnv(gym.Env):
|
||||
action[8] = 0
|
||||
action[9] = 5
|
||||
action[10] = 0
|
||||
# action[11] = np.clip(action[11], -0.5, 0.5)
|
||||
# action[17] = np.clip(action[17], -0.5, 0.5)
|
||||
action[11] = np.clip(action[11], -0.7, 0.7)
|
||||
action[17] = np.clip(action[17], -0.7, 0.7)
|
||||
# action[12] = -1.0
|
||||
# action[18] = 1.0
|
||||
# action[13] = -1.0
|
||||
@@ -671,7 +671,7 @@ class WalkEnv(gym.Env):
|
||||
|
||||
for idx, target in enumerate(self.target_joint_positions):
|
||||
r.set_motor_target_position(
|
||||
r.ROBOT_MOTORS[idx], target * 180 / math.pi, kp=110, kd=5
|
||||
r.ROBOT_MOTORS[idx], target * 180 / math.pi, kp=80, kd=4.67
|
||||
)
|
||||
|
||||
self.previous_action = action.copy()
|
||||
|
||||
Reference in New Issue
Block a user