0
$\begingroup$

Rosanswers logo

I using Ububtu 14.04 and ros-indigo-devel for robot_localization

This my ukf.yaml

frequency: 30 sensor_timeout: 0.1 transform_time_offset: 0.0 two_d_mode: true print_diagnostics: true map_frame: map odom_frame: odom base_link_frame: base_link world_frame: odom alpha: 0.001 kappa: 0 beta: 2 odom0: /odom odom0_config: [false,false,false, false, false, false, true, false, false, false, false, false, false, false, false] odom0_differential: false odom0_relative: false odom0_queue_size: 50 odom0_nodelay: false

I confirm the position.z is zero in /odom messages.

I start 2d pose estimate using ukf and pose_z is non-zero value.

I try track it and find out when computing sigma point , the position.z provide non-zero value. sigmaPoints_[sigmaInd + 1] = transferFunction_ * (state_ + weightedCovarSqrt_.col(sigmaInd)); in ukf.cpp

Is it OK ?

By the way , I using EKF to estimate pose and position.z is always zero.

Sample input is from odom

image description http://blackdragonyu.no-ip.org/web_images/2016-10-24_181611.png

The attachments are my UKF and EKF yaml

http://gofile.me/2jhbn/ZEJnxxcKD

The output please see these images:

image description http://blackdragonyu.no-ip.org/web_images/2016-10-24_191341.png


image description http://blackdragonyu.no-ip.org/web_images/2016-10-24_191433.png

Update 1 :

The following is my log. Please reference

  1. When starting UKF localization , I found create sigma points that just provide non-zero for z-position of robot's pose image description http://blackdragonyu.no-ip.org/web_images/ukf2.png

  2. Because all sigma point are not zero , the z-position of robot's pose is not zero also. image description http://blackdragonyu.no-ip.org/web_images/ukf.png


Originally posted by sai5555 on ROS Answers with karma: 1 on 2016-10-19

Post score: 0


Original comments

Comment by Tom Moore on 2016-10-24:
Can you please clean up the .yaml printout and also post sample inputs from every message? Thank you.

Comment by Tom Moore on 2016-10-24:
Also, have you tried using the EKF to see if it behaves the same way?

Comment by sai5555 on 2016-10-24:
Yes , I tried EKF using same yaml and EKF dont have this problem

Comment by Tom Moore on 2016-11-01:
1e-18 is effectively 0. Does it ever become larger, or does it stay around there?

Comment by sai5555 on 2016-11-07:
About le-18~le-20

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

The UKF has a prediction and correction step. The prediction step uses the sigma points to project the state forward. The sigma points are based on the state's covariance matrix, and the Z value will never be exactly 0 (in fact, it can't be). Note that this differs from the EKF, which projects the state forward using only the motion model. When you see non-zero values from the UKF, it may be due to a cycle that had a prediction step with no correction.

However, please note that the Z values you are posting are effectively 0. In the example you posted above, 3.87298e-06 is 0.00000387298. If your system is sensitive to that level of error, you may want to stick with the EKF.


Originally posted by Tom Moore with karma: 13689 on 2016-11-08

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by sai5555 on 2016-11-10:
OK , so it is normal ?

Comment by Tom Moore on 2016-11-10:
Yes. I was explaining how the UKF works to make it clear why you're seeing the values.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.