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 包構建自主無人機。透過進一步的探索和實驗,您可以擴充套件無人機的功能並建立更高階的自主行為。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP