马斯克的SpaceX可以说是把“火箭复原”的话题给炒得沸沸扬扬。这不,就连粉丝们也已经开始摩拳擦掌,用自己的方式来挑战这个技术难题。例如,中国博士。来自密歇根大学的博士尝试了一种带有强化学习的恢复火箭!他根据星舰10的真实情况进行了一次模拟,竟然在虚拟环境中顺利完成了悬停和着陆!这个项目很快在Reddit上引起了大量网友的关注:那么,他是如何实现的呢?设置火箭回收“奖励机制”在模拟环境中回收火箭,不得直接使用结构复杂的大型火箭。因此,这位SpaceX死忠粉首先基于气缸动力学将火箭简化为二维平面上的刚体:在火箭底部安装了一个推力矢量发动机,可以在不同的情况下提供可调的推力值说明(0.2g、1.0g和2.0g);同时,对火箭喷管加入角速度约束,最大转速为30°/s。火箭模型所受的空气阻力设置为与速度成正比。现在,该模型的一些基本属性可以用以下两组来表示:作用空间:发动机的离散控制信号集,包括推力加速度和喷嘴角速度速度、喷管角度“火箭回收”的过程分为悬停和着陆两个任务。在悬停任务中,火箭模型需要遵循这样的奖励机制:火箭与预定目标点的距离:距离越近,奖励越大;箭体角度:火箭尽量保持垂直。10号基本参数,设置火箭模型初速度为-50米/秒,方向设置为90°(水平方向),着陆燃烧高度设置为距地面500米。△星舰10号发射降落合成图火箭模型在着陆时也需要遵循这样一个“奖励机制”:当着陆速度小于安全阈值、角度接近垂直0°时,会获得最大的奖励“奖励”,也算登陆成功。总的来说,这是一个基于策略的选手-裁判模式。接下来就是训练了:终于经过20000次的训练,火箭模型在悬停和着陆任务中都取得了不错的成绩:终于模型得到了很好的收敛效果:以及这个模拟环境中的伪星舰10号和一开始展示的动画一样,学会了腹部落地,平稳落地。下一步:增加燃料变量的项目一出,就引起了众多reddit网友的关注和点赞。有些人觉得用强化学习来解决传统任务非常有趣,因为它具有更好的鲁棒性。作者也在下面回复,现实中恶劣的环境条件会成为环境约束,而强化学习可以在统一的框架内解决这些问题。不过,除了点赞之外,也有网友提出了一个最直接的问题:既然我们已经可以用经典的控制方法来为这些任务找到最优解,为什么在SpaceX之前没有人这样做?下面有人回答:这可能是因为之前的数字控制系统、传感器等技术还不成熟,采用新的方法意味着要重新设计火箭的关键部件。这就是超出控制系统层面的“工程问题”,SpaceX正是在这些相关领域做出了改进。比较传统保守的航天工业会用凸优化(Convexification)来解决火箭着陆问题。也就是评论区有人发的这篇论文提到的方法:很多评论也为开发者下一步的开发提供了新的思路。例如,此评论建议“剩余燃料”也应用作变量。现实中的减少或耗尽也是一个重要的影响因素。作者欣然接受了这个建议:有趣的设置,易于添加的安排!中国博士密歇根大学的开发人员为此项目建立了一个网站。在主页上,他介绍:这是我的第一个强化学习项目,所以我希望通过这些“低级代码”尽可能地从头开始实现包括环境、火箭动力学和强化学习代理在内的一切。作者为邹正霞,博士。来自密歇根大学,主要研究计算机视觉、遥感、自动驾驶等领域。论文被ICCV2021、CVPR2021等多个顶级会议收录:下载链接:https://github.com/jiupinjia/rocket-recycling项目主页:https://jiupinjia.github.io/rocket-recycling/
