When filling mavros topic global_position/local and converting the linear velocity frame from NED to ENU the z coordinate is not consistent with the transformation, in fact, it remains positive toward down.
https://github.com/mavlink/mavros/blob/ros2/mavros/src/plugins/global_position.cpp#L343
// Linear velocity
tf2::toMsg(
Eigen::Vector3d(gpos.vy, gpos.vx, gpos.vz) / 1E2,
odom.twist.twist.linear);
to be consistent it should be:
// Linear velocity
tf2::toMsg(
Eigen::Vector3d(gpos.vy, gpos.vx, -gpos.vz) / 1E2,
odom.twist.twist.linear);
You can see it also from this plot:

When filling mavros topic
global_position/localand converting the linear velocity frame fromNEDtoENUthezcoordinate is not consistent with the transformation, in fact, it remains positive toward down.https://github.com/mavlink/mavros/blob/ros2/mavros/src/plugins/global_position.cpp#L343
to be consistent it should be:
You can see it also from this plot: