Qualcomm Navigator Flight Control Interface  2.0
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
state_vector.hpp
1 /****************************************************************************
2  * Copyright (c) 2018 John A. Dougherty. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in
12  * the documentation and/or other materials provided with the
13  * distribution.
14  * 3. Neither the name ATLFlight nor the names of its contributors may be
15  * used to endorse or promote products derived from this software
16  * without specific prior written permission.
17  *
18  * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
26  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30  * POSSIBILITY OF SUCH DAMAGE.
31  *
32  * In addition Supplemental Terms apply. See the SUPPLEMENTAL file.
33  ****************************************************************************/
34 
35 #ifndef SNAV_FCI_STATE_VECTOR_HPP_
36 #define SNAV_FCI_STATE_VECTOR_HPP_
37 
38 #include <Eigen/Dense>
39 
40 #include "snav/state_vector.hpp"
41 
42 #include "api/displacement_derivs.hpp"
43 
44 namespace snav_fci
45 {
46 
51 {
52 public:
53 
58  {
59  yaw = 0.;
60  yaw_rate = 0.;
61  yaw_acceleration = 0.;
62  }
63 
64  StateVector(Eigen::Vector3f position) : StateVector()
65  {
66  this->position = position;
67  }
68 
69  StateVector(Eigen::Vector3f position, float yaw) : StateVector(position)
70  {
71  this->yaw = yaw;
72  }
73 
74  StateVector& operator= (const snav_traj_gen::StateVector& sv)
75  {
76  this->position[0] = sv.position[0];
77  this->position[1] = sv.position[1];
78  this->position[2] = sv.position[2];
79  this->velocity[0] = sv.velocity[0];
80  this->velocity[1] = sv.velocity[1];
81  this->velocity[2] = sv.velocity[2];
82  this->acceleration[0] = sv.acceleration[0];
83  this->acceleration[1] = sv.acceleration[1];
84  this->acceleration[2] = sv.acceleration[2];
85  this->jerk[0] = sv.jerk[0];
86  this->jerk[1] = sv.jerk[1];
87  this->jerk[2] = sv.jerk[2];
88  return *this;
89  }
90 
91  float yaw;
92  float yaw_rate;
95 };
96 
97 } // namespace snav_fci
98 
99 #endif // SNAV_FCI_STATE_VECTOR_HPP_
100 
101 
float yaw
Definition: state_vector.hpp:91
Structure containing position along with its derivatives.
Definition: displacement_derivs.hpp:46
StateVector()
Construct a StateVector initialized to all zeros.
Definition: state_vector.hpp:57
Eigen::Vector3f position
Definition: displacement_derivs.hpp:61
Eigen::Vector3f jerk
Definition: displacement_derivs.hpp:64
Eigen::Vector3f acceleration
Definition: displacement_derivs.hpp:63
float yaw_rate
Definition: state_vector.hpp:92
Structure containing position and yaw along with their derivatives.
Definition: state_vector.hpp:50
Eigen::Vector3f velocity
Definition: displacement_derivs.hpp:62
float yaw_acceleration
Definition: state_vector.hpp:93