I have an orientation sensor providing
Yaw (degree)
Pitch (degree)
Roll (degree)
Yaw rate (degree/second)
Pitch rate (degree/second)
Roll rate (degree/second)
Mag x (mGauss)
Mag y (mGauss)
Mag z (mGauss)
Gyro x (degree/second)
Gyro y (degree/second)
Gyro z (degree/second)
Accel x (mg)
Accel y (mg)
Accel z (mg)
Velocity caculates as integral of acceleration. Unfortunately, an acceleration uncertainty or zero error results in an increasing velocity error. So it's only usable on short terms and has to be zeroed frequently.