HelloBulletRobotics.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "b3RobotSimulatorClientAPI_NoGUI.h"
  2. int main(int argc, char* argv[])
  3. {
  4. b3RobotSimulatorClientAPI_NoGUI* sim = new b3RobotSimulatorClientAPI_NoGUI();
  5. bool isConnected = sim->connect(eCONNECT_SHARED_MEMORY);
  6. if (!isConnected)
  7. {
  8. printf("Using Direct mode\n");
  9. isConnected = sim->connect(eCONNECT_DIRECT);
  10. }
  11. else
  12. {
  13. printf("Using shared memory\n");
  14. }
  15. //remove all existing objects (if any)
  16. sim->resetSimulation();
  17. sim->setGravity(btVector3(0, 0, -9.8));
  18. sim->setNumSolverIterations(100);
  19. b3RobotSimulatorSetPhysicsEngineParameters args;
  20. sim->getPhysicsEngineParameters(args);
  21. int planeUid = sim->loadURDF("plane.urdf");
  22. printf("planeUid = %d\n", planeUid);
  23. int r2d2Uid = sim->loadURDF("r2d2.urdf");
  24. printf("r2d2 #joints = %d\n", sim->getNumJoints(r2d2Uid));
  25. btVector3 basePosition = btVector3(0, 0, 0.5);
  26. btQuaternion baseOrientation = btQuaternion(0, 0, 0, 1);
  27. sim->resetBasePositionAndOrientation(r2d2Uid, basePosition, baseOrientation);
  28. while (sim->isConnected())
  29. {
  30. btVector3 basePos;
  31. btQuaternion baseOrn;
  32. sim->getBasePositionAndOrientation(r2d2Uid, basePos, baseOrn);
  33. printf("r2d2 basePosition = [%f,%f,%f]\n", basePos[0], basePos[1], basePos[2]);
  34. sim->stepSimulation();
  35. }
  36. delete sim;
  37. }