NTRT Simulator  Version: Master
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
AppTetraSpineSerial.cpp
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 
28 // This application
30 #include "SerializedSineWaves.h"
31 // This library
32 #include "core/tgModel.h"
33 #include "core/tgSimView.h"
34 #include "core/tgSimViewGraphics.h"
35 #include "core/tgSimulation.h"
36 #include "core/tgWorld.h"
38 // The C++ Standard Library
39 #include <iostream>
40 
48 int main(int argc, char** argv)
49 {
50  std::cout << "AppTetraSpineSerial" << std::endl;
51 
52  // First create the world
53  const tgWorld::Config config(981); // gravity, cm/sec^2
54  tgWorld world(config);
55 
56  // Second create the view
57  const double stepSize = 1.0/1000.0; // Seconds
58  const double renderRate = 1.0/60.0; // Seconds
59  tgSimViewGraphics view(world, stepSize, renderRate);
60 
61  // Third create the simulation
62  tgSimulation simulation(view);
63 
64  // Fourth create the models with their controllers and add the models to the
65  // simulation
66  const int segments = 3;
67  TetraSpineLearningModel* myModel =
68  new TetraSpineLearningModel(segments);
69 
70  /* Required for setting up serialization file input/output. */
71  const std::string suffix((argc > 1) ? argv[1] : "controlVars.json");
72 
73  SerializedSineWaves* const myControl =
74  new SerializedSineWaves(suffix);
75  myModel->attach(myControl);
76  /*
77  tgCPGLogger* const myLogger =
78  new tgCPGLogger("logs/CPGValues.txt");
79 
80  myControl->attach(myLogger);
81  */
82  simulation.addModel(myModel);
83 
84  int i = 0;
85  while (i < 10000)
86  {
87  simulation.run(60000);
88  simulation.reset();
89  i++;
90  }
91 
93 
97  #if (0)
98  delete myControl;
99  #endif
100  //Teardown is handled by delete, so that should be automatic
101  return 0;
102 }
int main(int argc, char **argv)
Contains the definition of class tgSimulation.
Contains the definition of class tgModel.
Contains the definition of class tgSimViewGraphics.
Contains the definition of class tgWorld $Id$.
A Sine Wave controller for TetraSpine using JSON serialization.
Tetraspine, configured for learning in the NTRT simulator.
Contains the definition of class tgSimView.
Contains the definition of interface class tgCPGLogger.
void attach(tgObserver< T > *pObserver)
Definition: tgSubject.h:91