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
pose_history.c
Go to the documentation of this file.
1/*
2 * Copyright (C) Roland Meertens
3 *
4 * This file is part of paparazzi
5 *
6 * paparazzi is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
9 * any later version.
10 *
11 * paparazzi is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with paparazzi; see the file COPYING. If not, see
18 * <http://www.gnu.org/licenses/>.
19 */
27#include <sys/time.h>
28#include "mcu_periph/sys_time.h"
29#include "state.h"
30#ifdef __linux__
31#include <pthread.h>
32#endif
33
34#ifndef POSE_HISTORY_SIZE
35#define POSE_HISTORY_SIZE 1024
36#endif
37
43
45
46#ifdef __linux__
48#endif
49
54{
55#ifdef __linux__
57#endif
61
62 // Seach for the timestamp closes to the timestamp argument of this function.
65 if (diff < closestTimeDiff) {
68 }
69 }
70
71 // Save the pose closest to the given timestamp and return this
72 struct pose_t closest_pose;
75
76#ifdef __linux__
78#endif
79 return closest_pose;
80}
81
90
91
114
115
uint32_t get_sys_time_usec(void)
Get the time in microseconds since startup.
static struct FloatEulers * stateGetNedToBodyEulers_f(void)
Get vehicle body attitude euler angles (float).
Definition state.h:1306
static struct FloatRates * stateGetBodyRates_f(void)
Get vehicle body angular rate (float).
Definition state.h:1367
uint16_t foo
Definition main_demo5.c:58
void pose_init()
Initialises the pose history.
void pose_periodic()
Records the pose history 512 times per second.
struct pose_t ring_data[POSE_HISTORY_SIZE]
#define POSE_HISTORY_SIZE
struct rotation_history_ring_buffer_t location_history
struct pose_t get_rotation_at_timestamp(uint32_t timestamp)
Given a pprz timestamp in used (obtained with get_sys_time_usec) we return the pose in FloatEulers cl...
struct FloatRates rates
uint32_t timestamp
struct FloatEulers eulers
API to get/set the generic vehicle states.
Architecture independent timing functions.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.