Robotics StackExchange | Archived questions

Unable to /set_pose if odom0_differential = false

Hello,

I have two sensors - odometry(wheel encoders) and an IMU for localization. The EKF params are as below:

odom0: /odom
imu0:  /imu/data

odom0_config: [true,  true,  false,          
               false, false, true,
               false, false, false,
               false, false, false,
               false, false, false]

imu0_config:  [false, false,  false,
               false, false,  true,
               false, false,  false,
               false, false,  true,
               false, false,  false]

odom0_differential: false
imu0_differential:  false

odom0_relative: true
imu0_relative:  true

If I need to initialize the filter, at say (1,2), I issue a /setpose service call with a frameid = odom. This only works if odom0_differential = true.

The odometry is pure pose(x,y and yaw) and IMU yaw is calculated via the complimentary filter. From what I understand, setting the differential term to true causes the odometry to be differentiated and then integrated to get the same pose value. How do I initialize the filter at a location, with odom0_differential = false.

Thanks.

Asked by bluehash on 2017-03-15 13:05:42 UTC

Comments

Would you mind closing this, in light of the other question?

Asked by Tom Moore on 2017-04-11 04:55:33 UTC

Answers