I sent you some log data just before I went to bed last night.   Here’s a fragment:

s=gyr,x=-0.14690529,y=-0.028577317,z=0.09692149,ts=1424988205037,acy=3
s=mag,x=-172.73999,y=-170.28,z=-164.09999,ts=1424988205041,acy=3
s=gyr,x=-0.13305685,y=-0.030707845,z=0.09798675,ts=1424988205042,acy=3
s=uwb,t=tag #1,tu=87289750000000,ts=1424988205044,d=1.3906851,acy=0
s=gyr,x=-0.116012625,y=-0.032838374,z=0.09798675,ts=1424988205045,acy=3
s=gyr,x=-0.100033656,y=-0.03390364,z=0.10011728,ts=1424988205049,acy=3
s=mag,x=-172.68,y=-170.34,z=-164.04,ts=1424988205052,acy=3
s=gyr,x=-0.085119955,y=-0.03390364,z=0.10011728,ts=1424988205054,acy=3
s=acc,x=-0.61291564,y=6.895301,z=7.967903,ts=1424988205055,acy=0
s=gyr,x=-0.07127152,y=-0.03390364,z=0.10011728,ts=1424988205059,acy=3
s=gyr,x=-0.05529255,y=-0.03177311,z=0.09798675,ts=1424988205064,acy=3
s=prs,p=949.69,ts=1424988205065,acy=0

It seems clear that it contains all the components to build an IMU, plus a pressure sensor.  I’ll have a look around for documentation, but it seems mostly obvious.  Here’s my parsing:

record         ::= “s=” <sensorRecord> ” <newline>           // one sensor record per line
sensorRecord   ::= <accRecord> | <gyrRecord> | <magRecord> | 
                           <prsRecord> | <uwbRecord>         // five different sensor record types
timestamp      ::= “ts=” <unixTime>                          // milliseconds since 1/1/1970
accInd         ::= “acy=” (“0” | “3”)

accRecord      ::= “acc,” <xVal> “,” <yVal> “,” <zVal> 
                         “,” <timestamp> “,” <acInd>         // x,y,z, timestamp, accuracy?
gyrRecord      ::= “gyr,” <xVal> “,” <yVal> “,” <zVal> 
                         “,” <timestamp> “,” <acInd>
magRecord      ::= “acc,” <xVal> “,” <yVal> “,” <zVal> 
                          “,” <timestamp> “,” <acInd>
prsRecord      ::= “prs,” <pVal>  
                          “,” <timestamp> “,” <acInd>        // mbar, timestamp, accuracy
uwbRecord      ::= “uwb,” <tagId> “,” <tuVal> “,” <timestamp> 
                     “,d=” <range> “,” <accInd>              // tagName, tuVal? ts, meters, accuracy
tuVal          ::= <64-bit? cardinal>                        // quality assessment?
range          ::= <10.7 floatingPoint>                      // distance in meters

I think accInd may represent the sensor sensitivity (maxG for example).
The tuVal number is a mystery, but I’m wondering if it is some representation of the impulse signal that reveals the quality of the range assessment.

Leave a Reply