btRaycastVehicle - movement direction and wheels rotation

Post Reply
Tadek
Posts: 4
Joined: Sun Jan 22, 2017 5:41 pm

btRaycastVehicle - movement direction and wheels rotation

Post by Tadek » Fri Jun 16, 2017 5:08 pm

I'm trying to use btRaycastVehicle in my opengl engine. Bullet world space coordinate system is the same as opengl world space coordinate system, i.e. -z axis goes forward (right handed). btTransform places rigid bodies as I expect.

When I add the engine force:

Code: Select all

physicsEngine.getVehicle()->applyEngineForce(500, 2);
physicsEngine.getVehicle()->applyEngineForce(500, 3);
the vehicle moves in +z direction but wheels don't rotate.

A third parameter of addWheel function(wheelAxleCS) is defined as [-1, 0, 0]. I have noticed that by default a vehicle forward vector (vehicle->getForwardVector()) is defined as [0, 1, 0], so how it is possible that the car moves in +z direction at all?
How to achieve a movement in -z direction and wheels rotation?

I get transformations this way:

Code: Select all

//vehicle body
vehicle->getRigidBody()->getMotionState()->getWorldTransform(transform);
transform.getOpenGLMatrix(mat);
//for each wheel
vehicle->updateWheelTransform(index, true);
transform = vehicle->getWheelInfo(index).m_worldTransform;
transform.getOpenGLMatrix(mat);

Tadek
Posts: 4
Joined: Sun Jan 22, 2017 5:41 pm

Re: btRaycastVehicle - movement direction and wheels rotatio

Post by Tadek » Sat Jun 17, 2017 4:11 pm

When I set the vehicle coordinate system this way:

Code: Select all

int rightIndex = 0;
int upIndex = 1;
int forwardIndex = 2;
physicsEngine.getVehicle()->setCoordinateSystem(rightIndex,upIndex,forwardIndex);
then the forward vector is [0,0,1] and the car moves in +z direction with correct wheels rotation but I have still following questions:
- Why the car move in +z direction without wheels rotation when forward vector is [0,1,0] ?
- How to achieve movement in -z direction ?

Post Reply