With respect which coordinate system the vehicle's velocities are given?

Hi!,

I am using CARLA 0.9.10.1 (release version) and I am recording data from different sensors, namely GNSS, IMU and LiDAR, to process them with other developments tools I am working on. I am also logging information from the vehicle, which I am planning to use as ground truth, but they do not make too much sense to me. The configuration is quiet simple, I am only working in a TimeFixed-Synchronized modality and the vehicle is set to follow waypoints for the navigation. The sensors are spawned and so far they seem to retrieve correctly the information, specially in the case of LiDAR and GNSS. There are things that I still do not like from the values I get from the IMU, but that’s another topic.
The velocities I get from the vehicle are mostly zero in the X and Y axes and for the Z axes they report values between 4 -8 m/s, which should not be the case. The car is driving forward and, according to the defined CS of CARLA-UE4, X-axis is pointing forward, Y-axis to the right and Z-axis is up, therefore I should be getting values mainly (if not only) in X- and Y-axis.

Could someone clarify me if it is a known issue?

I am quiet interested in having the velocity stated in the three components and avoid using the function that gives you the forward speed.

Thanks in advance!

Here some plots:

In that plot everything looks correct. But in the next one, I get the problem of not understanding w.r.t. what the velocities are displayed. It does not seem to follow X-FWD, Y-Right, Z-up convention.

For me, it seems a misunderstanding of the Coordinate System of the car or the point in which the data is referred to.

Here the piece of code where I am logging the Vehicle data:

def record_vehicle_state(f, vehicle, frame, timestamp):
vehicle_trans=vehicle.get_transform()
#vehicle_geoloc=vehicle.transform_to_geolocation(vehicle_trans.location)
vehicle_vel=vehicle.get_velocity()
vehicle_acc=vehicle.get_acceleration()
vehicle_angvel=vehicle.get_angular_velocity()
f.write("%3d, " %frame)
f.write("%3.3f, " %timestamp)
f.write("%6.4f, %6.4f, %6.4f, " %(vehicle_trans.location.x, vehicle_trans.location.y, vehicle_trans.location.z ))
#f.write("%2.6f, %3.6f, %4.3f, " %(vehicle_geoloc.latitude, vehicle_geoloc.longitude, vehicle_geoloc.altitude ))
f.write("%3.4f, %3.4f, %3.4f, " %(vehicle_trans.rotation.pitch, vehicle_trans.rotation.yaw, vehicle_trans.rotation.roll))
f.write("%4.4f, %4.4f, %4.4f, " %(vehicle_vel.x, vehicle_vel.y, vehicle_vel.z))
f.write("%3.6f, %3.6f, %3.6f, " %(vehicle_acc.x, vehicle_acc.y, vehicle_acc.z))
f.write("%3.6f, %3.6f, %3.6f \n" %(vehicle_angvel.x, vehicle_angvel.y, vehicle_angvel.z))

Operative system: Windows