NTRT Simulator  Version: Master
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
AppHillyMuscleNP.cpp
Go to the documentation of this file.
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 */
24 // This application
25 #include "hillyMuscleNP.h"
26 // This library
30 #include "core/tgModel.h"
31 #include "core/tgSimViewGraphics.h"
32 #include "core/tgSimulation.h"
33 #include "core/tgWorld.h"
34 #include "tgcreator/tgUtil.h"
35 
36 // The Bullet Physics Library
37 #include "LinearMath/btVector3.h"
38 #include "LinearMath/btQuaternion.h"
39 // The C++ Standard Library
40 #include <iostream>
47 int main(int argc, char** argv)
48 {
49 
50  std::cout << "AppMuscleNPTest" << std::endl;
51 #if (0)
52  // First create the ground and world. Specify ground rotation in radians
53  const double yaw = 0.0;
54  const double pitch = 0.0;
55  const double roll = 0.0;
56  const tgBoxGround::Config groundConfig(btVector3(yaw, pitch, roll));
57 
58  // the world will delete this
59  tgBoxGround* ground = new tgBoxGround(groundConfig);
60 #else
61  btVector3 eulerAngles = btVector3(0.0, 0.0, 0.0);
62  btScalar friction = 0.5;
63  btScalar restitution = 0.0;
64  // Size doesn't affect hilly terrain
65  btVector3 size = btVector3(0.0, 0.1, 0.0);
66  btVector3 origin = btVector3(0.0, 0.0, 0.0);
67  size_t nx = 100;
68  size_t ny = 100;
69  double margin = 0.5;
70  double triangleSize = 5.0;
71  double waveHeight = 3.0;
72  double offset = 0.0;
73  tgHillyGround::Config groundConfig(eulerAngles, friction, restitution,
74  size, origin, nx, ny, margin, triangleSize,
75  waveHeight, offset);
76 
77  tgHillyGround* ground = new tgHillyGround(groundConfig);
78 
79 #endif
80  const tgWorld::Config config(98.1); // gravity, cm/sec^2
81  tgWorld world(config, ground);
82 
83  // Second create the view
84  const double timestep_physics = 1.0/1000.0; // seconds
85  const double timestep_graphics = 1.f/1000.f; // seconds
86  tgSimViewGraphics view(world, timestep_physics, timestep_graphics);
87 
88  // Third create the simulation
89  tgSimulation simulation(view);
90 
91 
92  // Fourth create the models with their controllers and add the models to the
93  // simulation
94  hillyMuscleNP* const myModel = new hillyMuscleNP();
95  // Add the model to the world
96  simulation.addModel(myModel);
97  simulation.run();
98  return 0;
99 }
Contains the definition of class tgHillyGround.
void addModel(tgModel *pModel)
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$.
void run() const
Contains the definition of class tgBoxGround.
For testing MuscleNP contacts.
Rand seeding simular to the evolution and terrain classes.
Contains the definition of class tgEmptyGround.
int main(int argc, char **argv)