[robot_localization] imu data frames and format [closed]
Hi everyone,
we've been some time trying to configure our robot_localization node without success and we started wondering if all the data is expressed correctly. We've checked the forums and rep but we still have some uncertainties/confusion with regards to the IMU data. Could you please review the following imu data/configuration?
IMU position in the robot
The imu frame_id is the xsens
and the robot frame_id is the base_link
. There is a rotation of 180º and a small translation between them, hence, there is a static transform declared as:
header:
seq: 0
stamp:
secs: 1568211169
nsecs: 84573437
frame_id: "base_link"
child_frame_id: "xsens"
transform:
translation:
x: -0.149
y: 0.00282
z: -0.09554
rotation:
x: 0.0
y: 0.0
z: 1.0
w: -1.03411553555e-13
IMU message and data format
A message sample:
header:
seq: 15568
stamp:
secs: 1568187188
nsecs: 501295089
frame_id: "xsens"
orientation:
x: 0.00370850449759
y: 0.00397378783653
z: 0.970476713346
w: -0.241133583015
orientation_covariance: [0.00030461741978670857, 0.0, 0.0, 0.0, 0.00030461741978670857, 0.0, 0.0, 0.0, 0.024674011002723394]
angular_velocity:
x: 0.0198734942824
y: -0.0251334197819
z: 0.0117437923327
angular_velocity_covariance: [1.9038588736669286e-05, 0.0, 0.0, 0.0, 1.9038588736669286e-05, 0.0, 0.0, 0.0, 1.9038588736669286e-05]
linear_acceleration:
x: 0.599029839039
y: 0.185431167483
z: 9.05651855469
linear_acceleration_covariance: [0.0004, 0.0, 0.0, 0.0, 0.0004, 0.0, 0.0, 0.0, 0.0004]
Message data explanation:
orientation
: the orientation.x
reports the rotation along the longitudinal axis of the imu, the orientation.y
reports the rotation along the transversal axis of the imu and, the orientation.z
reports the rotation along the global Z axis (gravity direction) CCW w.r.t. the True East. Are these values correct w.r.t. the specified by the robot_localization: ENU frame? Specifically we are concerned by the fact that roll and pitch aren't aligned with East and North.
angular_velocity
: expressed in the frames of the imu. angular_velocity.x
along the longitudinal imu axis, angular_velocity.y
along the transversal imu axis and , angular_velocity.z
along the perpendicular axis defined by x and y.
linear_acceleration
: expressed in the same frames as the angular velocity. Also, it reports the data as specified in the robot localization documentation as right-side-up.
Is the configuration of the imu data correct?
Thank you in advanced.
What is the issue that youre trying to fix?
More than fixing, the issue I'm trying to figure out is if the provided data by the IMU is correct to use with the robot_localization package or it needs further modifications in order to comply with what the package is expecting?
Fixing _what_ exactly? You haven't described your issue at all
That all looks solid to me. He's referring to this question:
https://answers.ros.org/question/3323...