华人博士用强化学习回收了SpaceX火箭

新闻 人工智能
一位来自密歇根大学的华人博士,就用强化学习试了一把回收火箭!

[[435329]]

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。

马斯克旗下的SpaceX可以说带火了“火箭回收”这一话题。

这不,连粉丝们都已经开始摩拳擦掌,用自己的方式挑战起了这个技术难题。

例如一位来自密歇根大学的华人博士,就用强化学习试了一把回收火箭!

他根据现实中的星舰10号一通进行模拟,还真在虚拟环境中稳稳地完成了悬停和着陆!

华人博士用强化学习回收了SpaceX火箭 | 开源

这个项目迅速在Reddit上引发了大批网友们的关注:

华人博士用强化学习回收了SpaceX火箭 | 开源

那么,他是如何实现的呢?

给火箭回收设立“奖励机制”

要在模拟环境中回收火箭,那么大一只构造复杂的火箭肯定是不能直接抱来用的。

于是,这位SpaceX的铁杆粉丝首先基于气缸动力学,将火箭简化为一个二维平面上的刚体:

华人博士用强化学习回收了SpaceX火箭 | 开源

这个火箭的底部安装有推力矢量发动机,能够提供不同方向的可调的推力值(0.2g,1.0g和2.0g);同时,火箭喷嘴上还增加了一个角速度约束,最大转速为30°/秒。

火箭模型所受到的空气阻力则设定为与速度成正比。

现在,这个模型的一些基本属性就能够以下面两个集合来表示:

  • 动作空间:发动机离散控制信号的集合,包括推力加速度和喷嘴角速度
  • 状态空间:由火箭位置、速度、角度、角速度、喷管角度和仿真时间组成的集合

而“火箭回收”这一流程,则被分为了悬停着陆两个任务。

在悬停任务中,火箭模型需要遵循这样一种奖励机制:

  1. 火箭与预定目标点的距离:距离越近,奖励越大;
  2. 火箭体的角度:火箭应该尽可能保持竖直

着陆任务则基于星舰10号的基本参数,将火箭模型的初始速度设置为-50米/秒,方向设置为90°(水平方向),着陆燃烧高度设置为离地面500米。

华人博士用强化学习回收了SpaceX火箭 | 开源

△星舰10号发射和着陆的合成图像

火箭模型在着陆时同样需要遵循这样一种“奖励机制”:

当着陆速度小于安全阈值,并且角度接近竖直0°时,就会受到最大的“奖励”,也会被认为是一次成功的着陆。

总体而言,这是一个基于策略的参与者-评判者的模型。

接下来就是进行训练:

最终,在经历了20000次的训练后,火箭模型在悬停和着陆两个任务上都实现了较好的效果:

最终,模型得到了很好的收敛效果:

华人博士用强化学习回收了SpaceX火箭 | 开源

而这枚模拟环境中的伪·星舰10号,也就像开头展示的那张动图一样,学会了腹部着陆,稳稳地落地了。

下一步:增加燃料变量

这一项目一经发出,就引来了红迪众多网友的围观和称赞。

有人觉得用强化学习来解决传统任务非常有趣,因为它具有更好的鲁棒性。

作者也在下方回复表示:现实中恶劣的环境条件可以成为环境制约因素,而强化学习则能在一个统一的框架内解决这些问题。

华人博士用强化学习回收了SpaceX火箭 | 开源

不过在称赞之余,也有网友提出了最直接的这样一个问题:

既然我们已经可以使用经典控制方法找到这些任务的最优解,那为啥SpaceX之前没人做?

华人博士用强化学习回收了SpaceX火箭 | 开源

下方有人解答到:这或许是因为之前的数字控制系统、传感器等技术并不成熟,采用新方法就意味着要重新设计火箭的关键部分。

这也就是控制系统层面之外的“工程类的问题”,而SpaceX正是在这些相关领域中做了改进。

华人博士用强化学习回收了SpaceX火箭 | 开源

而那些较为传统保守的航天航空工业则会使用使用凸优化(Convexification)来解决火箭着陆问题。

也就是评论区有人贴出的这篇论文中提到的方法:

华人博士用强化学习回收了SpaceX火箭 | 开源

不少评论也为开发者提供了下一步开发的新思路,比如这条评论建议将“剩余燃料”也作为一个变量,模型燃料的减少或耗尽也是现实中的一个重要影响因素。

作者欣然接受了这一建议:是很容易添加的有趣设置,安排!

华人博士用强化学习回收了SpaceX火箭 | 开源

密歇根大学华人博士

开发者已经为这一项目建立了一个网站,在主页他这样介绍到:

这是我的第一个强化学习项目,所以,我希望通过这些“低水平代码”尽可能地从头实现包括环境、火箭动力学和强化学习agent在内的所有内容。

华人博士用强化学习回收了SpaceX火箭 | 开源

作者叫Zhengxia Zou,是一位来自密歇根大学博士,主要研究计算机视觉、遥感、自动驾驶等领域。

[[435330]]

他的论文曾被 ICCV 2021、CVPR 2021等多个顶会收录:

华人博士用强化学习回收了SpaceX火箭 | 开源

下载链接:
https://github.com/jiupinjia/rocket-recycling

项目主页:
https://jiupinjia.github.io/rocket-recycling/

 

 

责任编辑:张燕妮 来源: 量子位
相关推荐

2021-05-24 12:10:54

PythonSpaceX代码

2020-08-10 06:36:21

强化学习代码深度学习

2023-03-09 08:00:00

强化学习机器学习围棋

2022-02-25 15:08:16

强化学习职业博士

2020-04-22 14:40:26

虚拟机技术Java

2023-11-07 07:13:31

推荐系统多任务学习

2020-04-23 10:49:26

垃圾回收 C++Java

2022-12-21 17:27:30

强化学习AI

2022-11-02 14:02:02

强化学习训练

2020-11-12 19:31:41

强化学习人工智能机器学习

2024-04-03 07:56:50

推荐系统多任务推荐

2019-09-29 10:42:02

人工智能机器学习技术

2021-09-17 15:54:41

深度学习机器学习人工智能

2021-06-25 15:36:37

框架AI开发

2021-12-09 09:45:44

AI 数据神经网络

2020-11-30 09:00:00

机器学习人工智能计算机

2017-07-25 16:04:31

概念应用强化学习

2020-06-05 08:09:01

Python强化学习框架

2020-01-23 15:33:07

AI 数据人工智能

2023-06-25 11:30:47

可视化
点赞
收藏

51CTO技术栈公众号