Imu orientation and magnetometer heading from zed-ros2-wrapper?

From experimental data, it appears that the yaw /zed/zed_node/imu/data orientation is initialized to the initial yaw (so it always starts at zero) – regardless of the absolute heading of the zed.

The documentation (see ROS 2 - ZED Node - Stereolabs) says " * ~/imu/data: Accelerometer, gyroscope, and orientation data in Earth frame."

My (perhaps incorrect) interpretation of “Earth frame” (see REP 103 -- Standard Units of Measure and Coordinate Conventions ( let me to expect that the yaw orientation would actually be absolute (eg radians CCW from east), for example by fusing magnetometer heading.

A recent question (Combining magnetometer and IMU for better absolute heading estimation) implies that magnetometer heading isn’t fused into the imu orientation… but I wanted to double-check!

Zooming out, I’m trying to figure out why GNSS fusion doesn’t seem to be working for me. Even after driving around a bunch, using the fromLL service gives incorrectly results. Perhaps related, when I turn on gnss_debug, I see “Good GNSS localization:” messages, but the “Heading:” line is always zero… which is why I’m trying to double-check my assumptions about heading.


Hi @thandal

This is correct. Magnetometer information is not fused into the positional tracking processing.

This behavior will be fixed by the oncoming ZED SDK v4.1

Oh, that would be great. Is there an ETA for 4.1?

The new release is just frozen and ready to go. Our team is validating the new features and checking for any regressions to ensure everything works as expected. We will release the new version after the validation process is complete.