关于legged gym时间的记录

1. 前言

这篇博客主要用于记录1111。
一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流。
如有不对之处,欢迎评论区指出错误,你我共同进步学习!

2. 正文

2.1 最大的迭代次数

在on_policy_runner文件里,有learn的函数:
image
其中函数中:
image
其中num_learning_iterations这个变量指的是最大的迭代次数
image
learn函数同时也在train文件中得到调用:
image

2.2

第二个循环里面,num_steps_per_env指的是每个环境每次迭代iterations的step步数,这里就是60步,相当于一次iteration进行了60步这个循环
image
在config文件中进行了设置:
image

2.3

然后在每次循环中,通过actor获得了actiions,得到的actions放到step函数中:
image
step生成经典五个值 obs, privileged_obs, rewards, dones, infos

2.4 step函数

在legged_robot.py文件里面,定义了这个函数:
image
进入函数首先scale了actiions的值,然后加一些延时等,然后进入decimations的循环:
image
在循环里:
torques = self._compute_torques(action_delayed).view(self.torques.shape)
self.gym.set_dof_actuation_force_tensor(self.sim, gymtorch.unwrap_tensor(self.torques))
self.gym.simulate(self.sim)
self.gym.refresh_dof_state_tensor(self.sim)
self.compute_dof_vel()

然后:
self.post_physics_step()

最后返回这些:
image
相当于每个环境利用MC算法,得到了60步的数据,存储到trainsitions变量里面:每一个step对应着一堆obs、pri_obs、rewards等:
image
类似于这个:
image

2.5 self.post_physics_step()

调用了这个函数,先不搭理他
image

2.6 episode_length 和 dt

2.6.1 dt

dt在config文件定义了:
image
然后我又输出了legged_robot.py文件中的_parse_cfg函数的self.sim_params.dt变量
image
推测二者应该是一个值,也就是说dt实际上是一个很底层的数据,比如sim_param.dt,也就是一个和gym底层类似的值:也就是仿真层面的,虚拟环境层面的值:
实际又乘以了一个decimation的值:
image
所以真实用的是self.dt = 0.002X5=0.01
笔者认为表示的是:一个episode包含很多的s a 对,有一定长度,每一个s a 对用了dt的时间长度,也就是用了0.01秒从一个staet跳到另一个state

2.6.2 episode

在config文件我们定义了episode_length_s:表示一秒钟的episode长度
image
在legged_robot.py文件中,找到_parse_cfg函数:俄可以看到通过除以dt得到最大的episodfe长度,意思是最大就这么长,如果算法跑过这个长度就进入终止次轮,进入下一轮。
image

2.7 _get_phase

在env文件夹里面:有这样一个函数,用来产生正弦波:
image
其中episode_length_buf指的是u步进变量,类似于for循环的i
image
image
cycle_time表示周期吧,也就是机器人人形的摆动的周期。

2.1

3. 总结

  • 你自己设定了环境数量num_envs,表示并行的环境;
  • 又给定了max_iterations,表示最大迭代次数,一共要跑这些次;
  • 每一次,也就是每一个iteration里,每一个环境仿真200HZ步进,但算法推理却是50HZ (参考前面decimation和 dt的关系),在learn函数里面,episode_length_buf逐渐递增,如果达到最大长度max_episode_length,就终止,没达到,就继续叠加;
  • 在每一次episoce_length_buf的递增里面,这就是ppo算法层面了,具体见learn函数的实现,可以进行60步steps,这就相当于MC的折衷部分,得到的值存到transition里面,然后梯度下降反向传播更新。
posted @ 2025-02-08 15:10  泪水下的笑靥  阅读(464)  评论(0)    收藏  举报