0
$\begingroup$

I'm working with the robot_localization package to perform sensor fusion between a DVL and USBL for an AUV, in order to compensate drift. Now the robot_localization package docs assume a transformation to ENU frame for the IMU data.

Having the DVL device to measure INS data (position in x, y, z, GPS data) measured in NED frame, I'm now curious if also the pose message data needs to be translated to ENU to keep consistency. This somehow would lead to even more confusion, since the measured depth below surface would than become negative (since in ENU frame z axis is pointing upwards).

The question is, do I need to translate all data (since given in NED) to the robot_localization supported frame, even if this is only suggested for IMU data?

$\endgroup$

1 Answer 1

0
$\begingroup$

The ENU specification is relevant to the IMU data and really only affects navsat_transform_node, not the EKF.

Having said that, if your sensor is producing velocities with +Z pointing down and +Y pointing to the right, you will likely just see inverted motion in the output of your EKF. So, e.g., your vehicle will move right, but you will see it move to the left in your rviz output. The same is true if you tried to use non-ENU IMU data in the EKF. You'll just see things moving the wrong way.

If it were me, I'd do one of the following:

(a) Generate a static transform from your DVL world frame to your EKF world frame, and make sure the DVL pose data is reported in that frame (b) If your DVL also generates velocity data (and I've never seen one that doesn't), I'd fuse that instead, after creating a static transform from the child_frame_id of the DVL's odometry message to your base_link_frame.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.