kitti
kitti copied to clipboard
How to understand the coordinate sytems of IMU output in raw data
Thanks for you works. I have a question about the coordinate systems. The IMU outputs (acceleration and angular rate) in raw data are provided in the 2 coordinates. For example, ax, ay,az and af, al and au. It seems like that they are all in the body coordinates?
I believe the accelerations ax, ay, az given by the kitti2lcm.py script (see https://github.com/pratikac/kitti/blob/master/kitti.lcm#L36, https://github.com/pratikac/kitti/blob/master/kitti2lcm.py#L121) are in the body axis. I wrote this code a long time ago and do not remember the details so please cross-check the following: the KITTI data has its X, Y, Z axes aligned with the forward, left and upright axes of the vehicle and hence ax = af, ay=al, az=au in the raw data.
Thanks for your reply! I was thinking that xyz and flu are all the body axis and they are aligned. But I have compared the two related axis, I mean for example ax and af, acutally the data of them two are not equal. I have no idea now.
I see. You could refer to the https://github.com/utiasSTARS/pykitti to see if there are any clues.
Hello @pratikac The KITTI format for RPY is given as:
roll: roll angle (rad), 0 = level, positive = left side up, range: -pi .. +pi pitch: pitch angle (rad), 0 = level, positive = front down, range: -pi/2 .. +pi/2 yaw: heading (rad), 0 = east, positive = counter clockwise, range: -pi .. +pi
But I could not find anything to tell me whether or not this means NED or ENU coordinate system. With yaw=0 meaning east, do I take it this means ENU? Actually for Brossard's program ai-imu-dr, it seems that RPY is in NED following ZYX convention. Can anyone confirm?
I've done some more work with Martin Brossard's wonderful program - ai-imy-dr. RPY is Euler convention ZYX and ENU. Brossard's program is in ENU alright with some special handing when it comes to gravity. My confusion came from using MATLAB's imufilter in NED which gave comparable better results for RPY than ENU- a mystery . To make a long story short: for a vehicle traveling on a flat level surface, pitch and roll should be close to zero BUT yaw which is the rotation about the (vertical as in the direction of gravity) z-axis and DOES matter and change at every turn of the vehicle. If you can get a bearing measure : I found that (90 degrees - bearing (in degrees) ) then convert that to radians and it does the job for Brossard's program.
Hi @EmiyaEstelle, Did you end up finding the solution for the difference between XYZ and flu coordinate systems?