• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

Unity3D环境 强化学习 训练机器人(TCP通讯机制)

人工智能 JameScottX 2575次浏览 0个评论

前言:

  已入强化学习一个学期了,发现自己急需一个物理环境来进行训练机器人,前前后后参考过过许多环境,但是最后选择了Unity3D,这是因为其足够简单,不用费很大的功夫就可以建立一个简易的机器人,只需要编写C#脚本和tensoflow进行通讯,立马就可以生成一个模型。对于这点,之前我找过资料看是否unity 支持python脚本,国外一老哥介绍了方法,但是我的电脑在安装一些内容时就出错,当我确定通讯方案已经开干时,后面忽然发现,unity 官方也在支持机器学习,也就是2018年的事情,本质上也是通讯,但是他有许多内容都已经打包,所以需要原生态的还是需要自己建立。我采用TCP的方式,建立通讯机制,采用PPO的学习算法来进行了一些简单的测试,效果还行,仍有许多问题需要解决。  

一,建立自己的方块机器人(Box Robot)

  建立robot是一个很有意思的过程,如下就是在多次尝试之后的柯基犬:   Unity3D环境 强化学习 训练机器人(TCP通讯机制)  

 1.添加受物理环境影响的属性Unity3D环境 强化学习 训练机器人(TCP通讯机制)

添加该属性,所建立的模型就会受到物理环境的影响,这里至关重要,里面可以设置运动的自由度,运动粘滞。

 2.物理的关节建立

在尝试unity时,一穷二白,在多次尝试之后发现,可以使用Unity3D环境 强化学习 训练机器人(TCP通讯机制) 这个就是旋转Joint,里面可以设置旋转的上下限,可以使用马达并设置旋转速度,单位(deg/s),可以是用弹簧等。我建立的BoxRobot 利用了他的关节角度限制,马达旋转速度等参数。里面比较重要的就是Connected Anchor这个属性的设置,他的坐标不是依据该物体的坐标!(肢体关节不可过长,否则会在一个自由度方向发生振动,这个吃了大亏)  

3.添加摩擦

在unity中,我所知道的是利用添加物理材质Physic Material ,里面可以进行设置滑动摩擦和静态摩擦,我只在地面和脚的的地  方添加了摩擦。 Unity3D环境 强化学习 训练机器人(TCP通讯机制)  

 4.编写脚本

  对每个肢体都编写了脚本,有信息反馈函数和参数设置函数。最后这些脚本在总的执行脚本里面调用,执行。通讯脚本的编写参考:unity 与 python 通讯(demo)   对于观测状态,有X轴角度,Y轴角度,每条腿的角度值。激励策略:X轴方向位移差*50 。行为:每条腿下次要转动的角度,速度依据角度差! (我这里的策略可能有问题,在完善中) Z轴位移为固定,只训练前进速度。  

二,python端

  在python 端我利用了PyQt的信号机制,当然也是用了他的TCP接口,这样做的目的使得效率较高。而且我训练的过程也是放在了槽函数里面!   PPO(Proximal Policy Optimization近端策略优化)是OpenAI提出的一种DRL算法,其对于连续控制问题具有比较好的效果,已经是OpenAI在强化学习上的默认算法了。还是基于基于 Actor-Critic 算法,这点我比较喜欢。通俗的来讲利用综合价值优势来进行梯度下降的,而且下降依据综合价值*clip(0.8,1.2) (举例),在policy上采用比例的方式,比较好的解决了步长问题。总的来说比较简单,而且paper里面公式都很简单,相比DDPG来说,省了很多功夫。而且大佬们说好或许就真的好。由于可怜的硬件和时间问题,我只尝试了PPO算法。  

三,实际结果

  早期的dog:   Unity3D环境 强化学习 训练机器人(TCP通讯机制)   现在的:   Unity3D环境 强化学习 训练机器人(TCP通讯机制)   可以看出柯基的步态很有意思,在其他次的训练中,他总是到一种局部最优的情况,就不思进取了,这里需要改善和一些经验指导,有可能问题就出现在机器人的模型上。具体视频:这里   依据tensorboard显示的Loss我的后面波动比较大,这里就不展示了。   接下来,准备尝试自由度更高的模型,在激励策略上进行优化。 ——————————————————————- 新的训练模型  


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明Unity3D环境 强化学习 训练机器人(TCP通讯机制)
喜欢 (0)

您必须 登录 才能发表评论!

加载中……