ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

I'm a bit confused as to what you're trying to do. I believe robot_pose_ekf lets you specify an IMU topic to fuse with the state estimate. It looks like you've written a new node that is (a) creating a static (identity) transform and then publishing it, (b) using that same transform to transform the measurement into base_footprint_frame_, and then (c) re-broadcasting the IMU data as a transform.

If I'm correct, then:

  1. (a) can be accomplished by static_transform_publisher,
  2. I think (b) should be imu_meas_ = base_imu_offset * imu_meas_;
  3. You're broadcasting the inverse of the imu_meas_ for (c). Since the base_imu_offset is the identity, you're effectively broadcasting the inverse of the IMU measurement. That might account for the negated values.
  4. I'm not sure that any of this is necessary, but again, I'm not sure what you're trying to accomplish. I'm willing to bet that robot_pose_ekf transforms all the incoming measurements into the target frame before integrating them.