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.