目录
【Safety-Gymnasium】【蚂蚁机器人运动】
这个类 SafetyAntVelocityEnv
是一个在 Ant环境 上应用了速度安全约束的强化学习环境,继承自 AntEnv
类。
它主要用于模拟带有速度限制的蚂蚁机器人运动。
以下是对代码中各个部分的详细中文解释:
1. 类的初始化方法:__init__
def __init__(self, **kwargs) -> None:
super().__init__(**kwargs)
self._velocity_threshold = 2.5745
self.model.light(0).castshadow = False
-
super().__init__(**kwargs)
:调用父类AntEnv
的初始化方法,初始化继承自父类的所有属性和方法。 -
self._velocity_threshold = 2.5745
:设置一个速度阈值(_velocity_threshold
),表示当机器人的速度超过此阈值时,将会产生一个额外的成本(或惩罚)。该阈值是在环境中定义的限制,超过这个速度值会触发惩罚。 -
self.model.light(0).castshadow = False
:这行代码修改了环境模型的渲染属性,禁止了第一个光源的阴影投射,目的是让渲染效果更加清晰,避免阴影影响可视化。
2. step
方法
def step(self, action): # pylint: disable=too-many-locals
xy_position_before = self.get_body_com('torso')[:2].copy()
self.do_simulation(action, self.frame_skip)
xy_position_after = self.get_body_com('torso')[:2].copy()
xy_velocity = (xy_position_after - xy_position_before) / self.dt
x_velocity, y_velocity = xy_velocity
forward_reward = x_velocity
healthy_reward = self.healthy_reward
rewards = forward_reward + healthy_reward
costs = ctrl_cost = self.control_cost(action)
terminated = self.terminated
observation = self._get_obs()
info = {
'reward_forward': forward_reward,
'reward_ctrl': -ctrl_cost,
'reward_survive': healthy_reward,
'