GithubHelp home page GithubHelp logo

thunderfly-aerospace / tf-r1 Goto Github PK

View Code? Open in Web Editor NEW
5.0 4.0 2.0 23.08 MB

UAV ground control rover

License: GNU General Public License v3.0

OpenSCAD 0.62% Shell 0.03% QML 0.01% Python 0.20% Makefile 0.02% G-code 99.12%
uav rover ros ground-station ground-control-station takeoff

tf-r1's Introduction

ThunderFly mission rover TF-R1

Mission support rover for unmanned drones.

ThunderFly developes UAVs designed for flying in extreme conditions. In these conditions, it can be dangerous for the mission crew to be under sky. The aim of this rover is keep crew in safety of car chassis and be able to proceed drone takeoff.

Car is equipted with necessary equipment to perform flight operations.

TF-R1 in the field

The rover is equipped by:

  • Datalink telemetry diagnostics tools
  • Long range datalink modem
  • Datalink antennas
  • UAV pilot terminal
  • Driver indicators
  • Off-the-board computer
  • Camera recorders
  • Data recorders
  • GNSS RTK reference
  • Weather sensors
  • Aerotow hitch

ThunderFly UAV Groung control station (TF-BOX)

Ground control station (GCS) is one of key element of unmanned system. GCS has several tasks.

High important:

  • Ensuring high quality data connection to UAV
  • Monitors drone condition (battery, fail-safe modes, position, ...)
  • Allows the operator to control and command the UAV

Optional:

  • Live data collecting
  • Visualization of some units
  • Dron UX for operator

ThunderFly implementation

DashBoard app

The dashboard application is used for display of essential data for UAV mission. It is used by all crew members while the UAV is in the flight.

  sudo pip3 install kivy pyttsx
  sudo apt install libespeak1

tf-r1's People

Contributors

jakubmares96 avatar jankott avatar kaklik avatar raska-vilem avatar roman-dvorak avatar taury55 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

elizaa62 oilcrest

tf-r1's Issues

Otestovat mavlink-router na dvou počítačích

Otestovat mavlink-router jako alternativu k mavros. Otestování by mělo proběhnout na dvou počítačích spojených ethernetem. Při testování je potřeba k systému připojit více programů, které budou z mavlinku získávat data.

Na tomto systému následně můžou být připojeny věci jako #9 #19 #20.

Získání polohy, orientace, vektoru rychlosti a zrychlení TF-R1

Na střechu auta by bylo vhodné připevnit autopilota, který bude vyčítat senzory (např. airspeed), bude určovat home-position. Dále z něj můžou být ovládány další věci jako odpojování magnetu pro TF-R1 a start ze střechy, odjišťování ventilů pístů a podobné věci.

Autopilot by pak měl být přes sériovku připojen do palubního PC, kde bude pomocí mavlink-routered připojen do UDP sítě. Autopilot bude mit vlastní mavlink ID.

Držák telemetrické antény

Na startovacím autě jsou nyní nově rozmístěny antény. Díky tomu nám chybí držák telemetrické antény, který by měl být připevněn za šrouby třmenu, který drží desku k příčníkům. Použitý třmen je M8 třmen s roztečí šroubů 58mm

Držák by měl vypadat nějak takto:
20200324_001320

I když v nákresu jsou kóty uvedeny čisly, bylo by fajn, aby to bylo namodelované paramericky. Tzn. pomocí proměnných, který bude možné vždy upravit a upraví se tak model.

Použitá anténa:
063A8098

Detail třmenů.
vyrez_trmenu

Držák by měl vypadat podobně jako toto:
https://github.com/ThunderFly-aerospace/TF-R1/blob/master/CAD/STL/windsock_holder.stl
s tím, že tam budou šrouby umístěny blíže k sobě.

Pohyblivá část šestiosé platformy

Pohybující se část šestiosé platformy bude s písty spojená přes kulová ložiska.
Šrouby těchto ložisek musí být umístěny na kruhové kónickém kuželu. Úhel kónusu musí odpovídat výšce pístů a poloměru spodní základny #14.
K uchycení šroubů se předpokládá použití čtvercových matic.

Na pohybující části má být umístěn přídržný elektromegnet.

Díl může vycházet z existujícího dílu https://github.com/ThunderFly-aerospace/TF-G1/blob/master/STL/888_3006.stl

Úprava makefile

Makefile by bylo užitečné upravit tak, aby byl schopen renderovat modely bez změny kódu modelů podobně, jako současné řešení u konstrukce WINDGAUGE.

Aerodynamická váha na měření odporu a vztlaku

Pro měření parametrů rotoru je potřeba držák rotoru z issue #184 připevnit na aerodynamickou váhu, která bude měřit dvě složky sil. Aerodynamický odpor a vztlak.
Schéma standardního řešení vypadá přibližně takto:

S tím rozdílem, že v našem případě není měřena raketa ale rotor.
Praktická realizace takového systému je ukázána například tady na meření parametrů karoserie modelu auta.
image
Zde jsou jako meřící členy použity pružiny, u kterých se měří jejich délka. Pro nás je takové řešení nepraktické proto pružiny potřebujeme nahradit tenzometrickými snímači. Jako je například tento.

Takový snímač je však potřeba namáhat na střih, aby meřil a to v této orientaci:

Neboť snímač měří pouze když se nepatrně deformuje dutina vyříznutá do hliníkového trámku. Deformace je podobná, jako je znázorněná na obrázku, ale je tak malá, že není viditelná.

Základna šestiosé platformy

Pro pneumatické válce šestiosé platformy potřebujeme vytvořit držák, který bude určený pro přichycení na střechu vozidla (na hnědou desku z fotografie). Na pohyblivé části pak bude elektronický magnet, pro přichycení UAV. Horní díl je řešen v jiném issue.

Předchozí realizace montáže UAV vypadala takto:
20190209_155119

Aby v hnědé desce na střeše vozidla nebylo potřeba vrtat nové otvory, tak je nutné zachovat úchytné šrouby původního dílu 888_3009.

Hrubý náčrtek možného řešení:
image

Prostřední díl válec a trojice ramen s otvory pro uchycení ložisek EFOM-10(nutno vybrat typ z nabídky). Plocha pod ložisky musí jít parametricky naklápět ve dvou osách, aby bylo možné upravit rozsah pohybu v daném ložisku. Při změně parametrů se předpokládá přetištění dílu.

Existující držák, který je vidět na násludujících obrázcích má zdrojové kódy zde:
https://github.com/ThunderFly-aerospace/TF-R1/blob/master/CAD/src/platform/888_4003.scad
https://github.com/ThunderFly-aerospace/TF-R1/blob/master/CAD/src/platform/888_4004.scad

Základna platformy musí mít tyto vlastnosti:

  • Je potřeba jí parametricky umět zvětšovat
  • Musí být dělitelná na menší díly, aby jí bylo možné tisknout na tiskárně o maxímálním tiskovém rozměru 150mm
  • Jednotlivé díly mmusí jít spojovat pomocí šroubů
  • Musí být možné jedním parametrem nastavit poloměr vzdálenosti středu ložiska od osy procházející středem základny
  • Dalšími parametry jsou dva úhly definující naklonění ložisek ve dvou osách (směrem do středu a do stran)

Držák venkovní 12V zásuvky na startovací desku auta

Na desku, která je přišroubovaná k nosiči startovacího auta by bylo potřeba připevnit několik zásuvek ze spodní strany.

Výkres zásuvky včetně rozměrů je k dispozici tady.

Problém zásuvky je v tom, že z jedné strany není zakrytá a může do ní snadno natéct voda, což je nechtěná situace. Proto je potřeba mezi desku a zásuvku vymodelovat tisknoutelnou podložku, která bude sešroubovaná se zásuvkou a bude sloužit k nalepení zásuvky ze spodní strany desky. Podložka navíc může mít větší plochu, než zásuvka, takže bude po přilepení na desce dobře držet.

Cedulky na dokumentaci trosek

Do vybavení auta by bylo vhodné přidat vhodné cedulky pro označování trosek.
Konstrukce cedulek by měla umožnit jejich umístění v různém terénu. Zároveň by cedulky měly být dobře viditelné, aby na ně někdo při hledání dalších trosek nešlápl.
Identifikace cedulky by měla být z fotografie dobře čitelná.

Nahrávání zvuku při testech na střeše auta

Je potřeba zjistit, jestli není možné nějakým způsobem ke kamerám přímo připojit mikrofon. Popřípadě mikrofon prokabelovat přímo do zvukovky PC a zaznamenávat je zároveň se záznamem z kamery ve VLC (#5)

Zvuk může posloužit jako dobrý diagnostický prostředek.

Implementace anemometru do palubního vybavení auta

Na střechu auta je potřeba zapojit anemometr s autokalibrací měřeného směru větru oproti magnetickému severu a směru jízdy auta.
Aby tato záležitost mohla být vyřešena, tak je potřeba:

  • Vyřešit issue s implementací driveru senzorů
  • Implementovat algoritmus pro měření směru větru, respektive výpočet orientace z IMU snímače, lze převzít např. z kódu autopilota
  • Osadit na střechu auta GPS nebo autopilota pro určení směru větru vůči parametrům jízdy.

Patky pístů šestiosé platformy

20190412_163634

20190412_163654

Model je potřeba připravit na to, že se bude tisknout větším průměrem na podložce.
To znamená, že otvor pro šroub je potřeba zaslepit jednou vrstvou materiálu, aby zde mohl při tisku vznikout most.

Dále je potřeba ve spodní části dílu opravit tyto nedostatky:

  • Otvor pro píst musí být na stranách zploštělý, aby jednak píst byl v dílu na těsno. Zároveň šroub, který bude píst v dílu stahovat by neměl mít možnost díl deformovat
  • Šestihranný otvor má needekvátní rozměr vzhledem k velikosti hlavy šroubu. Šroub bych navrhoval použít M8 stejně jako je v horní části pístu. V případě nějakých problémů s jeho rozměry M6.
  • Šikmá část spojující píst s kuličkou kulového ložiska musí mít z vnější strany osazení, které bude doléhat na sploštělou stranu kuličky.

Překabelování palubního LCD

Protože iTec externí dokovací stanice používá pro HDMI nějaký nestandartní driver a rozfugování HDMI na Ubuntu je velmi složité (Může to být způsobeno hromadou dalších věcí - jako nekvalitní USB kabely)

Lenovo dokovací stanice obsahuje 2 grafické výstupy - VGA a DisplaPort (větší varianta). Je potřeba otestovat, jestli by fugovalo řešení DP - HDMI adaptér a cca 2 M HDMI kabelu. Dokovací stanice může pod rádiem zůstat pro napájení LCD displaye a případné připojení nějakého externího zařízení. Např joystick s touchapadem na ovládání displaye.

Zamlžování kamer

Do palubních kamer na střeše zřejmě prosakuje voda protože se zamlžují.
Řešení asi je do obalu vhodně udělat odvětrávací dírku, aby případná vlhkost měla kudy uniknout z obalu kamery.

Prostor pro palubní přístroje

Palubní přístroje a rozvody by bylo potřeba umístit na nějaké jednotné místo.

Je možné:

  • Přístroje našroubovat na zástěnku do kufru
  • Vyndat zadní autosedačku a namontovat na její místo nějaký rack ve kterém přístroje budou.

Opravit popřípadě vyřešit napájení palubního počítače z 12V

12V zdroj z číny přestal fugovat. Po jeho rozebrání bylo zjištěno, že v konektoru není 10k odpor, který by měl zajišťovat selekci maximálního výkonu dodaného zdrojem. Podle některých příspěvků (převážně na fórech) nekonečný odpor znamená 90W zdroj. Se zařazením 10k odporu by to mělo odpovídat 65W zdroji.

Např tady: http://forum.notebookreview.com/threads/thinkpad-adapter-resistor-values.681124/

Přehrávání zvuku v rádiu z palubního počítače

Je potřeba nějakým způsobem dostat zvuk z palubního počitače do rádia v autě. Zvuk by mělo být možné dostat do předního USB hubu (kam je připojen display) kde je, myslím, jack 3 mm výstup.

Je to potřeba pro hlášeni airspeed z autopilota. #9

@ChroustJan, myslíš, že by to šlo nějak vyřešit pomocí rádia, co je v autě?

Routování packetů MAVLinku

Je pravděpodobné, že bude potřeba zajistit routování MAVlink packetů mezi různými sítěmi tak, aby byl omezen datový tok.
Tato záležitost se týká zejména omezení datového toku skrz modemy, které nemohou přenášet zprávy z několika autopilotů přes jednu datovou linku. Je však potřeba některé zprávy posílat. Například může jít o MAVLink followme zprávy.

Jedním ze způsobů jak tuto záležitost implementovat je upravit některý z následujících nástrojů:

Tak aby umožňoval filtraci zpráv podobně jako IPtables. Zřejmě je potřeba něco jako MAVTables.

Generátor Followme zpráv

Pro automatické sledování auta potřebujeme, aby informace, které budou získány z #27 byly použity k vytvoření mavlink followme zprávy.

Možností iplementace této funkce je nekolik:

  • standalone aplikace která se připojuje ke zdroji dat
  • Aplikace v systému nuttix, který běží v autopilotovi.

Magnetický držák na telemetrickou antétu

K magnetickému držáku pro anemometr s venturiho trubicí je potřeba vytvořit adaptér na telemtrickou anténu.

Adaptér by měl vypadat tak, že to bude takové "víčko", kde bude vnější závit pro zašroubování do existujícího držáku. Na dně bude mít díru pro přišroubování antény. Díra musí mít průměr 12 mm. Mělo by to mít ještě osazení, aby to nebylo možné úplně zatočit a bylo oproti čemu to dotáhnout.

Existující držák.
MLAB-project/Modules#16

Telemetrická aplikace pro řidiče a operátora dronu

Telemetrická aplikace by měla být velmi jednoduchá a nabízet základní operace pro ovládání bezpilotních dronů.

Aplikace musí být optimalizovaná pro obrazovky s malým rozlišením a dotykovou plochou. Alternativní ovládání aplikace by mělo být několik tlačítek rozmístěných podél hrany displeje (nebo na jiném, snadno přístupném, místě)

Systém by měl fungovat tak, že bude několik obrazovek (záložek), které se budou moct postupně přepínat. Každá bude obsahovat jiné informace/operace. Na každé obrazovce bude zobrazeno pouze pár údajů tak, aby je bylo možné přečíst velmi rychle bez přerušení pozornosti hledáním dat na obrazovce.

Měly by existovat obrazovky:

  • Správa dronu - Armování, spuštění kalibrace všech senzorů,
  • Letové informace - GroundSpeed, AirSpeed, Výška, Vzdálenost, úmělý horizont
  • Stav baterií - podrobné informace o akumulátorech - napětí,
  • další...

Ke spojení s dronem by se mělo používat UDP spojení routované z palubního počítače.

Vyvařování chladící kapaliny z nádrže

Při běhu motoru na místě dochází ke zvýšení teploty v chladícím okruhu. Díky tomu teplota dosáhne bodu varu za normálního tlaku. Víčko nádrže pro chladící kapalinu, které má zajistit zvýšený tlak, ale netěsní. Proto dochází k úniku kapaliny ještě před tím, než sepne termostat ventilátoru chlazení, který spíná až při 95 stupňích.

Řešením je sehnat nové víčko na nádrž s chladící kapalinou.

Uchycení větrného rukávu na střechu auta

Větrný rukáv je momentálně uchycen jedním starým dílem z experimentálního uchycení vírníku na střechu.

Tento díl je potřeba upravit tak, aby byl záměnný se současnou konstrukcí pohyblivé platformy. Tj. aby ze šroubů nebylo nutné odstraňovat matky, které šrouby drží v desce auta a aby džák bylo možné uchytit křídlovými maticemi.

Upevnění hadice k výdechu ventilace auta - Yaris

Baterie vírníku je potřeba při teplotach pod 10°C vyhřívat. Jeden z možných způsobů je dovést teplý vzduch z ventilace auta pod samotný trup vírníku.

Na následujících obrázcích je navrhované umístění hadice.

20191118_171935

Hadice (o vnitřním průměru 60 mm) by na svém konci měla mít kruhový nástavec, který dosedne na kruhový výduch.
20191118_171841

Na hadici by o cca 5 cm níže měla být další objímka, která na své spodní straně bude místo pro nalepení suchého zipu. Druhá část zipu bude nalepena v "žlabu" výdechu.

20191118_171858

Hodice by mezi límcem k výdechu a suchým zipem měla být zmáčknuta. Tím dojde k domáčknutí límce k výdechu.

Pozemní úložiště parametrů z dronu a customizované parametry

Aby pozemní stanice (auto) bylo použitelné s více typy dronů, je potřeba jejich (nejen) softwarová rekonfigurace. V nejnižší vrstvě se jedná o změny parametrů. Například startovací/letová rychlost, cílové otáčky rotoru. V širším užití to může být třeba typ payloadu. Tato data je vhodné mít uložené v dronu samotném. Protože to bude kompatibilní i přes různé kusy pozmeních aut.

V autopilotu nelze mít nastavené vlastní parametry (Které nejsou implementované ve firmwaru). Proto je potřeba tyto úkoly rozdělit na dva.

Parametry z parametrů FW

Parametry, které obsahuje firmware je možné stáhnou snadno přes mavlink a ty si uložit v databázi v pozemní stanici. Všechny návazné systémy si tato data stáhnou z tohoto úložiště.

Parametry mimo FW

Bohužel existují parametry, které nepatří do FW - jsou to věci jako nastavení payloadu nebo jiné věci. Ty bych navrhoval vytvořit tak, že na SD kartě autopilota, bude nějaký "konfigurační" soubor. Pozemní stanice si ho stáhne přes MAVLINK FTP, rozparseruje ho a uloží do stejné DB.

První využití je pro rekonfiguraci terminálu a maximální airspeed ThunderFly-aerospace/TF-G2#62. Ale určitě postupně vznikne více míst, kde by se to hodilo.

Zpevnit krajní díl základny 6DOF plaformy

Krajní díly šestiosé platformy jsou nejtenčím místem v celé platformě. Bylo by vhodné je překreslit tak, aby uprostřed nebylo tak slabé místo. To lze vyřešit nějakým žebrem mezi ložisky k pístům.

Další úprava by měla spočívat ve změně směru šroubu mezi krajním a spojovacím dílem tak, aby šroub vedl z venku-hora dovnitř-dolů. To způsobí, že se platforma sama nebude nadzvedávat a bude se pak více opírat o desku na střeše auta.

20190831_173636_HDR

Montáž kamery do základny šestiosé platformy

Do kruhové části šestiosé platformy by bylo potřeba přidat USB kameru, která bude zespodu sledovat pohyblivou část platformy.

Typ kamery je DMM-1118. Minimální průměr otvoru pro objektiv je 15 mm. Montáž je vhodné provést šrouby M2 v rozích kamery.

Přidání wifi AP

Pro spojení více vnějších zařízení k MAVLink síti by bylo potřeba mít v autě wifi AP.
Na střeše auta by zřejmě měla být přídavná anténa pro připojení externích zařízení.

Duplikace MAVLink paketů

V MAVLink síti v TF-R1 vznikají duplicitní pakety. Je třeba zjistit, v jaké části sítě se tak děje a jak ji správně nastavit nebo provozovat.

Zvukové hlášení rychlosti dronu pro řidiče startovacího auta.

Protože se startovní a přistávací pozemní rychlost mění podle rychlosti větru, teploty a atmosférického tlaku, je vhodné řidiči správnou rychlost indikovat.
Indikátor může být buď jednoduchý se třemi barevnými/trojbarevnou LED. (Modrá, zelená, Červená).
Kdy modrá led indikuje příliš nízkou rychlost, zelená optimální a červená příliš vysokou rychlost.

Indikátor může být i složitější v nějaké formě HUD displeje, kde je pak možné zobrazovat i další informace, jako například optimální směr.

Ve všech případech by indikátor měl obsahovat i heartbeat palubních naváděcích systémů automobilu.

Záznam videa z IP kamer

Současné řěšení záznamu je citlivé na vnější vlivy. V případě že dojde k přerušění spojení k notebooku operátora, Tak se záznam přeruši.

Zřejmě je potřeba pro záznam zavést samostatný počítač pevně spojený s TF-R1. Operátor by pak měl vidět pouze stream, který ale primárně neslouží k záznamu.

Aerospace komunikátor - Interkom

Pro týmovou komunikaci při provozu UAV je potřeba spolehlivý hlasový komunikační nástroj, přenášející data po standardní síti, která je využívaná taktéž na přenos povelů a telemetrie UAV.

Jednou z možností je mumble, který ale má několik implementačních omezení:

Datový tok

  • Audio packety se posílají od každého klienta extra a adresují se každému klientovi
  • Server musí držet buffer a opakovat packety pro každého klienta zvlášť
  • Datový tok tak neroste s počtem uživatelů jako N ale jako N².

Výpočetní výkon

  • Mumble má inherentně imlementováno SHA šifrování, které zvyšuje náročnost na výpočetní výkon a i latenci
  • V důsledku toho, že od každého klienta se zvuk dekóduje extra, tak potřebný výpočetní výkon klienta roste s N.

Latence

  • Díky tomu, že dekódování audio packetů není v klientech implementováno zřejmě úplně asynchroně, tak zdržující se packety od jednoho užívatele brzdí přehrávání ostatních uživatelů

Požadavky na řešení

  • Klienti by měli data posílat jako multicast pakety. Je zbytečné zahltit tak i zařízení, se kterými to nesouvisí
  • Měla by existovat možnost data adresovat pouze určitým klientům. Například bude bot, který bude udávat určité informace o dronu. Tato data jsou důležitá například jen pro jednoho nebo skupinu operátorů. Podobnou funkci má v mumble Pymumble-abot, ten však neumí adresovat konkrétní uživatele

Podrobnější dokumentace mumble protokolu

Mavlink broadcast

Je potřeba zkusit, jestli není možné pomocí mavlink-routered vytvářet broadcast UDP pakety. To by pak mělo výhodu v tom, že by nebylo nutné nastavoat ručně IP adresu terminálu (PC operátora)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.