Robotics StackExchange | Archived questions

robot_localization imu problem

I want to use ARtoolkit with imu to localize the camera. From Artoolkit I publish " geometrymsgs/PoseWithCovarianceStamped". From imu I publish "sensormsgs/Imu".

"ekflocalization" is working with ARtookit ,but for the imu, the camera rotate around the world frame instead of rotating around itself , I mean if I rotate the imu around it self the ekflocalization make this rotation around the world frame.

 <node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization" clear_params="true">
 <param name="frequency" value="30"/>

 <param name="sensor_timeout" value="0.033"/>

  <param name="two_d_mode" value="false"/>


  <param name="odom_frame" value="odom"/>
  <!-- Defaults to "base_link" if unspecified -->
  <param name="base_link_frame" value="base_link"/>   
  <!-- Defaults to the value of "odom_frame" if unspecified -->
  <param name="world_frame" value="odom"/>


  <param name="transform_time_offset" value="0.0"/>


  <param name="pose0" value="arpose"/>
  <param name="imu0" value="imu"/>



  <rosparam param="pose0_config">[true,  true,  true,
                                  true,  true,  true,
                                  false, false, false,
                                  false, false, false,
                                  false, false, false]</rosparam>


  <rosparam param="imu0_config">[false, false, false,
                                 false, false, false,
                                 false, false, false,
                                 true,  true,  true,
                                 false, false, false]</rosparam>


  <param name="pose0_differential" value="false"/>
  <param name="imu0_differential" value="true"/>


  <param name="pose0_relative" value="false"/>
  <param name="imu0_relative" value="true"/>


  <param name="imu0_remove_gravitational_acceleration" value="false"/>


  <param name="print_diagnostics" value="true"/>

Artoolkit " geometry_msgs/PoseWithCovarianceStamped"

header:

seq: 2689

stamp:

secs: 1447429112

nsecs: 29553890

frameid: baselink

orientation:

x: 0.0

y: 0.0

z: 0.0

w: 0.0

orientation_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

angular_velocity:

x: 0.0

y: 0.0010652645

z: 0.0

angularvelocitycovariance: [1000.0, 0.0, 0.0, 0.0, 1000.0, 0.0, 0.0, 0.0, 1000.0]

linear_acceleration:

x: -0.1147221

y: 0.066764873

z: -0.2863152313

linearaccelerationcovariance: [1000.0, 0.0, 0.0, 0.0, 1000.0, 0.0, 0.0, 0.0, 1000.0]

imu "sensor_msgs/Imu".

header:

seq: 480

stamp:

secs: 1447431143

nsecs: 488662958

frameid: baselink

orientation:

x: 0.0

y: 0.0

z: 0.0

w: 0.0

orientation_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

angular_velocity:

x: 0.18535602

y: -0.101200126

z: 0.11824436

angularvelocitycovariance: [1000.0, 0.0, 0.0, 0.0, 1000.0, 0.0, 0.0, 0.0, 1000.0]

linear_acceleration:

x: 0.70240245

y: 0.68480095

z: 0.9316814

linearaccelerationcovariance: [1000.0, 0.0, 0.0, 0.0, 1000.0, 0.0, 0.0, 0.0, 1000.0]

Asked by mk on 2015-11-13 11:28:26 UTC

Comments

Did you ever figure out the answer to this? I realize the question is very old.

Asked by Tom Moore on 2017-07-20 04:13:37 UTC

Answers