資料介紹
描述
這是 Dronesmith Technologies 的 Dronesmith API 的示例項(xiàng)目。Dronesmith API 是一個(gè)基于 HTTP 請(qǐng)求的 API,支持軟件優(yōu)先無(wú)人機(jī)開發(fā)。您可以在 API 中內(nèi)置的虛擬無(wú)人機(jī)上測(cè)試您的代碼,然后在真實(shí)無(wú)人機(jī)上部署相同的代碼。該項(xiàng)目使用虛擬無(wú)人機(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ì)使用配備輻射傳感器的無(wú)人機(jī)找到失敗實(shí)驗(yàn)的位置。
任務(wù)
構(gòu)建一個(gè)應(yīng)用程序,讓無(wú)人機(jī)在校園周圍飛行,同時(shí)測(cè)量輻射強(qiáng)度水平并識(shí)別包含輻射源的建筑物。
提示:輻射強(qiáng)度遵循牛頓反平方定律。

關(guān)于 API
在我們深入了解應(yīng)用程序的工作原理之前,讓我們先回顧一下 Dronesmith API。無(wú)人機(jī)的命令采用 HTTP 請(qǐng)求的形式。例如,要檢索無(wú)人機(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)求并打印來(lái)自服務(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 或任何腳本語(yǔ)言可能有點(diǎn)麻煩。我們強(qiáng)烈推薦使用Postman API 工具來(lái)測(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)通過(guò)以下兩個(gè)入門練習(xí)來(lái)設(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)用程序命令虛擬無(wú)人機(jī)在蘇黎世大學(xué)校園周圍的路徑上飛行,同時(shí)在地圖上繪制路徑。它還顯示沿飛行路徑的每個(gè)點(diǎn)的輻射強(qiáng)度值。
當(dāng)前形式的應(yīng)用程序?qū)⒄也坏捷椛湓础?/font>您可以根據(jù)自己的策略來(lái)修改應(yīng)用程序以查找?guī)в休椛湓吹慕ㄖ铩?/font>
該應(yīng)用程序由4個(gè)文件組成
- 索引.html
- 服務(wù)器.py
- 輻射傳感器.py
- 用戶帳戶.json

這些文件的主要工作是server.py 。在此文件中,啟動(dòng)了一個(gè)通過(guò)端口 8080 在 localhost 上運(yùn)行的 Web 服務(wù)器。它提供無(wú)人機(jī)的當(dāng)前位置和傳感器數(shù)據(jù)。
Web 服務(wù)器通過(guò)發(fā)送 Dronesmith API 請(qǐng)求定期檢索無(wú)人機(jī)的位置和無(wú)人機(jī)輻射傳感器的強(qiáng)度值。在與網(wǎng)絡(luò)服務(wù)器不同的線程中,通過(guò)發(fā)出 Dronesmith API 請(qǐng)求,指示無(wú)人機(jī)在校園周圍的腳本路徑中飛行。
在index.html中,通過(guò)向 http//:localhost:8080/data 發(fā)送 GET 請(qǐng)求來(lái)定期檢索位置和強(qiáng)度值。在每個(gè) GET 請(qǐng)求之后,無(wú)人機(jī)標(biāo)記和飛行路徑都會(huì)更新,并使用 Google Maps API 在最新位置繪制一個(gè)半徑與輻射強(qiáng)度成正比的新圓圈。
文件radiation_sensor.py用作我們的模擬輻射傳感器。該文件定期獲取無(wú)人機(jī)位置并使用緯度和經(jīng)度值計(jì)算輻射強(qiáng)度值。然后它會(huì)更新無(wú)人機(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ì)象的虛擬無(wú)人機(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è)新的虛擬無(wú)人機(jī)并為其添加一個(gè)輻射傳感器。
5. 運(yùn)行并讓它繼續(xù)運(yùn)行。python radiation_sensor.py
6.在另一個(gè)終端運(yùn)行。 python server.py
7. 訪問(wèn)http://localhost:8080
您應(yīng)該會(huì)立即看到 Google 地圖視圖。無(wú)人機(jī)標(biāo)記將在頁(yè)面加載后大約 10 秒內(nèi)顯示。直到無(wú)人機(jī)起飛并達(dá)到所需高度后,標(biāo)記才會(huì)移動(dòng)。然后你應(yīng)該看到無(wú)人機(jī)在校園里繞了一圈。
尋找輻射源
您可以采取許多不同的策略來(lái)定位輻射源。您可能對(duì)來(lái)源的位置有預(yù)感并更改無(wú)人機(jī)路徑以測(cè)試您的假設(shè),或者您可能使用花哨的三角測(cè)量算法。重要的是你在為時(shí)已晚之前找到輻射源。
注意:當(dāng)您準(zhǔn)備好檢查您的解決方案時(shí),可以在Radiation_sensor.py文件中找到實(shí)際的源緯度和經(jīng)度。
請(qǐng)告訴我們您尋找輻射源的方法。
祝無(wú)人機(jī)工匠們好運(yùn)!
有用的網(wǎng)址
- RoboFly無(wú)人機(jī)原理圖及PCB和測(cè)試程序下載 17次下載
- DragonFly無(wú)人機(jī)原理圖免費(fèi)下載 31次下載
- 基于無(wú)人機(jī)圖像的兩階段銷釘缺陷檢測(cè)模型 39次下載
- 基于無(wú)人機(jī)遙感影像的建筑物輪廓目標(biāo)檢測(cè)系統(tǒng) 13次下載
- 基于局部加權(quán)擬合的無(wú)人機(jī)遙感影像多尺度檢測(cè) 28次下載
- 一種通過(guò)軌跡和形態(tài)識(shí)別檢測(cè)無(wú)人機(jī)的方法 18次下載
- 小型電動(dòng)無(wú)人機(jī)的總體參數(shù)設(shè)計(jì)方法研究說(shuō)明 19次下載
- 無(wú)人機(jī)的地面站任務(wù)規(guī)劃資料和應(yīng)用程序免費(fèi)下載 4次下載
- 無(wú)人機(jī)的檢測(cè)和跟蹤系統(tǒng)中的技術(shù)資料研究 21次下載
- 無(wú)人機(jī)和無(wú)人機(jī)控制方法及無(wú)人機(jī)遠(yuǎn)程操控系統(tǒng)方法說(shuō)明 69次下載
- 無(wú)人機(jī)中繼模塊和無(wú)人機(jī)圖傳控制系統(tǒng)介紹 61次下載
- 無(wú)人機(jī)柔性裝配工裝應(yīng)用 2次下載
- 基于無(wú)人機(jī)的分類 20次下載
- 基于STM32的無(wú)人機(jī)姿態(tài)測(cè)量系統(tǒng)設(shè)計(jì) 44次下載
- ADI民用無(wú)人機(jī)解決方案 19次下載
- 基于深度學(xué)習(xí)的無(wú)人機(jī)檢測(cè)與識(shí)別技術(shù) 1370次閱讀
- 無(wú)人機(jī)群的神秘面紗 無(wú)人機(jī)的未來(lái)發(fā)展路線 1520次閱讀
- 無(wú)人機(jī)在電力行業(yè)有怎么樣的應(yīng)用 1w次閱讀
- 無(wú)人機(jī)設(shè)計(jì)的常見(jiàn)電路保護(hù)組件 6368次閱讀
- 無(wú)人機(jī)中超聲波原理 2579次閱讀
- 怎樣使無(wú)人機(jī)安全飛行?無(wú)人機(jī)飛行需要掌握什么安全知識(shí) 1.6w次閱讀
- 新疆為什么禁飛無(wú)人機(jī)_新疆無(wú)人機(jī)禁飛區(qū)域 5.7w次閱讀
- 水下無(wú)人機(jī)的用途和優(yōu)勢(shì)有哪些 9549次閱讀
- 水下無(wú)人機(jī)原理分析 1.4w次閱讀
- nixie微型無(wú)人機(jī)的功能介紹_nixie微型無(wú)人機(jī)多少錢 1.3w次閱讀
- 微型無(wú)人機(jī)發(fā)展前景_無(wú)人機(jī)發(fā)展趨勢(shì) 8518次閱讀
- 大疆做不做軍用無(wú)人機(jī) 2w次閱讀
- 中國(guó)有哪些軍用無(wú)人機(jī)_國(guó)內(nèi)軍用無(wú)人機(jī)排名 11.3w次閱讀
- 大疆無(wú)人機(jī)如何在禁飛區(qū)起飛 15.3w次閱讀
- 電動(dòng)無(wú)人機(jī)和油動(dòng)無(wú)人機(jī)性能的對(duì)比 2805次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論