According to msg/Odometry documentation, linear and angular velocities in Odometry message should be reported relative to child_frame_id.
Currently the velocities are reported in odom frame, which is causing issues when using this data with other existing ROS packages.
This is how the velocities are currently set in ros_helpers.py:
def GetOdomTwistFromState(state, spot_wrapper):
"""Maps odometry data from robot state proto to ROS TwistWithCovarianceStamped message
Args:
data: Robot State proto
spot_wrapper: A SpotWrapper object
Returns:
TwistWithCovarianceStamped message
"""
twist_odom_msg = TwistWithCovarianceStamped()
local_time = spot_wrapper.robotToLocalTime(state.kinematic_state.acquisition_timestamp)
twist_odom_msg.header.stamp = Time(sec=local_time.seconds, nanosec=local_time.nanos)
twist_odom_msg.twist.twist.linear.x = state.kinematic_state.velocity_of_body_in_odom.linear.x
twist_odom_msg.twist.twist.linear.y = state.kinematic_state.velocity_of_body_in_odom.linear.y
twist_odom_msg.twist.twist.linear.z = state.kinematic_state.velocity_of_body_in_odom.linear.z
twist_odom_msg.twist.twist.angular.x = state.kinematic_state.velocity_of_body_in_odom.angular.x
twist_odom_msg.twist.twist.angular.y = state.kinematic_state.velocity_of_body_in_odom.angular.y
twist_odom_msg.twist.twist.angular.z = state.kinematic_state.velocity_of_body_in_odom.angular.z
return twist_odom_msg
According to msg/Odometry documentation, linear and angular velocities in Odometry message should be reported relative to child_frame_id.
Currently the velocities are reported in
odomframe, which is causing issues when using this data with other existing ROS packages.This is how the velocities are currently set in
ros_helpers.py: