update scripts and upload models for turn around gym

This commit is contained in:
xxh
2026-04-01 07:48:36 -04:00
parent 6ffc9452f9
commit 28e7eb0692
20 changed files with 12657 additions and 62 deletions

View File

@@ -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()