Uno dei problemi del FigSpec FS60-C su cui sto lavorando e' che i log files sono con un orario spostato di 6 ore in avanti rispetto al fuso italiano e che non sono valorizzati nel file figspec.gps i valori di yaw/pitch/roll
E' quindi necessario appoggiarsi ai dati loggati dal drone stesso con il suo sistema RTK
I dati sono contenuti nel telecomando in
Internal Storage / DJI / com.dji.industry.pilot / FlightRecord /
sia in formato DAT che in formato TXT entrambi formati binari codificati.
ATTENZIONE : i dati contenuti nel file DAT sono piu' numerosi dei dati contenuti nel file TXT (per esempio nel file DAT sono contenute le colonne WEATHER con le indicazioni del vento che sono assenti nel file TXT
Per estrarre i dati dal formato TXT si deve scaricare l'eseguibile da
https://github.com/lvauvillier/dji-log-parser/releases
ottenere una OpenAPI key tramite un account developer sul sito DJI e lanciare il comando
dji-log.exe .\dji\DJIFlightRecord_2026-07-31_[10-36-33].txt --api-key XXXXXXXXXf100d529d2329caba3 --csv vv.csv
altrimenti si puo' utilizzare il servizio on line
https://www.phantomhelp.com/logviewer/upload/
ATTENZIONE : i dati contenuti nel file csv esportato dal servizio on line sono piu' numerosi dei dati contenuti nel file TXT (per esempio sono contenute le colonne WEATHER con le indicazioni del vento che sono assenti dall'esportazione con dji-log locale)
L'aspetto da sottolineare e' che la quota di volo e' considerata come AGL (above ground level) rispetto al punto di decollo. Non c'e' direttamente una informazione di quota sul livelllo del mare del drone. Si ha invece l'informazione di Home.height (quota ellissoidica GPS) che viene pero' ripresa dal GPS del telecomando che non e' fornito di RTK
Le unità di misura possono essere in Sistema Internazionale od in Sistema Imperiale con le quote espresse in feet
OSD — stato di volo/telemetria principale
| Colonna | Significato | Unità / note |
|---|---|---|
OSD.latitude | Latitudine GPS del drone | gradi decimali (memorizzato in radianti nel file) |
OSD.longitude | Longitudine GPS del drone | gradi decimali (memorizzato in radianti nel file) |
OSD.height | Altezza sul punto di decollo (relative altitude) | metri |
OSD.altitude | Altitudine assoluta (quando presente) | metri |
OSD.xSpeed | Velocità orizzontale asse X (Nord/Est a seconda del riferimento) | m/s |
OSD.ySpeed | Velocità orizzontale asse Y | m/s |
OSD.zSpeed | Velocità verticale | m/s (positivo = salita, a seconda della convenzione) |
OSD.pitch | Assetto pitch del velivolo | gradi |
OSD.roll | Assetto roll del velivolo | gradi |
OSD.yaw | Prua/heading del velivolo | gradi (0–360) |
OSD.flycState | Stato del "flight controller" (modo di volo interno, es. GPS, ATTI, Sport, RTH, Auto Takeoff/Landing) | enum |
OSD.flycCommand | Ultimo comando ricevuto dal FC | enum |
OSD.flightAction | Azione automatica in corso (RTH, landing, ecc.) | enum |
OSD.groundOrSky | Se il drone è a terra o in volo | flag |
OSD.isMotorOn / OSD.isMotorUp | Stato motori | bool |
OSD.isSwaveWork | Stato "swave" (funzione interna) | bool |
OSD.goHomeStatus | Stato Return-to-Home | enum |
OSD.isOnGround | Rilevamento a terra | bool |
OSD.gpsLevel / OSD.gpsNum | Qualità/numero di satelliti GPS agganciati | intero (0–10+) |
OSD.nonGpsCause | Motivo di eventuale assenza segnale GPS | enum |
OSD.flyTime | Tempo di volo trascorso | secondi/decimi |
OSD.voltage | Tensione batteria (talvolta duplicato da BATTERY) | Volt |
OSD.windSpeed / OSD.windDirection | Vento stimato | m/s / gradi |
OSD.batteryType | Tipo batteria rilevata | enum |
OSD.vpsHeight | Altezza da sensore visivo/ultrasuoni (VPS) | metri |
OSD.motorStartFailedCause | Causa fallito avviamento motori (se applicabile) | enum |
GIMBAL — stato del gimbal/camera
| Colonna | Significato | Unità |
|---|---|---|
GIMBAL.pitch | Inclinazione gimbal | gradi |
GIMBAL.roll | Rollio gimbal | gradi |
GIMBAL.yaw | Imbardata gimbal | gradi |
GIMBAL.mode | Modalità gimbal (follow, FPV, free) | enum |
GIMBAL.isPitchAtLimit / isRollAtLimit / isYawAtLimit | Fine corsa raggiunto | bool |
GIMBAL.isStuck | Blocco meccanico rilevato | bool |
RC — stato del radiocomando
| Colonna | Significato | Unità |
|---|---|---|
RC.aileron, RC.elevator, RC.throttle, RC.rudder | Posizione stick (canali principali) | valore raw (es. 364–1684, centro ~1024) |
RC.mode | Posizione dello switch di modalità volo | enum |
RC.goHome | Stato pulsante RTH | bool |
RC.gimbalPitch | Rotellina controllo gimbal | valore raw |
RC.downlinkSignal / RC.uplinkSignal | Qualità collegamento RC↔drone | percentuale/dB |
HOME — punto di ritorno / riferimenti
| Colonna | Significato | Unità |
|---|---|---|
HOME.latitude / HOME.longitude | Coordinate del punto Home registrato | gradi |
HOME.height | Altezza di riferimento Home | metri |
HOME.isHomeRecord | Se l'home point è stato acquisito | bool |
HOME.goHomeMode | Modalità RTH configurata | enum |
HOME.maxAllowedHeight | Limite di altezza impostato | metri |
HOME.compassCalibrationStatus | Stato calibrazione bussola | enum |
Batteria — CENTER_BATTERY (batteria singola) / SMART_BATTERY (pacco intelligente, multi-batteria come sul M400)
| Colonna | Significato | Unità |
|---|---|---|
BATTERY.relativeCapacity | Percentuale di carica residua | % |
BATTERY.voltage | Tensione totale pacco | Volt (mV nel raw) |
BATTERY.current | Corrente istantanea (assorbimento) | mA/A |
BATTERY.currentTemperature / BATTERY.temperature | Temperatura celle | °C |
BATTERY.cellVoltage[1..n] | Tensione delle singole celle | Volt |
BATTERY.usefulTime | Autonomia residua stimata | secondi/minuti |
BATTERY.goHomeTime | Tempo stimato necessario per RTH | secondi |
BATTERY.landTime | Tempo stimato necessario per atterraggio | secondi |
BATTERY.batteryOnCharge | In carica sì/no | bool |
BATTERY.numberOfDischarge | Numero di cicli di scarica | intero |
BATTERY.serialNumber | Numero seriale pacco batteria | stringa |
APP_GPS — GPS lato app/RadioComando
| Colonna | Significato | Unità |
|---|---|---|
APP_GPS.latitude / APP_GPS.longitude | Posizione GPS del dispositivo mobile/RC | gradi |
APP_GPS.accuracy | Accuratezza stimata | metri |
RECOVER — metadati del volo
| Colonna | Significato |
|---|---|
RECOVER.droneType | Modello del drone (es. Matrice 400) |
RECOVER.appType | App usata (DJI GO, GO 4, Fly, Pilot 2) |
RECOVER.appVersion | Versione app (1/2/3 = major.minor.patch) |
RECOVER.aircraftSn / RECOVER.aircraftName | Numero seriale e nome assegnato al drone |
RECOVER.cameraSn | Seriale della camera/payload |
RECOVER.rcSn | Seriale del radiocomando |
RECOVER.batterySn | Seriale batteria |
RECOVER.activeTimestamp | Timestamp di attivazione registrazione |
DETAILS — riepilogo del volo (calcolato a fine registrazione)
| Colonna | Significato | Unità |
|---|---|---|
DETAILS.latitude / DETAILS.longitude | Posizione di decollo | gradi |
DETAILS.city / DETAILS.area / DETAILS.street | Geocoding inverso della zona di volo | testo |
DETAILS.totalDistance | Distanza totale percorsa | metri |
DETAILS.totalTime | Durata totale volo | secondi |
DETAILS.maxHeight | Altezza massima raggiunta | metri |
DETAILS.maxHorizontalSpeed | Velocità orizzontale massima | m/s |
DETAILS.maxVerticalSpeed | Velocità verticale massima | m/s |
DETAILS.photoNum / DETAILS.videoTime | Numero foto scattate / tempo video registrato | intero / secondi |
Altri tipi di record
| Tipo record | Contenuto |
|---|---|
CUSTOM | Metadati custom, es. CUSTOM.updateTime (timestamp locale della riga) |
DEFORM | Stato apertura/chiusura bracci (drone pieghevole) |
APP_TIP / APP_WARN / APP_SER_WARN | Messaggi di avviso/errore mostrati in app durante il volo (testo) |
FIRMWARE | Versioni firmware dei vari componenti (FC, ESC, RC, camera, batteria...) |
COMPONENT | Elenco componenti rilevati/collegati (per aeromobili modulari come il M400) |
RC_GPS, RC_DEBUG, OFDM_DEBUG, VISION_GROUP, VISION_WARN, MC_PARAM, APP_OPERATION | Formato non documentato pubblicamente — noti solo per nome, non per struttura |
JPEG | Miniature/fotogrammi JPEG incorporati nel log (non telemetria) |
questi invece sono i campi completi
CUSTOM.date [local],
CUSTOM.updateTime [local],
OSD.flyTime,OSD.flyTime [s],7
OSD.latitude,OSD.
longitude,OSD.height [ft],
OSD.heightMax [ft],
OSD.vpsHeight [ft],
OSD.altitude [ft],
OSD.mileage [ft],
OSD.hSpeed [MPH],
OSD.hSpeedMax [MPH],
OSD.xSpeed [MPH],
OSD.xSpeedMax [MPH],
OSD.ySpeed [MPH],
OSD.ySpeedMax [MPH],
OSD.zSpeed [MPH],
OSD.zSpeedMax [MPH],
OSD.pitch,OSD.roll,
OSD.yaw,OSD.yaw [360],
OSD.directionOfTravel,
OSD.flycState,
OSD.flycCommand,
OSD.flightAction,
OSD.gpsNum,
OSD.gpsLevel,
OSD.isGPSUsed,
OSD.nonGPSCause,
OSD.droneType,
OSD.isSwaveWork,
OSD.waveError,
OSD.goHomeStatus,
OSD.batteryType,
OSD.ctrlDevice,
OSD.isOnGround,
OSD.isMotorOn,
OSD.isMotorBlocked,
OSD.motorStartFailedCause,
OSD.motorFailReason,
OSD.isImuPreheated,
OSD.imuInitFailReason,
OSD.isAcceletorOverRange,
OSD.isBarometerDeadInAir,
OSD.isCompassError,
OSD.isGoHomeHeightModified,
OSD.canIOCWork,
OSD.isNotEnoughForce,
OSD.isOutOfLimit,
OSD.isPropellerCatapult,
OSD.isVibrating,
OSD.isVisionUsed,
OSD.voltageWarning,
GIMBAL.mode,
GIMBAL.pitch,
GIMBAL.roll,
GIMBAL.yaw,
GIMBAL.yaw [360],
GIMBAL.isPitchAtLimit,
GIMBAL.isRollAtLimit,
GIMBAL.isYawAtLimit,
GIMBAL.isStuck,
CAMERA.isPhoto,
CAMERA.isVideo,
CAMERA.filename,
CAMERA.sdCardIsInserted,
CAMERA.sdCardState,
RC.downlinkSignal,
RC.uplinkSignal,
RC.aileron,
RC.elevator,
RC.throttle,
RC.rudder,
RC.mode,
RC.goHomeDepressed,
RC.recordDepressed,
RC.shutterDepressed,
RC.playbackDepressed,
RC.wheelDepressed,
RC.wheelOffset,
RC.custom1Depressed,
RC.custom2Depressed,
RC.custom3Depressed,
RC.custom4Depressed,
BATTERY.chargeLevel,
BATTERY.currentPV [V],
BATTERY.currentCapacity [mAh],
BATTERY.fullCapacity [mAh],
BATTERY.voltage [V],
BATTERY.isCellVoltageEstimated,
BATTERY.cellVoltage1 [V],
BATTERY.cellVoltage2 [V],
BATTERY.cellVoltage3 [V],
BATTERY.cellVoltage4 [V],
BATTERY.cellVoltage5 [V],
BATTERY.cellVoltage6 [V],
BATTERY.cellVoltage7 [V],
BATTERY.cellVoltage8 [V],
BATTERY.cellVoltage9 [V],
BATTERY.cellVoltage10 [V],
BATTERY.cellVoltage11 [V],
BATTERY.cellVoltage12 [V],
BATTERY.maxCellVoltageDeviation,
BATTERY.isCellVoltageDeviationHigh,
BATTERY.isVoltageLow,
BATTERY.current [A],
BATTERY.temperature [F],
BATTERY.minTemperature [F],
BATTERY.maxTemperature [F],
BATTERY.usefulTime [s],
BATTERY.goHomeTime [s],
BATTERY.landTime [s],
BATTERY.goHomeBattery,
BATTERY.landBattery,
BATTERY.safeFlyRadius,
BATTERY.volumeConsume,
BATTERY.status,
BATTERY.goHomeStatus,
BATTERY.goHomeCountdown,
BATTERY.lowWarning,
BATTERY.lowWarningGoHome,
BATTERY.seriousLowWarning,
BATTERY.seriousLowWarningLanding,
BATTERY.timesCharged,
MC.failSafeAction,
MC.isObstacleAvoidanceEnabled,4
MC.isCollisionAvoidanceEnabled,
MC.isRthObstacleAvoidanceEnabled,
MC.isBraking,MC.isAvoidingObstacle,
MC.isAvoidingActiveObstacle,
MC.isAscentLimitedByObstacle,
MC.isLandingConfirmationNeeded,
MC.atLowAltitudeLimit,
MC.atDistanceLimit,
MC.atAirportAltitudeLimit,
MC.atAirportBoundary,
HOME.latitude,
HOME.longitude,
HOME.distance [ft],
HOME.height [ft],
HOME.heightLimit [ft],
HOME.isHomeRecord,
HOME.goHomeMode,
HOME.aircraftHeadDirection,
HOME.isDynamicHomePointEnabled,
HOME.isReachedLimitDistance,
HOME.isReachedLimitHeight,
HOME.isCompassCalibrating,
HOME.compassCalibrationState,
HOME.isMultipleFlightModeEnabled,
HOME.isBeginnerMode,
HOME.isIOCEnabled,
HOME.iocMode,
HOME.goHomeHeight [ft],
HOME.courseLockAngle,
HOME.forceLandingHeight [ft],
HOME.dataRecorderFileIndex,
WEATHER.windDirection,
WEATHER.windRelativeDirection,
WEATHER.windSpeed [MPH],
WEATHER.maxWindSpeed [MPH],
WEATHER.windStrength,
WEATHER.isFacingWind,
WEATHER.isFlyingIntoWind,
RECOVER.appType,
RECOVER.appVersion,
RECOVER.aircraftName,
RECOVER.aircraftSerial,
RECOVER.cameraSerial,
RECOVER.rcSerial,
RECOVER.batterySerial,
DETAILS.totalTime [s],
DETAILS.totalDistance [ft],
DETAILS.maxHeight [ft],
DETAILS.maxHorizontalSpeed [MPH],
DETAILS.maxVerticalSpeed [MPH],
DETAILS.photoNum,
DETAILS.videoTime [s],
DETAILS.aircraftName,
DETAILS.aircraftSerial,
DETAILS.cameraSerial,
DETAILS.rcSerial,
DETAILS.batterySerial,
DETAILS.appName,
DETAILS.appType,
DETAILS.appVersion,
DETAILS.guid,
SERIAL.flightController,
SERIAL.camera,
SERIAL.gimbal,
SERIAL.rc,
SERIAL.battery,
SERIAL.battery2,
APPGPS.latitude,
APPGPS.longitude,
APPGPS.accuracy,
APP.tip,
APP.warning
Nessun commento:
Posta un commento