Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ins_vectornav.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2015 Michal Podhradsky, michal.podhradsky@aggiemail.usu.edu
3 * Utah State University, http://aggieair.usu.edu/
4 *
5 * This file is part of paparazzi.
6 *
7 * paparazzi is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2, or (at your option)
10 * any later version.
11 *
12 * paparazzi is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with paparazzi; see the file COPYING. If not, write to
19 * the Free Software Foundation, 59 Temple Place - Suite 330,
20 * Boston, MA 02111-1307, USA.
21 */
29#ifndef INS_VECTORNAV_H
30#define INS_VECTORNAV_H
31
32// Modules
33#include "modules/gps/gps.h"
34#include "modules/ins/ins.h"
35
36// Peripheral
38
39// Geodetic / Math
40#include "math/pprz_algebra.h"
44#include "math/pprz_isa.h"
45
46// Generated
47#include "generated/airframe.h"
48
49// Systime
50#include "mcu_periph/sys_time.h"
51
52// Abi
53#include "modules/core/abi.h"
54
55
56#if !defined INS_VN_BODY_TO_IMU_PHI && !defined INS_VN_BODY_TO_IMU_THETA && !defined INS_VN_BODY_TO_IMU_PSI
57#define INS_VN_BODY_TO_IMU_PHI 0
58#define INS_VN_BODY_TO_IMU_THETA 0
59#define INS_VN_BODY_TO_IMU_PSI 0
60#endif
61
62
63// Ins implementation state (fixed point)
65 struct LtpDef_i ltp_def; // initial position
66 bool ltp_initialized; // status indicator
67
68 // output LTP NED for telemetry messages
74
75 // baro [height above ground]
76 float baro_z;
77 float qfe;
78
79 // Packet data
81 struct VNData vn_data;
84
85 // in fixed point for sending as ABI and telemetry msgs
88
91};
92
93
94// global INS state
95extern struct InsVectornav ins_vn;
96
97extern void ins_vectornav_init(void);
98extern void ins_vectornav_event(void);
99extern void ins_vectornav_set_sacc(void);
100extern void ins_vectornav_set_pacc(void);
101extern void ins_vectornav_propagate(void);
102extern void ins_vectornav_monitor(void);
103
104#endif /* INS_VECTORNAV_H */
Main include for ABI (AirBorneInterface).
Device independent GPS code (interface)
angular rates
definition of the local (flat earth) coordinate system
vector in North East Down coordinates
Integrated Navigation System interface.
struct NedCoor_f ltp_accel_f
struct NedCoor_i ltp_accel_i
void ins_vectornav_monitor(void)
Monitors vectornav data rate and changes GPS lock if the data rate is too low.
struct LlaCoor_f lla_pos
struct Int32Vect3 accel_i
void ins_vectornav_set_pacc(void)
Find maximum uncertainty (NED) position accuracy in cm.
struct VNData vn_data
Data struct.
void ins_vectornav_propagate(void)
Propagate the received states into the vehicle state machine.
struct VNPacket vn_packet
Packet struct.
struct InsVectornav ins_vn
float baro_z
z-position calculated from baro in meters (z-down)
void ins_vectornav_set_sacc(void)
Set speed (velocity) uncertainty (NED) speed accuracy in cm/s.
struct OrientationReps body_to_imu
body_to_imu rotation
enum VNStatus vn_status
VN status.
struct NedCoor_i ltp_pos_i
struct Int32Rates gyro_i
struct NedCoor_i ltp_speed_i
void ins_vectornav_init(void)
Initialize Vectornav struct.
void ins_vectornav_event(void)
Event handling for Vectornav.
uint16_t vn_rate
data frequency
struct LtpDef_i ltp_def
Paparazzi generic algebra macros.
Paparazzi floating point algebra.
vector in Latitude, Longitude and Altitude
vector in North East Down coordinates Units: meters
Paparazzi fixed point math for geodetic calculations.
Paparazzi atmospheric pressure conversion utilities.
Architecture independent timing functions.
unsigned short uint16_t
Typedef defining 16 bit unsigned short type.
Vectornav VN-200 INS subsystem.
VNStatus