遗传优化

一.训练过程

  • Vscode打开训练文件夹
  • 服务器模式转换: 于Vscode终端输入服务器模式转换指令
./Train.mode.sh     //训练模式
 
./Normal.mode.sh    //正常模式
  • 执行运行文件
./run_opt.sh
  • 依次输入机器人的Type、迭代次数,popsize(种群大小) //需要注意的是,原运行文件(run_opt.sh)的迭代次数默认是一千,但是注释给的是一万,可自行修改
  • 于Ubuntu系统终端打开服务器,进行状态监测

二.过程中出现服务器卡顿、停滞

  • 需要关闭当前服务器
  • 于终端执行pkill命令(最好多kill几遍)
pkill -9 rcss  
  • 于终端重新打开服务器
  • Vscode终端最后,输入Ctrl+C便可以继续启动优化

三.数据整理及变更

获取训练数据

  • 训练完一个周期之后会出现大量的数据集,需要整理出得分值最高的动作参数集
cd optimization/
 
python3 optimization.py
  • 然后会程序会自动找出评分最优集合放入到optimized_params文件中
  • 然后从最优动作集中随便复制一个参数(两个逗号之间就是一个关节参数),然后去opt_output中搜索,检索方式如下:
    • opt_output文件中同时按下Ctrl+F,弹出搜索框
    • 粘贴复制的参数,找到最后一列,查看分值。(分值一般是距离,后期如果对优化文件的评分机制改动了记得进行相应的转换)
    • 自己创建个txt文件,记录下整个动作参数集和相应的距离,方便后期筛选测试。
  • 如果想在这个高分动作基础上继续优化,而不是遵循正常的协方差矩阵自适应优化,可以直接把获取到的动作参数复制进优化文件夹中origin_

转换数据(针对于动作编辑器的数据)

上场测试数据(以下说的是球队文件夹中的文件)

  • 修改Skill文件下的kick_ik(快踢)/kick_far(大脚)文件,可以测试训练/修改/新增的动作效果是否满意(实战性测试效果)
  • 另外如果想单独测试动作,可以再拉取一个仓库,把selectSkill函数中只写个要测试的动作,并且修改Skill下的动作文件(同上),多次测量求取期望值(单独测试效果)
  • 注意:动作文件一般只修改 “State0----最后一帧的ENDSTATE” 这个区间段的东西

几大重要的文件

  1. 优化文件中
    • paramfiles下的defaultparam...文件,训练获取数据的来源?????
    • optimized_params,python show出来的最佳动作参数集存放处
    • origin_params?????
    • opt_output训练所得的全部数据集
  2. 球队文件中
    • skill下的文件,ik是快踢,far是大脚