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

help with matrix covariance

asked 2019-06-01 14:55:17 -0500

mateusguilherme gravatar image

updated 2019-06-04 06:23:17 -0500

Hello

I have a differential robot + 2 encoders + IMU. I'm trying to implement the robot_localization package to merge the odometry and IMU data. In some forums, some authors affirm the need to fill in the covariance matrix of IMU messages and Odometry messages.

The covariance matrix that I have, I found on the internet, I do not know if they are correct. How can I find the values to fill a covariance matrix? Is there an example or general rule?

Below My Odom and IMU Messages...

/odom

header: 
  seq: 735
  stamp: 
    secs: 1559070711
    nsecs: 593724715
  frame_id: "odom"
child_frame_id: "base_footprint"
pose: 
  pose: 
    position: 
      x: 3.58344948396
      y: 0.0485756406341
      z: 0.0
    orientation: 
      x: 0.0
      y: 0.0
      z: 0.0110481512963
      w: 0.999938967314
  covariance: [0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001]
twist: 
  twist: 
    linear: 
      x: 0.145770311356
      y: 0.0
      z: 0.0
    angular: 
      x: 0.0
      y: 0.0
      z: 0.00531763536856
  covariance: [0.0001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0001]
---

/imu_raw

Model: WT901C Datasheet: http://wiki.wit-motion.com/english/lib/exe/fetch.php?media=module:wt901:docs:jy901usermanualv4.pdf

header: 
  seq: 3022
  stamp: 
    secs: 1559070635
    nsecs: 872518062
  frame_id: "imu_link"
orientation: 
  x: 0.0243225097656
  y: -0.0449829101562
  z: 0.0723571777344
  w: 0.996063232422
orientation_covariance: [0.0001, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.0, 0.0, 0.0001]
angular_velocity: 
  x: 0.79345703125
  y: 0.06103515625
  z: 7.99560546875
angular_velocity_covariance: [0.0001, 0.0, 0.0, 0.0, 0.0001, 0.0, 0.0, 0.0, 0.0001]
linear_acceleration: 
  x: 0.078125
  y: 0.0244140625
  z: 1.00390625
linear_acceleration_covariance: [0.001, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.001]
edit retag flag offensive close merge delete

Comments

Do you have an exact model of IMU that you are using? That's going to be helpful in answering this.

Those covariance values look a bit too good to be true. I found an article that does a decent job of explaining what these values are.

Sometimes, manufacturers will include covariance (it's rare, but super nice when it happens). Other times, you might just need to perform some experiments yourself.

allenh1 gravatar image allenh1  ( 2019-06-03 15:58:33 -0500 )edit

Hello

My IMU sensor Datasheet is as follows:

[http://wiki.wit-motion.com/english/li...]

But I did not find anything that could be used as covariance ...

thank you

mateusguilherme gravatar image mateusguilherme  ( 2019-06-04 06:20:02 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2019-07-02 11:33:36 -0500

mateusguilherme gravatar image

I suggest using "Dynamic Reconfigure" (http://wiki.ros.org/dynamic_reconfigure) to find the best covariance matrix for your robot.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2019-06-01 14:55:17 -0500

Seen: 326 times

Last updated: Jul 02 '19