Paparazzi UAS
v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
Paparazzi UAS
Style Guides
Onboard Modules
Paparazzi Messages
Paparazzi Technical Primers
Math library
CATIA
Datalink library
Todo List
Bibliography
Modules
Data Structures
Files
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
nav_survey_polygon.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2011-2013 The Paparazzi Team
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, write to
18
* the Free Software Foundation, 59 Temple Place - Suite 330,
19
* Boston, MA 02111-1307, USA.
20
*/
21
29
#ifndef NAV_SURVEY_POLYGON_H
30
#define NAV_SURVEY_POLYGON_H
31
32
#include "
std.h
"
33
#include "
math/pprz_algebra_float.h
"
34
35
/*
36
SurveyStage starts at ENTRY and than circles trought the other
37
states until to polygon is completely covered
38
ENTRY : getting in the right position and height for the first flyover
39
SEG : fly from seg_start to seg_end and take pictures,
40
then calculate navigation points of next flyover
41
TURN1 : do a 180° turn around seg_center1
42
RET : fly from ret_start to ret_end
43
TURN2 : do a 180° turn around seg_center2
44
*/
45
enum
SurveyStage
{
ERR
,
ENTRY
,
SEG
,
TURN1
,
RET
,
TURN2
};
46
47
struct
SurveyPolyAdv
{
48
/*
49
The following variables are set by nav_survey_polygon_start and not changed later on
50
*/
51
52
// precomputed vectors to ease calculations
53
struct
FloatVect2
dir_vec
;
54
struct
FloatVect2
sweep_vec
;
55
struct
FloatVect2
rad_vec
;
56
57
//the polygon from the flightplan
58
uint8_t
poly_first
;
59
uint8_t
poly_count
;
60
61
//desired properties of the flyover
62
float
psa_min_rad
;
63
float
psa_sweep_width
;
64
float
psa_shot_dist
;
65
float
psa_altitude
;
66
67
//direction for the flyover (0° == N)
68
int
segment_angle
;
69
int
return_angle
;
70
71
/*
72
The Following variables are dynamic, changed while navigating.
73
*/
74
enum
SurveyStage
stage
;
75
// points for navigation
76
struct
FloatVect2
seg_start
;
77
struct
FloatVect2
seg_end
;
78
struct
FloatVect2
seg_center1
;
79
struct
FloatVect2
seg_center2
;
80
struct
FloatVect2
entry_center
;
81
struct
FloatVect2
ret_start
;
82
struct
FloatVect2
ret_end
;
83
};
84
85
extern
bool_t
nav_survey_polygon_setup
(
uint8_t
first_wp,
uint8_t
size,
float
angle,
float
sweep_width,
float
shot_dist,
86
float
min_rad,
float
altitude);
87
extern
bool_t
nav_survey_polygon_run
(
void
);
88
89
#endif
SurveyPolyAdv::entry_center
struct FloatVect2 entry_center
Definition:
nav_survey_polygon.h:80
TURN2
Definition:
nav_survey_polygon.h:45
ERR
Definition:
nav_survey_polygon.h:45
SurveyPolyAdv::rad_vec
struct FloatVect2 rad_vec
Definition:
nav_survey_polygon.h:55
ENTRY
Definition:
nav_survey_polygon.h:45
SurveyPolyAdv::psa_min_rad
float psa_min_rad
Definition:
nav_survey_polygon.h:62
SurveyPolyAdv::seg_center1
struct FloatVect2 seg_center1
Definition:
nav_survey_polygon.h:78
SurveyPolyAdv::psa_altitude
float psa_altitude
Definition:
nav_survey_polygon.h:65
FloatVect2
Definition:
pprz_algebra_float.h:48
SurveyPolyAdv
Definition:
nav_survey_polygon.h:47
SurveyPolyAdv::stage
enum SurveyStage stage
Definition:
nav_survey_polygon.h:74
SurveyStage
SurveyStage
Definition:
nav_survey_polygon.h:45
SurveyPolyAdv::dir_vec
struct FloatVect2 dir_vec
Definition:
nav_survey_polygon.h:53
SurveyPolyAdv::seg_start
struct FloatVect2 seg_start
Definition:
nav_survey_polygon.h:76
SurveyPolyAdv::psa_shot_dist
float psa_shot_dist
Definition:
nav_survey_polygon.h:64
SEG
Definition:
nav_survey_polygon.h:45
nav_survey_polygon_setup
bool_t nav_survey_polygon_setup(uint8_t first_wp, uint8_t size, float angle, float sweep_width, float shot_dist, float min_rad, float altitude)
initializes the variables needed for the survey to start
Definition:
nav_survey_polygon.c:135
SurveyPolyAdv::sweep_vec
struct FloatVect2 sweep_vec
Definition:
nav_survey_polygon.h:54
pprz_algebra_float.h
Paparazzi floating point algebra.
SurveyPolyAdv::ret_end
struct FloatVect2 ret_end
Definition:
nav_survey_polygon.h:82
std.h
SurveyPolyAdv::ret_start
struct FloatVect2 ret_start
Definition:
nav_survey_polygon.h:81
TURN1
Definition:
nav_survey_polygon.h:45
nav_survey_polygon_run
bool_t nav_survey_polygon_run(void)
main navigation routine.
Definition:
nav_survey_polygon.c:235
SurveyPolyAdv::segment_angle
int segment_angle
Definition:
nav_survey_polygon.h:68
uint8_t
unsigned char uint8_t
Definition:
types.h:14
SurveyPolyAdv::seg_end
struct FloatVect2 seg_end
Definition:
nav_survey_polygon.h:77
SurveyPolyAdv::poly_count
uint8_t poly_count
Definition:
nav_survey_polygon.h:59
SurveyPolyAdv::return_angle
int return_angle
Definition:
nav_survey_polygon.h:69
SurveyPolyAdv::seg_center2
struct FloatVect2 seg_center2
Definition:
nav_survey_polygon.h:79
SurveyPolyAdv::psa_sweep_width
float psa_sweep_width
Definition:
nav_survey_polygon.h:63
SurveyPolyAdv::poly_first
uint8_t poly_first
Definition:
nav_survey_polygon.h:58
RET
Definition:
nav_survey_polygon.h:45
sw
airborne
modules
nav
nav_survey_polygon.h
Generated on Tue Jun 21 2016 14:01:21 for Paparazzi UAS by
1.8.8