The picture above is the lidar scan in simulation only after rotation. Just to clarify, I know I can use an IMU but right now, I only want to get it working with odometry.
Basically, whenever I rotate the robot in RVIZ, with the lidar data decay rate set to 20 seconds, I see that the subsequent scans are different(scans are not static) and I know this is due to bad odometry but I can't find out why. The odometry has only two parameters, wheel radius and wheel base and I've lifted both the values directly from calculation. Moreover, there is no slippage or whatever, because the robot is running purely in simulation with ros2 control. Is there a way I can diagnose or test for why there is bad odometry? like some sort of test for the wheel base? Because of the bad odometry, I can't even create a map (unless the main frame is set to odom, then I can create a marginally better one).