source: flair-dev/trunk/include/FlairFilter/TrajectoryGenerator1D.h@ 56

Last change on this file since 56 was 50, checked in by Sanahuja Guillaume, 7 years ago

doc

File size: 3.5 KB
RevLine 
[9]1// %flair:license{
[13]2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
[9]4// %flair:license}
[6]5/*!
6 * \file TrajectoryGenerator1D.h
7 * \brief Class generating a trajectory in 1D
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2011/05/01
10 * \version 4.0
11 */
12
13#ifndef TRAJECTORYGENERATOR1D_H
14#define TRAJECTORYGENERATOR1D_H
15
16#include <IODevice.h>
17
[13]18namespace flair {
19namespace core {
20class cvmatrix;
[6]21}
[13]22namespace gui {
23class LayoutPosition;
24}
25}
[6]26
27class TrajectoryGenerator1D_impl;
28
[13]29namespace flair {
30namespace filter {
31/*! \class TrajectoryGenerator1D
32*
33* \brief Class generating a trajectory in 1D
34*
35* This class generates position and velocity references, given
36* an absolute maximum velocity and an absolute acceleration. \n
37* When trajectory is started (see StartTraj()), position and velocity will
38*increase
39* at the given acceleration. If the maximum velocity is reached,
40* velocity will not increase anymore. Then, velocity will decrease according
41* to the given acceleration until velocity is null and final position is
42*reached. \n
43* Manual inputs can be introduced using SetPositionOffset() and
44*SetSpeedOffset().
45*
46*/
47class TrajectoryGenerator1D : public core::IODevice {
48public:
49 /*!
50 * \brief Constructor
51 *
52 * Construct a TrajectoryGenerator1D at given position. \n
53 * The TrajectoryGenerator1D will automatically be child of
54 *position->getLayout() Layout. After calling this function,
55 * position will be deleted as it is no longer usefull. \n
56 *
57 * \param position position to display settings
58 * \param name name
59 * \param unit unit of the position (for exemple m, deg, etc). Its only used
60 *for display on ground station.
61 */
62 TrajectoryGenerator1D(const gui::LayoutPosition *position, std::string name,
63 std::string unit = "");
[6]64
[13]65 /*!
66 * \brief Destructor
67 *
68 */
69 ~TrajectoryGenerator1D();
[6]70
[13]71 /*!
72 * \brief Start trajectory
73 *
[50]74 * \param startPosition start position
75 * \param endPosition end position
76 * \param startVelocity start velocity, should be actual velocity. This value will be saturated
77 * max velocity defined in GCS.
[13]78 */
[50]79 void StartTraj(float startPosition, float endPosition,float startVelocity=0);
[6]80
[13]81 /*!
82 * \brief Stop trajectory
83 *
84 */
85 void StopTraj(void);
[6]86
[13]87 /*!
88 * \brief Reset
89 *
90 * Reset all outputs to 0. This can be done only when IsRunning()==false.
91 *
92 */
93 void Reset(void);
[6]94
[13]95 /*!
96 * \brief Is trajectory running?
97 *
98 * \return true if trajectory is running
99 */
100 bool IsRunning(void) const;
[6]101
[13]102 /*!
103 * \brief Set position offset
104 *
105 * \param value position offset
106 */
107 void SetPositionOffset(float value);
[6]108
[13]109 /*!
110 * \brief Set speed offset
111 *
112 * \param value speed offset
113 */
114 void SetSpeedOffset(float value);
[6]115
[13]116 /*!
117 * \brief Update using provided datas
118 *
119 * Uses values specified by StartTraj(),
120 * SetPositionOffset() and SetSpeedOffset().
121 *
122 * \param time time of the update
123 */
124 void Update(core::Time time);
[6]125
[13]126 /*!
127 * \brief Position
128 *
129 */
130 float Position(void) const;
[6]131
[13]132 /*!
133 * \brief Speed
134 *
135 */
136 float Speed(void) const;
[6]137
[13]138 /*!
139 * \brief Output matrix
140 *
141 * \return matrix
142 */
143 core::cvmatrix *Matrix(void) const;
[6]144
[13]145private:
146 /*!
147 * \brief Update using provided datas
148 *
149 * Reimplemented from IODevice. Nothing to do in this IODevice.
150 *
151 * \param data data from the parent to process
152 */
153 void UpdateFrom(const core::io_data *data){};
[6]154
[13]155 TrajectoryGenerator1D_impl *pimpl_;
156};
[6]157} // end namespace filter
158} // end namespace flair
159#endif // TRAJECTORYGENERATOR1D_H
Note: See TracBrowser for help on using the repository browser.