#include "b3RobotSimulatorClientAPI_NoGUI.h" int main(int argc, char* argv[]) { b3RobotSimulatorClientAPI_NoGUI* sim = new b3RobotSimulatorClientAPI_NoGUI(); bool isConnected = sim->connect(eCONNECT_SHARED_MEMORY); if (!isConnected) { printf("Using Direct mode\n"); isConnected = sim->connect(eCONNECT_DIRECT); } else { printf("Using shared memory\n"); } //remove all existing objects (if any) sim->resetSimulation(); sim->setGravity(btVector3(0,0,-9.8)); sim->setNumSolverIterations(100); b3RobotSimulatorSetPhysicsEngineParameters args; sim->getPhysicsEngineParameters(args); int planeUid = sim->loadURDF("plane.urdf"); printf("planeUid = %d\n", planeUid); int r2d2Uid = sim->loadURDF("r2d2.urdf"); printf("r2d2 #joints = %d\n", sim->getNumJoints(r2d2Uid)); btVector3 basePosition = btVector3(0,0,0.5); btQuaternion baseOrientation = btQuaternion(0,0,0,1); sim->resetBasePositionAndOrientation(r2d2Uid, basePosition, baseOrientation); while (sim->isConnected()) { btVector3 basePos; btQuaternion baseOrn; sim->getBasePositionAndOrientation(r2d2Uid,basePos,baseOrn); printf("r2d2 basePosition = [%f,%f,%f]\n", basePos[0],basePos[1],basePos[2]); sim->stepSimulation(); } delete sim; }