ThunderFly-aerospace / PX4-Autopilot

PX4 Professional Autopilot Firmware
http://px4.io
BSD 3-Clause "New" or "Revised" License
4 stars 4 forks source link

Podpora simulatoru FilghtGear pro SITL #16

Closed slimonslimon closed 4 years ago

slimonslimon commented 5 years ago

Ve verzi PX4 cca 1.4 býval nějak podporován simulátor FlightGear (dále jen FG). Podpora s novými stránkami PX4 zmizela, díky čemuž chybí tehdejší dokumentace.

Cíle tohoto issue je dosahnout spolupráce aktuálního FG s aktuální PX4, protože ve FG je hotový, funkční rotor.

Co se mi podařilo najít: FlightGear umí pomocí "Generic Communication" posílat a příjmat potřebná data ze simulace a do simulace. http://wiki.flightgear.org/Generic_protocol https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/Docs/README.IO#l20

XML soubor, který definuje protokol a odkazuje na potřebné nody ve stromu konfigurací FG lze získat pomocí QGroundControl, který v HIL umí teoreticky spolupracovat s FG (v praxi nikoliv). Nebo v Ardupilotovi: https://github.com/dronekit/ardupilot-releases/tree/master/Tools/FlightGear Kde je i aplikace převádějící tyto zprávy seriové linky pro Hardware a možná i něco s Mavlinkem.

Co je dle mého názoru potřeba naprogramovat je aplikace, která se připojí na flightgear a dále na Mavlink PX4 (SITL) viz: https://dev.px4.io/v1.9.0/en/simulation/

příklad Mavlink komunikace s PX4 lze nalézt v pluginech Gazeba: https://github.com/ThunderFly-aerospace/sitl_gazebo/blob/autogyro-sitl/src/gazebo_mavlink_interface.cpp

slimonslimon commented 5 years ago

Plán boje:

zaklad:

Podpora Autogyro:

kaklik commented 5 years ago

Možná, že zde by bylo možné najít spojence: https://github.com/PX4/Firmware/issues/10425 Je tam třeba @clolsonus, který vypadá, že by ti s tím rád pomohl.

slimonslimon commented 5 years ago

No vidíš to, já tohle "samozžejmě" četl, ale viděl jse datum 2016, nenapadlo mě, že @clolsonus na to reagoval letos...

spolupráci promyslím, zkusím kontaktovat... (dle levelu mojí asocíálnosti to bude tak do týdne)

slimonslimon commented 4 years ago

Poznámka: FG posílá data maximálně stejnou frekvencí jako má FrameRate, při dosažení FPS 60, se zdá, že data budí v QGC korelují s budíky ve FG od commitu: 0b99cf4e6055477d2d5a2168ad11a48d2c0dad3b

občas si PX4 stěžuje na TImeout akceleratoru, ale ne moc často.

slimonslimon commented 4 years ago

První lítatelná verze: 4ffc1f483b9416fd8b4474f72bd246d3f0d0a695

kaklik commented 4 years ago

Poznámka: FG posílá data maximálně stejnou frekvencí jako má FrameRate, při dosažení FPS 60, se zdá, že data budí v QGC korelují s budíky ve FG od commitu: 0b99cf4

občas si PX4 stěžuje na TImeout akceleratoru, ale ne moc často.

Podle popisu který je tady. si myslím. že je to tak. že FDM vždy běží na ~120Hz. Ale hodnoty se do property-tree zapisují skutečně jen podle FPS, takže se díky přenosu skrz property-tree zahazují některé výpočty. Podle toho odkazovaného popisu ale FDM samotný běží fixně na téměř přesně 120 Hz (problém nastává jen když FPS není soudělný se 120Hz), takže je celkem škoda, ze se v nejlepším případě zahazuje polovina výsledků výpočtu, protože FPS nemůže být více jak 60Hz.

kaklik commented 4 years ago

No vypadá to, že vyčerpávající odpovědí je toto vlákno na fg fóru. Update rate jednotlivých parametrů v property-tree je tak různý a lze ho ovlivnit nastavením.