電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>無人機(jī)應(yīng)用程序:輻射檢測(cè)

無人機(jī)應(yīng)用程序:輻射檢測(cè)

2023-06-14 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

這是 Dronesmith Technologies 的 Dronesmith API 的示例項(xiàng)目。Dronesmith API 是一個(gè)基于 HTTP 請(qǐng)求的 API,支持軟件優(yōu)先無人機(jī)開發(fā)。您可以在 API 中內(nèi)置的虛擬無人機(jī)上測(cè)試您的代碼,然后在真實(shí)無人機(jī)上部署相同的代碼。該項(xiàng)目使用虛擬無人機(jī)在虛構(gòu)的場(chǎng)景中完成任務(wù)。

這個(gè)項(xiàng)目需要一些 Python 和 HTML/CSS 的基本經(jīng)驗(yàn)。

在開始之前,我們建議您查看我們的Dronesmith API 教程

情景

蘇黎世大學(xué)一位精神錯(cuò)亂的物理學(xué)教授一直在校園北側(cè)的各種建筑物中進(jìn)行實(shí)驗(yàn)。昨晚,他用放射性材料進(jìn)行的一項(xiàng)實(shí)驗(yàn)出現(xiàn)了嚴(yán)重錯(cuò)誤,校園變得充滿了放射性。現(xiàn)在由您和您的團(tuán)隊(duì)使用配備輻射傳感器的無人機(jī)找到失敗實(shí)驗(yàn)的位置。

任務(wù)

構(gòu)建一個(gè)應(yīng)用程序,讓無人機(jī)在校園周圍飛行,同時(shí)測(cè)量輻射強(qiáng)度水平并識(shí)別包含輻射源的建筑物。

提示:輻射強(qiáng)度遵循牛頓反平方定律。

?
pYYBAGNY2kOANeo7AAH1EtD9ICM085.png
?

關(guān)于 API

在我們深入了解應(yīng)用程序的工作原理之前,讓我們先回顧一下 Dronesmith API。無人機(jī)的命令采用 HTTP 請(qǐng)求的形式。例如,要檢索無人機(jī)的位置,您可以向 URL http://api.dronesmith.io/api/drone/{drone-name}/position發(fā)送請(qǐng)求。下面是一個(gè)使用 Python 模塊請(qǐng)求的 API 調(diào)用示例。

import json  
import requests
USER_EMAIL      = 'example@example.com'  
USER_API_KEY    = 'example-api-key'  
DRONE_NAME      = 'prickly_galileo' 
  
headers = { 
   'user-email': USER_EMAIL, 
   'user-key': USER_API_KEY,      
   'Content-Type': 'application/json' 
}   
response = requests.get('http://api.dronesmith.io/api/drone/'+ DRONE_NAME + '/position', headers=headers)   
jsonText = json.loads(response.text)  
print json.dumps(jsonText, indent=2, sort_keys=True)  

此代碼發(fā)送一個(gè) GET 請(qǐng)求并打印來自服務(wù)器的響應(yīng)。服務(wù)器使用以下 JSON 對(duì)象進(jìn)行響應(yīng)。

{ 
   "X": 0.004026684,    
   "Y": -0.02161496,   
   "Z": -0.11607925,   
   "Latitude": 47.39774,   
   "Longitude": 8.545593,   
   "Altitude": 0.047, 
   "Heading": 3.95 
} 

一些請(qǐng)求具有 BODY 字段,例如以下起飛命令。

import json  
import requests 
USER_EMAIL      = 'example@example.com'  
USER_API_KEY    = 'example-api-key'  
DRONE_NAME      = 'prickly_galileo'
  
headers = { 
   'user-email': USER_EMAIL, 
   'user-key': USER_API_KEY,      
   'Content-Type': 'application/json' 
}   
# Command drone to takeoff and hover 20 meters above Lat: 47.399091, Lon: 8.549200  
response = requests.post('http://api.dronesmith.io/api/drone/' + DRONE_NAME + '/takeoff', json={          
   "lat": 47.399091,      
   "lon": 8.549200,     
   "altitude": 20 
}, headers=headers)   
jsonText = json.loads(response.text)  
print json.dumps(jsonText, indent=2, sort_keys=True)  

對(duì)此起飛請(qǐng)求的響應(yīng)是以下確認(rèn)。

{  
   "Command": 22,  
   "Status": "Command accepted.",  
   "StatusCode": 0  
}  

有關(guān)更多示例,請(qǐng)參閱我們的API 參考。

對(duì)于單個(gè) API 請(qǐng)求,使用 Python 或任何腳本語言可能有點(diǎn)麻煩。我們強(qiáng)烈推薦使用Postman API 工具來測(cè)試 Dronesmith API 請(qǐng)求。

先決條件

要完成此項(xiàng)目,您需要 Dronesmith API 密鑰。前往api.dronesmith.io請(qǐng)求 API 密鑰。幾分鐘后,您將收到一封包含您的密鑰的電子郵件。

您還需要一個(gè) Google Developers API 密鑰。https://developers.google.com/maps/documentation/javascript/get-api-key

設(shè)置 Python

安裝 Python:https ://www.python.org/downloads/release/python-2712/

注意:確保您使用的是 Python 2.7,而不是 Python 3。在命令行中鍵入 python --version 以驗(yàn)證您的版本。

如果您不熟悉使用 Python,請(qǐng)通過以下兩個(gè)入門練習(xí)來設(shè)置您的開發(fā)人員環(huán)境:

http://learnpythonthehardway.org/book/ex0.html

http://learnpythonthehardway.org/book/ex1.html

安裝 Python pip 模塊:https ://pip.pypa.io/en/stable/installing/

這應(yīng)該默認(rèn)包含在最新的 Python 版本中。

安裝 Python 請(qǐng)求模塊:pip install requests

安裝 Python geopy 模塊:pip install geopy

如果你在 Windows 上,你可能需要運(yùn)行python -m pip 而不只是 pip。

應(yīng)用程序

您可以從我們的 Github 下載示例應(yīng)用程序。

https://github.com/dronesmith/Radiation-Detection-Example

該應(yīng)用程序命令虛擬無人機(jī)在蘇黎世大學(xué)校園周圍的路徑上飛行,同時(shí)在地圖上繪制路徑。它還顯示沿飛行路徑的每個(gè)點(diǎn)的輻射強(qiáng)度值。

當(dāng)前形式的應(yīng)用程序?qū)⒄也坏捷椛湓础?/font>您可以根據(jù)自己的策略來修改應(yīng)用程序以查找?guī)в休椛湓吹慕ㄖ铩?/font>

該應(yīng)用程序由4個(gè)文件組成

  • 服務(wù)器.py
  • 輻射傳感器.py
  • 用戶帳戶.json
?
poYBAGNY2kaAEJX-AABd_OJIfBE214.png
?

這些文件的主要工作是server.py 。在此文件中,啟動(dòng)了一個(gè)通過端口 8080 在 localhost 上運(yùn)行的 Web 服務(wù)器。它提供無人機(jī)的當(dāng)前位置和傳感器數(shù)據(jù)。

Web 服務(wù)器通過發(fā)送 Dronesmith API 請(qǐng)求定期檢索無人機(jī)的位置和無人機(jī)輻射傳感器的強(qiáng)度值。在與網(wǎng)絡(luò)服務(wù)器不同的線程中,通過發(fā)出 Dronesmith API 請(qǐng)求,指示無人機(jī)在校園周圍的腳本路徑中飛行。

index.html中,通過向 http//:localhost:8080/data 發(fā)送 GET 請(qǐng)求來定期檢索位置和強(qiáng)度值。在每個(gè) GET 請(qǐng)求之后,無人機(jī)標(biāo)記和飛行路徑都會(huì)更新,并使用 Google Maps API 在最新位置繪制一個(gè)半徑與輻射強(qiáng)度成正比的新圓圈。

文件radiation_sensor.py用作我們的模擬輻射傳感器。該文件定期獲取無人機(jī)位置并使用緯度和經(jīng)度值計(jì)算輻射強(qiáng)度值。然后它會(huì)更新無人機(jī)輻射傳感器的強(qiáng)度場(chǎng)值。在運(yùn)行server.py文件之前,您需要在單獨(dú)的終端中運(yùn)行此代碼。

JSON 文件user-account.json用于存儲(chǔ) Dronesmith API 憑據(jù)。

Github 項(xiàng)目中還包含一個(gè)設(shè)置腳本,drone_setup.py,您可以運(yùn)行該腳本以在您的帳戶上創(chuàng)建具有輻射傳感器對(duì)象的虛擬無人機(jī)。

運(yùn)行應(yīng)用程序

按照以下步驟運(yùn)行應(yīng)用程序并查看它的運(yùn)行情況。

1. 下載或克隆 Github 項(xiàng)目。

https://github.com/dronesmith/Radiation-Detection-Example

2. 將您的電子郵件和 Dronesmith API 密鑰添加到user.json。

將drone_name 字段留空。

3. 將您的 Google Developers API 密鑰添加到index.html

在 HTML 正文中找到包含map.googleapis.com源的腳本,并將您的密鑰添加到 URL 中的密鑰字段。


4. 運(yùn)行。python drone_setup.py

這將在您的帳戶上創(chuàng)建一個(gè)新的虛擬無人機(jī)并為其添加一個(gè)輻射傳感器。

5. 運(yùn)行并讓它繼續(xù)運(yùn)行。python radiation_sensor.py

6.在另一個(gè)終端運(yùn)行。 python server.py

7. 訪問http://localhost:8080

您應(yīng)該會(huì)立即看到 Google 地圖視圖。無人機(jī)標(biāo)記將在頁面加載后大約 10 秒內(nèi)顯示。直到無人機(jī)起飛并達(dá)到所需高度后,標(biāo)記才會(huì)移動(dòng)。然后你應(yīng)該看到無人機(jī)在校園里繞了一圈。

?

尋找輻射源

您可以采取許多不同的策略來定位輻射源。您可能對(duì)來源的位置有預(yù)感并更改無人機(jī)路徑以測(cè)試您的假設(shè),或者您可能使用花哨的三角測(cè)量算法。重要的是你在為時(shí)已晚之前找到輻射源。

注意:當(dāng)您準(zhǔn)備好檢查您的解決方案時(shí),可以在Radiation_sensor.py文件中找到實(shí)際的源緯度和經(jīng)度。

請(qǐng)告訴我們您尋找輻射源的方法。

祝無人機(jī)工匠們好運(yùn)!

有用的網(wǎng)址

  • SimpleHTTPServer 文檔

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1ADE-12H混頻器規(guī)格書
  2. 0.28 MB   |  1次下載  |  5 積分
  3. 2AD9984A高性能10位顯示接口英文手冊(cè)
  4. 0.49 MB   |  1次下載  |  5 積分
  5. 351開發(fā)板芯片資料
  6. 14.95 MB   |  1次下載  |  1 積分
  7. 4用TL431LI-Q1監(jiān)控電流供應(yīng)
  8. 176.71KB   |  1次下載  |  免費(fèi)
  9. 5十進(jìn)制數(shù)據(jù)轉(zhuǎn)十六進(jìn)制字符_轉(zhuǎn)ASCII碼
  10. 0.01 MB   |  次下載  |  免費(fèi)
  11. 6使用TRF7970A進(jìn)行NFC主動(dòng)和被動(dòng)點(diǎn)對(duì)點(diǎn)通信
  12. 926.87KB   |  次下載  |  免費(fèi)
  13. 7LP8864-Q1 LP8864S-Q1 LP8866-Q1和LP8866S-Q1診斷說明和故障處理程序
  14. 577.42KB   |  次下載  |  免費(fèi)
  15. 8將設(shè)計(jì)移植到LP3470A低lq電壓監(jiān)控器,以改善電源監(jiān)控
  16. 115.28KB   |  次下載  |  免費(fèi)

本月

  1. 1HFSS電磁仿真設(shè)計(jì)應(yīng)用詳解PDF電子教程免費(fèi)下載
  2. 24.30 MB   |  129次下載  |  1 積分
  3. 2正激、反激、推挽、全橋、半橋區(qū)別和特點(diǎn)
  4. 0.91 MB   |  36次下載  |  1 積分
  5. 3GBT 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
  6. 7.43 MB   |  20次下載  |  免費(fèi)
  7. 4在設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線
  8. 1.57MB   |  15次下載  |  免費(fèi)
  9. 5幾張電動(dòng)車充電器電路圖
  10. 0.23 MB   |  9次下載  |  1 積分
  11. 6AD18學(xué)習(xí)筆記
  12. 14.47 MB   |  8次下載  |  2 積分
  13. 7H橋中的電流感測(cè)
  14. 545.39KB   |  7次下載  |  免費(fèi)
  15. 8電機(jī)驅(qū)動(dòng)器電路板布局的最佳實(shí)踐
  16. 3.03MB   |  6次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935113次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191360次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183329次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81578次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73804次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65985次下載  |  10 積分