imrasp / LearnVI_Drone

7 stars 1 forks source link

Pixhawk message timestamps time since boot to unix timestamp #9

Closed imrasp closed 6 years ago

imrasp commented 6 years ago

Try to get timestamp of pixhawk message

http://qgroundcontrol.org/mavlink/start MAVLink packet the anatomy of one packet. It is inspired by the CAN and SAE AS-4 standards. image

Byte Index Content Value Explanation
0 Packet start sign v1.0: 0xFE (v0.9: 0x55) Indicates the start of a new packet.
1 Payload length 0 - 255 Indicates length of the following payload.
2 Packet sequence 0 - 255 Each component counts up his send sequence. Allows to detect packet loss
3 System ID 1 - 255 ID of the SENDING system. Allows to differentiate different MAVs on the same network.
4 Component ID 0 - 255 ID of the SENDING component. Allows to differentiate different components of the same system, e.g. the IMU and the autopilot.
5 Message ID 0 - 255 ID of the message - the id defines what the payload “means” and how it should be correctly decoded.
6 to (n+6) Data (0 - 255) bytes Data of the message, depends on the message id.
(n+7) to (n+8) Checksum (low byte, high byte) ITU X.25/SAE AS-4 hash, excluding packet start sign, so bytes 1..(n+6) Note: The checksum also includes MAVLINK_CRC_EXTRA (Number computed from message fields. Protects the packet from decoding a different version of the same packet but with different variables).
x baudrate (8N1)
1 char = 10 bits
1 bit = 1/x second (travel) 
1 char = 10/x second (travel time)
imrasp commented 6 years ago

8N1 is sent start 1 bit + 8 bit + stop 1 bit

1 float = 4 bytes
1 int64 = 8 bytes
1 int16 = 4 bytes

HIGHRES_IMU message has x1 int64, x1 int16, x13 float = 8 + 4 + 13(4) = 64 bytes start 1 bit message =
stop 1 bit

http://mavlink.org/messages/common HIGHRES_IMU message The IMU readings in SI units in NED body frame

Field Name Type Description
time_usec uint64_t Timestamp (microseconds, synced to UNIX time or since system boot)
xacc float X acceleration (m/s^2)
yacc float Y acceleration (m/s^2)
zacc float Z acceleration (m/s^2)
xgyro float Angular speed around X axis (rad / sec)
ygyro float Angular speed around Y axis (rad / sec)
zgyro float Angular speed around Z axis (rad / sec)
xmag float X Magnetic field (Gauss)
ymag float Y Magnetic field (Gauss)
zmag float Z Magnetic field (Gauss)
abs_pressure float Absolute pressure in millibar
diff_pressure float Differential pressure in millibar
pressure_alt float Altitude calculated from pressure
temperature float Temperature in degrees celsius
fields_updated uint16_t Bitmask for fields that have updated since last message, bit 0 = xacc, bit 12: temperature
teeramoo commented 6 years ago

MAVLink --> Transport layer UART --> Physical layer

https://www.hitex.com/software-components/tcpip/cmx-tcpip/

imrasp commented 6 years ago

System time result 1st

time_unix_usec = 946686708551000 and time_boot_ms = 1908490
time_unix_usec = 946686708655000 and time_boot_ms = 1908594
time_unix_usec = 946686708752000 and time_boot_ms = 1908691
time_unix_usec = 946686708852000 and time_boot_ms = 1908791
time_unix_usec = 946686708956000 and time_boot_ms = 1908895
time_unix_usec = 946686709058000 and time_boot_ms = 1908997
time_unix_usec = 946686709160000 and time_boot_ms = 1909099

946686708551000 = Saturday, January 1, 2000 12:31:48.551 AM

2nd

time_unix_usec = 946686996662000 and time_boot_ms = 2196601
time_unix_usec = 946686996764000 and time_boot_ms = 2196703
time_unix_usec = 946686997070000 and time_boot_ms = 2197009
time_unix_usec = 946686997170000 and time_boot_ms = 2197109
time_unix_usec = 946686997274000 and time_boot_ms = 2197213
time_unix_usec = 946686997375000 and time_boot_ms = 2197314
time_unix_usec = 946686997480000 and time_boot_ms = 2197419
time_unix_usec = 946686997680000 and time_boot_ms = 2197619
time_unix_usec = 946686997879000 and time_boot_ms = 2197818

946686996662000 = Saturday, January 1, 2000 12:36:36.662 AM reboot

time_unix_usec = 946687366454000 and time_boot_ms = 45393
time_unix_usec = 946687366555000 and time_boot_ms = 45494
time_unix_usec = 946687366651000 and time_boot_ms = 45590
time_unix_usec = 946687366756000 and time_boot_ms = 45695
time_unix_usec = 946687366855000 and time_boot_ms = 45794
time_unix_usec = 946687367058000 and time_boot_ms = 45997
time_unix_usec = 946687367156000 and time_boot_ms = 46095
time_unix_usec = 946687367356000 and time_boot_ms = 46295
time_unix_usec = 946687367455000 and time_boot_ms = 46394

946687366454000 = Saturday, January 1, 2000 12:42:46.454 AM

imrasp commented 6 years ago

Outdoor

time_unix_usec = 1512989089744652 and time_boot_ms = 208376
time_unix_usec = 1512989090050652 and time_boot_ms = 208683
time_unix_usec = 1512989090151652 and time_boot_ms = 208784
time_unix_usec = 1512989090355652 and time_boot_ms = 208987
time_unix_usec = 1512989090451652 and time_boot_ms = 209083
time_unix_usec = 1512989090558652 and time_boot_ms = 209190
time_unix_usec = 1512989090654652 and time_boot_ms = 209287
time_unix_usec = 1512989090758652 and time_boot_ms = 209391
time_unix_usec = 1512989090857652 and time_boot_ms = 209492

1512989089744652 = Monday, December 11, 2017 10:44:49.745 AM

2nd attempt

time_unix_usec = 1512989203487626 and time_boot_ms = 322129
time_unix_usec = 1512989203586626 and time_boot_ms = 322229
time_unix_usec = 1512989203687626 and time_boot_ms = 322333
time_unix_usec = 1512989203891626 and time_boot_ms = 322538
time_unix_usec = 1512989204093626 and time_boot_ms = 322738
time_unix_usec = 1512989204195626 and time_boot_ms = 322840
time_unix_usec = 1512989204295626 and time_boot_ms = 322944
time_unix_usec = 1512989204501626 and time_boot_ms = 323147
time_unix_usec = 1512989204603626 and time_boot_ms = 323249

1512989203487626 = Monday, December 11, 2017 10:46:43.488 AM

highres_imu

highres_imu::time_usec = 1510416891
highres_imu::time_usec = 1510420891
highres_imu::time_usec = 1510428891
highres_imu::time_usec = 1510432901
highres_imu::time_usec = 1510436891
highres_imu::time_usec = 1510444891
highres_imu::time_usec = 1510448891
highres_imu::time_usec = 1510452891
highres_imu::time_usec = 1510456891
highres_imu::time_usec = 1510460891
highres_imu::time_usec = 1510468913
highres_imu::time_usec = 1510472891
highres_imu::time_usec = 1510476891
highres_imu::time_usec = 1510480891
highres_imu::time_usec = 1510488923
highres_imu::time_usec = 1510493691
time_unix_usec = 1512990391707278 and time_boot_ms = 1510498
highres_imu::time_usec = 1510498491
highres_imu::time_usec = 1510506491
highres_imu::time_usec = 1510510491
highres_imu::time_usec = 1510514491
highres_imu::time_usec = 1510518491
highres_imu::time_usec = 1510522538
highres_imu::time_usec = 1510526491
highres_imu::time_usec = 1510534491
highres_imu::time_usec = 1510538491
highres_imu::time_usec = 1510542506
highres_imu::time_usec = 1510546491
highres_imu::time_usec = 1510550511
highres_imu::time_usec = 1510558491
highres_imu::time_usec = 1510562491
highres_imu::time_usec = 1510566491
highres_imu::time_usec = 1510574491
highres_imu::time_usec = 1510578491
highres_imu::time_usec = 1510582491
highres_imu::time_usec = 1510586491
highres_imu::time_usec = 1510594491
time_unix_usec = 1512990391803278 and time_boot_ms = 1510598

1512990391707278 = Monday, December 11, 2017 11:06:31.707 AM

2nd attempt

highres_imu::time_usec = 1624981691
highres_imu::time_usec = 1624985691
highres_imu::time_usec = 1624994491
highres_imu::time_usec = 1624998491
highres_imu::time_usec = 1625002493
highres_imu::time_usec = 1625006491
highres_imu::time_usec = 1625014491
highres_imu::time_usec = 1625018491
highres_imu::time_usec = 1625022557
highres_imu::time_usec = 1625026491
highres_imu::time_usec = 1625034491
highres_imu::time_usec = 1625038491
highres_imu::time_usec = 1625042501
highres_imu::time_usec = 1625050522
highres_imu::time_usec = 1625054491
highres_imu::time_usec = 1625058491
highres_imu::time_usec = 1625062498
highres_imu::time_usec = 1625070533
highres_imu::time_usec = 1625074491
time_unix_usec = 1512990506274242 and time_boot_ms = 1625080
highres_imu::time_usec = 1625082493
highres_imu::time_usec = 1625086491
highres_imu::time_usec = 1625090502
highres_imu::time_usec = 1625094491
highres_imu::time_usec = 1625098491
highres_imu::time_usec = 1625102491
highres_imu::time_usec = 1625106513
highres_imu::time_usec = 1625114491
highres_imu::time_usec = 1625118491
highres_imu::time_usec = 1625122491
highres_imu::time_usec = 1625130491
highres_imu::time_usec = 1625134491
highres_imu::time_usec = 1625138491
highres_imu::time_usec = 1625142491
highres_imu::time_usec = 1625146502
highres_imu::time_usec = 1625154491
highres_imu::time_usec = 1625158491
highres_imu::time_usec = 1625162491
highres_imu::time_usec = 1625170491
highres_imu::time_usec = 1625174491
time_unix_usec = 1512990506372242 and time_boot_ms = 1625178

1512990506274242 = Monday, December 11, 2017 11:08:26.274 AM

Reboot

time_unix_usec = 1512990679694292 and time_boot_ms = 56778
highres_imu::time_usec = 56783261
highres_imu::time_usec = 56787261
highres_imu::time_usec = 56791272
highres_imu::time_usec = 56799297
highres_imu::time_usec = 56803261
highres_imu::time_usec = 56807261
highres_imu::time_usec = 56815261
highres_imu::time_usec = 56819261
highres_imu::time_usec = 56823261
highres_imu::time_usec = 56827261
highres_imu::time_usec = 56835269
highres_imu::time_usec = 56839261
highres_imu::time_usec = 56847261
highres_imu::time_usec = 56851261
highres_imu::time_usec = 56859261
highres_imu::time_usec = 56863261
highres_imu::time_usec = 56867261
highres_imu::time_usec = 56875301
highres_imu::time_usec = 56879261
time_unix_usec = 1512990679803292 and time_boot_ms = 56886
highres_imu::time_usec = 56887263
highres_imu::time_usec = 56891261
highres_imu::time_usec = 56895268
highres_imu::time_usec = 56899261
highres_imu::time_usec = 56907260
highres_imu::time_usec = 56911261
highres_imu::time_usec = 56919261
highres_imu::time_usec = 56927261
highres_imu::time_usec = 56931261
highres_imu::time_usec = 56935261
highres_imu::time_usec = 56939261
highres_imu::time_usec = 56943261
highres_imu::time_usec = 56947261
highres_imu::time_usec = 56955261
highres_imu::time_usec = 56959261
highres_imu::time_usec = 56963261
highres_imu::time_usec = 56971273
highres_imu::time_usec = 56980066
time_unix_usec = 1512990679900292 and time_boot_ms = 56983

1512990679694292 = Monday, December 11, 2017 11:11:19.694 AM

2nd attempt

highres_imu::time_usec = 166626461
highres_imu::time_usec = 166630461
highres_imu::time_usec = 166638487
highres_imu::time_usec = 166642461
highres_imu::time_usec = 166646461
highres_imu::time_usec = 166650461
highres_imu::time_usec = 166658461
highres_imu::time_usec = 166662461
highres_imu::time_usec = 166666461
time_unix_usec = 1512990789574258 and time_boot_ms = 166672
highres_imu::time_usec = 166674461
highres_imu::time_usec = 166678467
highres_imu::time_usec = 166682461
highres_imu::time_usec = 166686461
highres_imu::time_usec = 166694461
highres_imu::time_usec = 166698461
highres_imu::time_usec = 166702461
highres_imu::time_usec = 166710461
highres_imu::time_usec = 166714461
highres_imu::time_usec = 166718461
highres_imu::time_usec = 166722461
highres_imu::time_usec = 166730462
highres_imu::time_usec = 166734461
highres_imu::time_usec = 166738506
highres_imu::time_usec = 166746490
highres_imu::time_usec = 166750469
highres_imu::time_usec = 166754461
highres_imu::time_usec = 166762460
highres_imu::time_usec = 166766510
highres_imu::time_usec = 166770461
time_unix_usec = 1512990789679258 and time_boot_ms = 166777
highres_imu::time_usec = 166778461
highres_imu::time_usec = 166782461
highres_imu::time_usec = 166786488
highres_imu::time_usec = 166790461
highres_imu::time_usec = 166794461
highres_imu::time_usec = 166798461
highres_imu::time_usec = 166802461
highres_imu::time_usec = 166810461
highres_imu::time_usec = 166814461
highres_imu::time_usec = 166819261
highres_imu::time_usec = 166824063

1512990789574258 = Monday, December 11, 2017 11:13:09.574 AM

3th attempt

highres_imu::time_usec = 282408861
highres_imu::time_usec = 282412861
highres_imu::time_usec = 282416861
highres_imu::time_usec = 282420861
highres_imu::time_usec = 282428861
highres_imu::time_usec = 282432861
highres_imu::time_usec = 282436861
highres_imu::time_usec = 282440861
highres_imu::time_usec = 282444892
highres_imu::time_usec = 282452861
highres_imu::time_usec = 282456910
highres_imu::time_usec = 282460861
highres_imu::time_usec = 282468861
highres_imu::time_usec = 282472864
highres_imu::time_usec = 282476861
time_unix_usec = 1512990905368221 and time_boot_ms = 282480
highres_imu::time_usec = 282480861
highres_imu::time_usec = 282488861
highres_imu::time_usec = 282492861
highres_imu::time_usec = 282496862
highres_imu::time_usec = 282504861
highres_imu::time_usec = 282508861
highres_imu::time_usec = 282512865
highres_imu::time_usec = 282516861
highres_imu::time_usec = 282524861
highres_imu::time_usec = 282528861
highres_imu::time_usec = 282532884
highres_imu::time_usec = 282536861
highres_imu::time_usec = 282544861
highres_imu::time_usec = 282548861
highres_imu::time_usec = 282552895
highres_imu::time_usec = 282556861
highres_imu::time_usec = 282564861
highres_imu::time_usec = 282568861
highres_imu::time_usec = 282572864
highres_imu::time_usec = 282576861
time_unix_usec = 1512990905472221 and time_boot_ms = 282586
highres_imu::time_usec = 282588861
highres_imu::time_usec = 282592897
highres_imu::time_usec = 282596861
highres_imu::time_usec = 282600861
highres_imu::time_usec = 282604861

1512990905368221 Monday, December 11, 2017 11:15:05.368 AM

GPS lost (gps 5 hdop 3.7)

highres_imu::time_usec = 538055282
highres_imu::time_usec = 538059261
highres_imu::time_usec = 538067261
highres_imu::time_usec = 538075266
highres_imu::time_usec = 538079261
time_unix_usec = 1512991160949140 and time_boot_ms = 538086
highres_imu::time_usec = 538087268
highres_imu::time_usec = 538091261
highres_imu::time_usec = 538095273
highres_imu::time_usec = 538099262
highres_imu::time_usec = 538107261
highres_imu::time_usec = 538111261
highres_imu::time_usec = 538115261
highres_imu::time_usec = 538119307
highres_imu::time_usec = 538127261
highres_imu::time_usec = 538131261
highres_imu::time_usec = 538139261
highres_imu::time_usec = 538143261
highres_imu::time_usec = 538151261
highres_imu::time_usec = 538155261
highres_imu::time_usec = 538163264
highres_imu::time_usec = 538167261
highres_imu::time_usec = 538175261
highres_imu::time_usec = 538183272
time_unix_usec = 1512991161052140 and time_boot_ms = 538189
highres_imu::time_usec = 538191261
highres_imu::time_usec = 538195261

1512991160949140 Monday, December 11, 2017 11:19:20.949 AM

2nd attempt

highres_imu::time_usec = 800502470
highres_imu::time_usec = 800506461
highres_imu::time_usec = 800514461
time_unix_usec = 1512991423356168 and time_boot_ms = 800517
highres_imu::time_usec = 800518506
highres_imu::time_usec = 800522493
highres_imu::time_usec = 800530461
highres_imu::time_usec = 800538461
highres_imu::time_usec = 800542468
highres_imu::time_usec = 800546461
highres_imu::time_usec = 800554460
highres_imu::time_usec = 800562488
highres_imu::time_usec = 800566461
highres_imu::time_usec = 800574461
highres_imu::time_usec = 800578461
highres_imu::time_usec = 800586471
highres_imu::time_usec = 800590461
highres_imu::time_usec = 800594461
highres_imu::time_usec = 800598461
highres_imu::time_usec = 800602497
highres_imu::time_usec = 800607261
highres_imu::time_usec = 800616062
time_unix_usec = 1512991423457168 and time_boot_ms = 800618

1512991423356168 Monday, December 11, 2017 11:23:43.356 AM link to log (log_no_gps2.txt)

3th attempt (gps 0 hdop 100.0)

highres_imu::time_usec = 1202853663
highres_imu::time_usec = 1202857661
highres_imu::time_usec = 1202861706
highres_imu::time_usec = 1202865661
time_unix_usec = 1512991825663946 and time_boot_ms = 1202873
highres_imu::time_usec = 1202873687
highres_imu::time_usec = 1202877661
highres_imu::time_usec = 1202881680
highres_imu::time_usec = 1202889661
highres_imu::time_usec = 1202893661
highres_imu::time_usec = 1202897661
highres_imu::time_usec = 1202901661
highres_imu::time_usec = 1202905661
highres_imu::time_usec = 1202910461
highres_imu::time_usec = 1202918462
highres_imu::time_usec = 1202922461
highres_imu::time_usec = 1202926461
highres_imu::time_usec = 1202934510
highres_imu::time_usec = 1202942461
highres_imu::time_usec = 1202946461
highres_imu::time_usec = 1202950461
highres_imu::time_usec = 1202958461
highres_imu::time_usec = 1202962497
highres_imu::time_usec = 1202966461
time_unix_usec = 1512991825762946 and time_boot_ms = 1202972
highres_imu::time_usec = 1202974460
highres_imu::time_usec = 1202978461

1512991825663946 Monday, December 11, 2017 11:30:25.664 AM link to log (log_no_gps3.txt)

Reboot

highres_imu::time_usec = 426314455
highres_imu::time_usec = 426322455
highres_imu::time_usec = 426330460
time_unix_usec = 1512992492230395 and time_boot_ms = 426333
highres_imu::time_usec = 426334455
highres_imu::time_usec = 426338455
highres_imu::time_usec = 426342455
highres_imu::time_usec = 426346455
highres_imu::time_usec = 426350489
highres_imu::time_usec = 426358455
highres_imu::time_usec = 426362462
highres_imu::time_usec = 426366455
highres_imu::time_usec = 426374455
highres_imu::time_usec = 426382455
highres_imu::time_usec = 426386455
highres_imu::time_usec = 426390457
highres_imu::time_usec = 426398466
highres_imu::time_usec = 426402455
highres_imu::time_usec = 426406455
highres_imu::time_usec = 426410467
highres_imu::time_usec = 426418456
highres_imu::time_usec = 426422455
highres_imu::time_usec = 426430455
time_unix_usec = 1512992492330395 and time_boot_ms = 426433
highres_imu::time_usec = 426434455

1512992492230395 Monday, December 11, 2017 11:41:32.230 AM link to log (log_no_gps4.txt)

2nd attempt

highres_imu::time_usec = 722446455
highres_imu::time_usec = 722450455
highres_imu::time_usec = 722458486
highres_imu::time_usec = 722466455
highres_imu::time_usec = 722474455
time_unix_usec = 1512992788345297 and time_boot_ms = 722480

1512992788345297 Monday, December 11, 2017 11:46:28.345 AM link to log (log_no_gps5.txt)

2nd Reboot after lost GPS

highres_imu::time_usec = 284744261
highres_imu::time_usec = 284748265
highres_imu::time_usec = 284752261
highres_imu::time_usec = 284760261
highres_imu::time_usec = 284768289
highres_imu::time_usec = 284772264
highres_imu::time_usec = 284776261
highres_imu::time_usec = 284784261
time_unix_usec = 1512993213632035 and time_boot_ms = 284787

1512993213632035 = Monday, December 11, 2017 11:53:33.632 AM

** REBOOT mean reboot both pixhawk and odroid at the same time

imrasp commented 6 years ago

Reboot after leaving drone without GPS for a long time

highres_imu::time_usec = 698403469
highres_imu::time_usec = 698407458
highres_imu::time_usec = 698411458
highres_imu::time_usec = 698419458
highres_imu::time_usec = 698427497
highres_imu::time_usec = 698431458
highres_imu::time_usec = 698435458
highres_imu::time_usec = 698443467
highres_imu::time_usec = 698447458
highres_imu::time_usec = 698451459
highres_imu::time_usec = 698455458
highres_imu::time_usec = 698463487
highres_imu::time_usec = 698467458
highres_imu::time_usec = 698471460
time_unix_usec = 946685498540000 and time_boot_ms = 698479

946685498540000 = Saturday, January 1, 2000 12:11:38.540 AM link to log (log_no_gps6.txt)

imrasp commented 6 years ago

date -u to get UTC time

screenshot from 2017-12-12 21-17-24 seem like time is delay on odroid.

https://askubuntu.com/questions/81293/what-is-the-command-to-update-time-and-date-from-internet suggest command to update time

  1. sudo ntpdate time.nist.gov

if got the the NTP socket is in use, exiting error do sudo service ntp stop then sudo service ntp start before the command above.

  1. sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"

To check time on the system:

watch -n 0.2 'date -u'

Can compare standard unix time with http://currentmillis.com/ or other machine