JavaScript 机器人学:使用 JavaScript 构建无人机


近年来,机器人领域取得了巨大的发展和创新。随着 JavaScript 这门用途广泛且流行的编程语言的出现,开发者现在可以使用熟悉的工具和框架来构建自主机器人和无人机。本文将探讨 JavaScript 机器人学的激动人心的世界,重点介绍如何构建自主无人机。

JavaScript 机器人和无人机

传统上,构建机器人和无人机需要掌握 C++ 或 Python 等专业语言。然而,由于 JavaScript 易于使用、广泛采用以及充满活力的库和框架生态系统,它已成为一种可行的替代方案。

JavaScript 机器人学涉及将硬件组件(例如传感器和执行器)与 JavaScript 代码集成,以控制和与机器人交互。无人机,尤其是,为 JavaScript 机器人学提供了一个极好的平台,因为它们需要复杂的控制算法和实时响应能力,而 JavaScript 可以有效地处理这些能力。

入门:设置环境

在深入无人机编程之前,让我们先设置开发环境。我们将使用 Node.js(一种流行的 JavaScript 运行时环境),以及一些专门为机器人学设计的库和框架。

  • 安装 Node.js  访问 Node.js 官方网站,下载适合您操作系统的最新稳定版本。

  • 创建新项目  打开终端并为您的项目创建一个新目录。使用 cd 命令导航到项目目录。

  • 初始化 Node.js 项目  在终端中运行以下命令以初始化一个新的 Node.js 项目:

npm init -y

安装依赖项  安装机器人和无人机所需的依赖项:

npm install johnny-five node-ardrone

构建自主无人机

在本节中,我们将创建一个简单的自主无人机,它可以起飞、按照指定的模式飞行并降落。我们将使用 Johnny-Five 库(一个流行的 JavaScript 机器人框架),以及 node-ardrone 包(用于无人机特定的功能)。

导入所需的库  创建一个新的 JavaScript 文件 autonomous-drone.js,并导入必要的库:

const five = require('johnny-five');
const arDrone = require('node-ardrone');

说明

在开头几行中,我们导入了自主无人机项目所需的库。johnny-five 库提供了用于与硬件组件交互的高级 API,而 node-ardrone 包允许我们控制 AR.Drone。

连接到无人机 − 初始化无人机并建立连接 −

const drone = arDrone.createClient();

说明

接下来,我们使用 node-ardrone 包提供的 createClient() 方法创建一个新的无人机客户端对象。此对象表示我们的 AR.Drone,并允许我们发送命令来控制其移动。

配置无人机  设置无人机的配置,例如启用稳定和启用视频流:

drone.config('general:navdata_demo', 'FALSE');
drone.ftrim();
drone.disableEmergency();
drone.on('navdata', (data) => {
   // Handle navigation data updates
});

说明

在这里,我们通过禁用导航数据演示模式、执行平面校准以稳定无人机以及禁用紧急模式来配置无人机。我们还为“navdata”事件设置了一个监听器,该事件为我们提供了来自无人机的实时导航数据。您可以在事件处理程序中添加自定义代码以处理和利用这些数据。

起飞  命令无人机起飞:

drone.takeoff();

说明

takeoff() 方法用于命令无人机从地面起飞。执行后,无人机将启动引擎并在固定高度盘旋。

按照图案飞行  实现一个函数,使无人机以方形图案飞行:

function flyInSquare() {
   drone
   .after(5000, function () {
      this.clockwise(0.5);
   })
   .after(2000, function () {
      this.stop();
      this.land();
   });
}

说明

flyInSquare() 函数定义了无人机的飞行模式。它使用 Johnny-Five 库的 after() 方法来安排在特定时间间隔执行特定操作。在本例中,5 秒后,无人机将开始以 0.5 的速度(范围从 -1 到 1)顺时针旋转。再过 2 秒,它将停止旋转并命令无人机降落。

执行飞行  调用 flyInSquare 函数以启动无人机的自主飞行:

flyInSquare();

说明

在这里,我们只需调用 flyInSquare() 函数即可启动无人机以方形图案的自主飞行。

降落  实现一个侦听器以检测无人机何时降落:

drone.on('landing', () => {
   console.log('Drone landed!');
});

说明

我们为“landing”事件设置了一个监听器,该事件在无人机成功降落时触发。当检测到该事件时,回调函数将被执行,并且消息“无人机已降落!”将被打印到控制台。

要查看输出,您可以在终端中使用以下命令运行脚本 −

node autonomous-drone.js

预期输出将为 −

Drone landed!

请注意,为了成功执行此代码,您需要有一个 AR.Drone 或兼容的无人机可用并连接到您的计算机。此外,请确保您已安装所需的依赖项,并且您的无人机已正确配置。

结论

JavaScript 在机器人领域开辟了激动人心的可能性,使开发者能够使用熟悉的工具和框架构建自主无人机。在本文中,我们探讨了 JavaScript 机器人学的基础知识,并演示了如何使用 JavaScript、Johnny-Five 库和 node-ardrone 包构建自主无人机。通过进一步的探索和实验,您可以扩展无人机的功能并创建更高级的自主行为。

更新于: 2023年7月25日

578 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.