NTRT Simulator  Version: Master
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
RPLengthController.h
1 /*
2  * Copyright © 2012, United States Government, as represented by the
3  * Administrator of the National Aeronautics and Space Administration.
4  * All rights reserved.
5  *
6  * The NASA Tensegrity Robotics Toolkit (NTRT) v1 platform is licensed
7  * under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * http://www.apache.org/licenses/LICENSE-2.0.
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
15  * either express or implied. See the License for the specific language
16  * governing permissions and limitations under the License.
17 */
18 
19 #ifndef RP_LENGTH_CONTROLLER_H
20 #define RP_LENGTH_CONTROLLER_H
21 
30 // This library
31 #include "core/tgObserver.h"
33  #include "core/tgBasicActuator.h"
34 
35 // The C++ Standard Library
36 #include <vector>
37 
38 // Forward declarations
39 class TensegrityModel;
40 
41 #include "core/abstractMarker.h" //needed in order to fetch node positions
42 
47 class RPLengthController : public tgObserver<TensegrityModel>
48 {
49 public:
50 
56  RPLengthController(const double length = 400);
57 
61  virtual ~RPLengthController();
62 
63  virtual void onSetup(TensegrityModel& subject);
64 
73  virtual void onStep(TensegrityModel& subject, double dt);
74 
75  std::vector<tgBasicController*> m_controllers;
76  std::vector<double> rand_lengths;
77  std::vector<tgSpringCableActuator*> actuators;
78 
79 private:
80 
85  const double m_length;
86  double globalTime;
87  int toggle;
88 
89 };
90 
91 #endif // RP_LENGTH_CONTROLLER_H
virtual void onStep(TensegrityModel &subject, double dt)
Definition of tgObserver class.
Markers for specific places on a tensegrity.
Contains the definition of class tgBasicActuator.
virtual void onSetup(TensegrityModel &subject)
RPLengthController(const double length=400)
Definition of the tgBasicController base class.