pos_final.json это не входной файл, а выходной файл.Входной файл taco_bell_data.json находится в архиве tar.gz.Он содержит следующие переменные:
"timestamp": 1.482995526836e+09,
"gps_lat": 0,
"gps_lon": 0,
"gps_alt": 0,
"pitch": 13.841609,
"yaw": 225.25635,
"roll": 0.6795258,
"rel_forward_acc": -0.014887575,
"rel_up_acc": -0.025188839,
"abs_north_acc": -0.0056906715,
"abs_east_acc": 0.00010974275,
"abs_up_acc": 0.0040153866
Он измеряет положение с помощью GPS и ориентацию / ускорение с помощью акселерометра.Скорости NED, которые находятся в pos_final.json , оцениваются фильтром Калмана.Это одна из основных задач фильтра Калмана (и других наблюдателей): оценить неизвестные величины.
GPS часто будет выводить скорости, но они будут относиться к телу объекта.Вы можете преобразовать относительные скорости тела в NED-скорости, если вы знаете ориентацию тела (крен, наклон и рыскание).Допустим, у вас есть беспилотник, движущийся в направлении 030 °, и GPS говорит, что скорость движения вперед равна 1 м / с, у беспилотника будет следующая северная скорость:
vel_north = 1 m/s * cos(30°) = 0.86 m/s
и следующая восточная скорость:
vel_east = 1 m/s * sin(30°) = 0.5 m/s
Это не учитывает перекос и шаг.Чтобы принять во внимание крен и шаг, вы можете взглянуть на матрицы вращения или кватернионов в Википедии.
Скорости обычно находятся в телеграмме VTG выходы GPS.Это не всегда выводится.У GPS должна быть эта функция, и она должна быть включена на GPS.Также можно использовать телеграмму RMC.
Скорости от GPS часто очень шумные, поэтому фильтр Калмана обычно используется вместо преобразования относительных скоростей тела в скорости NED описанным выше способом.Скорости GPS будут работать нормально на более высоких скоростях.