Negative roll velocity should be counter clockwise instead of fast clockwise

I tried to set a negative roll velocity to object like this


		local velocity = spaceshipt:GetAngularVelocity()
		velocity.roll = velocity.roll - 10
		Printf("velocity {1}", velocity)
		spaceshipt:SetAngularVelocity( velocity);

And instead of turning counter clockwise, it started to turn clockwise very fast.

The alternative


		local velocity = spaceshipt:GetAngularVelocity()
		velocity.roll = velocity.roll + 10
		Printf("velocity {1}", velocity)
		spaceshipt:SetAngularVelocity(velocity);
	

works as expected - object slowly turns clockwise. If used twice - twice faster. If then roll negative once - slower, twice - stops, then negative again - would be very fast roll clockwise, though expected slow turn counter clockwise.
Is there any other ways of rolling counter clockwise?

I also see problems setting angular velocity.

  • Setting a positive value of pitch will result in a smooth rotation, until pitch is 180 degrees, and then rotation stops.
  • Setting a (small) negative value for pitch gives a rotation in the same direction as a positive value, but too fast.
  • Negative yaw also gives the wrong direction and speed.