NTRT Simulator  Version: Master
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
AppBigPuppy.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
29 #include "BigPuppy.h"
30 #include "BigPuppyController.h"
31 // This library
33 #include "core/tgModel.h"
34 #include "core/tgSimViewGraphics.h"
35 #include "core/tgSimulation.h"
36 #include "core/tgWorld.h"
37 // Bullet Physics
38 #include "LinearMath/btVector3.h"
39 // The C++ Standard Library
40 #include <iostream>
41 
49 int main(int argc, char** argv)
50 {
51  std::cout << "AppBigPuppy" << std::endl;
52 
53  // First create the ground and world. Specify ground rotation in radians
54  const double yaw = 0.0;
55  const double pitch = 0.0;
56  const double roll = 0.0;
57  const tgBoxGround::Config groundConfig(btVector3(yaw, pitch, roll));
58  // the world will delete this
59  tgBoxGround* ground = new tgBoxGround(groundConfig);
60 
61  const tgWorld::Config config(981); // gravity, cm/sec^2 981
62  tgWorld world(config, ground);
63 
64  // Second create the view
65  const double timestep_physics = 0.001; // seconds
66  const double timestep_graphics = 1.f/60.f; // seconds
67  tgSimViewGraphics view(world, timestep_physics, timestep_graphics);
68 
69  // Third create the simulation
70  tgSimulation simulation(view);
71 
72  BigPuppy* const myModel = new BigPuppy();
73 
74  BigPuppyController* const myHT = new BigPuppyController(timestep_physics); //Figure out what the 2.5 is for....
75 
76  // Add the model to the world
77  myModel->attach(myHT);
78  simulation.addModel(myModel);
79 
80  simulation.run();
81  simulation.reset();
82 
83  //Teardown is handled by delete, so that should be automatic
84  return 0;
85 }
int main(int argc, char **argv)
Implementing a hand-tuned controller for a quadruped based roughly on the Flemons BigPuppy model...
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$.
Contains the definition of class tgBoxGround.
void attach(tgObserver< T > *pObserver)
Definition: tgSubject.h:91