What I did to trouble-shoot was i picked up the robot and turned it 90 degrees and in Rviz it turned by some 20 degrees, so I changed the line in Imu.h to :
gyro.z = (-6.6)*gz * (double) GYRO_SCALE * DEG_TO_RAD;
The negative in sign is due to the fact that i have mounted the gyroscope in inverted position.
The factor 6.6 is for getting the same degree of turn
But now it move in a straight line when going forward but moves in a circular arc when moving backwards.
What more can i do to troubleshooot?