“太空,最后的边疆……”
这就是标志性的《星际迷航》系列的每一集的开头。我是它的忠实粉丝,但最近在太空中发生的事情和星际迷航船员的冒险一样有趣。此外,作为 NASA 使用的编程语言之一,Python 在其中发挥了重要作用。
多年来我一直对太空探索感兴趣。我关注世界媒体对太空探测器、探测车和着陆器成功的报道。因为我也喜欢 Python,所以我开始注意到它对太空计划发展的重要贡献。多亏了 Guido van Rossum 创建的语言,我们取得了很多成就。以下只是 Python 帮助实现的一些里程碑。
火星上发生了什么?
如果你对太空探索感兴趣,那么你可能对 NASA(美国国家航空航天局)并不陌生。该机构自 1958 年起持续运作。它是一个独立机构,直接向美国总统汇报。它是最重要的太空探索组织之一,联合了各个领域的科学家和工程师。除了太空飞行计划外,NASA 还负责长期太空研究计划和气候变化监测。
美国宇航局火星2020项目的目标是寻找能够支持生物生命的环境,识别潜在火星生命的痕迹,并进行地质和气象研究。
这一切都是为了将来能够派遣科学家和宇航员前往火星,开始可能的火星殖民。过去只是科幻小说和电影的主题,现在正变得越来越真实。
2020 年 7 月 30 日,搭载毅力号火星探测器的 Atlas V 火箭从卡纳维拉尔角发射。它的飞行距离超过 4.7 亿公里。
该探测器原计划着陆在火星耶泽罗陨石坑底部。它于 2021 年 2 月 18 日按计划成功着陆。着陆四分钟后,火星车向地球发回了第一批火星表面图像。
但这和 Python 有什么关系呢?事实证明,这种编程语言在任务中发挥了重要作用。着陆时刻本身由放置在探测器不同位置的 5 个摄像头记录下来。Python 脚本用于处理图像并将其传输到飞行控制中心 。得益于此,科学家(以及通过互联网的其他人)有机会以前所未有的方式观察火星表面。
这一录音被载入了太空计划史册,并再次证实人类有能力完成不可能的事情。
有趣的事实: 火星探测车的大部分硬件和部件都使用开源软件。视频录制由 Linux 发行版操作的 CPU 制作。
毅力号并不是目前唯一一个火星探测任务。 中国国家航天局 (CNSA) 也加入了寻找火星生命踪迹的竞赛。 他们的火星车于 5 月 15 日着陆 ,并已发回首批照片。
祝融号 车 以中国古代神话中的火神命名,采用太阳能驱动,有六个轮子。它高 1.85 米,重 240 公斤。然而,中国国家航天局不太愿意分享技术细节,因此尚不清楚它使用了什么技术。也许还有 Python?也许有一天我们会知道。
这是中国太空计划的下一步。未来几年,他们计划与俄罗斯在月球上建立一个研究站。
无人机首次在另一个星球上飞行
毅力号成功的消息在社交媒体上迅速传播开来。每个人都迫不及待地等待着下一个消息。在推特上, Python 软件基金会 也正式确认 Python 将参与该项目。
祝贺 @NASAJPL 毅力号火星探测器成功着陆。
— Python Software Foundation (@ThePSF) February 18, 2021
我们很高兴看到 Python 可以在第一架火星无人机的飞行软件中发挥作用。 R2IxiYCAjV
一路顺风 @NASAPersevere . Ih8s4INr3z
下一个新闻是关于 Ingenuity 无人机的,自 4 月 19 日起,该无人机已经在火星上进行了五次飞行。这架机器人直升机原本应该在一个月后完成任务,但由于其取得了相当大的成功,而且没有出现任何故障,科学家们决定延长任务时间,并计划进一步飞行。
该机器由 NASA 喷气推进实验室的工程师开发的 F' (FPrime) 软件驱动。它已成功部署在多个太空应用中,包括直升机控制。这个基于 C++ 的框架支持 Python 库和包。由于 NASA 对开源环境的承诺,很大一部分代码都是用 Python 创建的。
GitHub 项目简介 中找到所需的一切 。该框架是为 Linux 构建的,但也适用于 MacOS。要在 Windows 上使用它,你需要 在虚拟机上运行 Linux 发行版 .
好吧,回到 Ingenuity 无人机。它的前两次飞行都是垂直的;无人机只是上下飞行。4 月 26 日的第三次尝试是平飞——Ingenuity 飞行了 80 秒,加速到每秒 2 米(约 4.5 英里/小时/7.2 公里/小时)。
在随后的尝试中,它飞得更远。在第五次飞行中,机智号在距火星表面 5 米的高度飞行了 266 米,耗时 2 分钟。虽然这看起来并不多,但对于技术发展来说,这是一次巨大的飞跃。这是人类历史上第一次在另一个星球上飞行。所有飞行代码开发人员都可以自信地称自己为明星飞行员。我必须承认,我非常羡慕他们。
开源社区如何发挥创造力
人们能够突破技术障碍,成功在另一个星球上驾驶无人机,这并非 NASA 工程师们的功绩。GitHub 社区的一大批开发人员为该项目做出了巨大且无价的贡献。他们中的大多数人甚至没有意识到他们正在帮助征服火星。直到一天早上,他们才发现这一点,当时他们的个人资料上出现了这个徽章:
该徽章授予那些为美国国家航空航天局 (NASA) 喷气推进实验室用于使 Ingenuity 飞行的项目和库的特定版本做出贡献的 GitHub 贡献者。
全球近 12,000 名开源开发者为此做出了贡献并获得了荣誉。从现在起,他们可以向所有人夸耀自己做了一些了不起的事情。您可以在此处查看 NASA 用于 Ingenuity 的项目完整列表 - 其中大约有 60 个,包括 Python、SciPy、NumPy、Matplotlib、OpenCV、Elasticsearch 和 F'(FPrime)。
有趣的是,为了控制如此庞大的项目以及数千名开发人员的工作成果……他们使用了 Python。创建 Six 者 Benjamin Peterson 在一次采访中承认。
NASA 网站 上有大量需要 Python 技能的开源项目 。如果你和我一样对星星和宇宙飞船感兴趣,你可以尝试参加其中一项挑战。随着时间的推移,你也可能为征服宇宙做出贡献!
NASA 使用什么编程语言?
我们使用的许多东西最初都是在 NASA 实验室中发明的。例如防刮玻璃、智能手机镜头或气密拉链(最初出现在压力服中,现在用于水肺潜水和防护服)。
NASA 参与了数千个项目。因此,不能说某种编程语言是他们的主要选择。也没有官方统计数据。但是,从迄今为止的工作和成就来看,可以观察到一些占主导地位的语言。那么 NASA 使用的是哪种语言呢?
- MATLAB—— 主要用于工程分析。
- C 和 C ++
- Python—— 用于分析、数据科学、GUI 和开源项目。
- 其他语言(例如 Fortran、Node.js 和 Visual Basic)的使用较少。
你想成为团队的一员吗?这是有可能的。NASA 在其网站上发布了 当前职位空缺 。在撰写本文时,该机构总部正在招聘管理和项目分析师职位。
如果你懂 Python、R, 并且学习 机器学习 ,你 一年 15 万美元
如何学习 Python
在开始编写火星着陆器代码之前,您必须先学习基础知识。从 LearnSQL 的 Python 基础知识 课程开始。这是为没有任何 IT 背景、一生中从未编写过一行代码的人准备的。
如果您愿意,您还可以深入了解我们的旗舰课程“ 学习 Python 编程” 。您会在其中找到什么?开始 Python 冒险所需的一切。我们的课程包括:
- Python 基础知识 – 这三门课程构成了上述 Python 基础知识课程。您将学习该语言的基本命令和功能,并开始像程序员一样思考。这些课程涵盖了变量、循环和条件语句等基础概念。
- Python 数据结构实践 ——学习使用常见的 Python 数据结构并编写真正的 Python 游戏!
- Python 中的内置算法 ——学习 Python 的内置算法和函数,并在更短的时间内编写优化的应用程序。
如果你对其他全球公司使用 Python 以及原因感兴趣,请查看 这篇文章 。剧透警告:名单包括 Uber 和 Netflix。
如果你仍然缺乏灵感,请阅读我的朋友 Soner 的文章《 如何开始你的编程冒险》 。或者,如果你担心自己 年纪太大,不适合从事 IT 职业, .
您今年应该学习 Python 的 主要原因 。让您的工作更轻松,收入更高。今天就开始学习吧!
发表评论 取消回复