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

jerryzhchao's profile - activity

2016-12-21 20:57:53 -0500 commented answer Yaw problem for IMU fusinon in robot_localization

Thanks very much. @M@t So in your robot, if the GPS cannot work well, the trajectory will deviate a lot as well? Did you try @Tom Moore 's test bag in the r_l package? The IMU+ODOM fusion is much better than mine.

2016-12-21 20:53:53 -0500 received badge  Scholar (source)
2016-12-21 20:53:52 -0500 received badge  Scholar (source)
2016-12-21 20:53:52 -0500 received badge  Supporter (source)
2016-12-21 16:20:29 -0500 received badge  Student (source)
2016-12-21 05:41:43 -0500 received badge  Famous Question (source)
2016-12-21 00:35:03 -0500 received badge  Enthusiast
2016-12-19 21:23:10 -0500 commented question Yaw problem for IMU fusinon in robot_localization

@M@t Yes the IMU conforms to REP103 with ENU frame. I will prepare a small bag asap.

2016-12-19 14:02:18 -0500 received badge  Notable Question (source)
2016-12-19 02:32:36 -0500 commented question robot_localization: map -> odom drifts in z-direction with zero-altitude set to true

For your problem, you'd better try to make the two nodes as same setting in two-D mode parameter. I saw one is false and another is true. By the way, when you are fusing odom and imu, did your imu2 has an absolute yaw w.r.t. ENU frame?

2016-12-19 01:52:03 -0500 received badge  Editor (source)
2016-12-16 05:19:25 -0500 commented answer How can I reduce drift in my robot's trajectory?

I have similar sensors as your robot, I have a question. when you do the IMU and odom fusion, did your IMU has a yaw feedback ie. north or south? @M@t

2016-12-07 19:37:15 -0500 received badge  Popular Question (source)
2016-11-29 22:59:01 -0500 commented question errors in using robot_localization package

@krishna43 Hi I am doing the similar experiment. However, I found the /odom in TF is always produced by the bag file but not the ekf node. So that make the estimation and the odom the same. I saw your TF tree is correct. Any suggestions?

2016-11-29 02:46:29 -0500 commented question Yaw problem for IMU fusinon in robot_localization

@gvdhoorn Thanks for reminder.

2016-11-29 01:46:52 -0500 asked a question Yaw problem for IMU fusinon in robot_localization

EDIT1: The Yaw feedback from Mti-300 is a didital compass that in ENU frame. So it is not the same with /odom source. If I fusion data with IMU's Yaw, the result is very bad. If I only fusion with the yaw angular velocity, the result is acceptable. Is it correct? and Could anyone please tell me how to deal with the absolute yaw value? @M@t @Moderator

EDIT2 I've got a GPS and a Mti-300 IMU producing IMU message at 400HZ. I am trying to use ekf_fusion to estimate the robot's position. Firstly, when I tried to use only one IMU & odom without the GPS, the result is very very bad. But I tried the testbag1, it works fine. Here is my simple launch file. The other launch file for the IMU node is omitted.

<node pkg="rosbag" type="play" name="rosbagplay" args="$(find robot_localization)/test_turtlebot/1202.bag --clock -d 5" required="true"/>

<node name="test_ekf_localization_node_bag2_ekf" pkg="robot_localization" type="ekf_localization_node" clear_params="true" >

  <param name="frequency" value="30"/>

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


  <param name="odom0" value="/odom"/>
  <param name="imu0" value="/imu/data"/>

  <param name="map_frame" value="map"/>
  <param name="odom_frame" value="odom"/>
  <param name="base_link_frame" value="base_footprint"/>
  <param name="world_frame" value="odom"/>

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

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

  <param name="odom0_queue_size" value="10"/>
  <param name="imu0_queue_size" value="10"/>

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

I found the problem maybe caused by the yaw output from my IMU. Change the configuration matrix to

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

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

The result is better,about 1 m error after 200m testing. However I know it is not corrct for using yaw from /odom. But it sems like I cannot use the yaw(from compass) from IMU.

@Tom Moore Thnks very much, here are my sample messages.

/odom: ---
header: 
  seq: 5419
  stamp: 
    secs: 1480672217
    nsecs: 320610941
  frame_id: odom
child_frame_id: base_footprint
pose: 
  pose: 
    position: 
      x: 4.18018921507
      y: -0.135587119981
      z: 0.0
    orientation: 
      x: 0.0
      y: 0.0
      z: -0.0435322037951
      w: 0.999052024287
  covariance: [0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.7976931348623157e+308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05]
twist: 
  twist: 
    linear: 
      x: 0.347565259959
      y: 0.0
      z: 0.0
    angular: 
      x: 0.0
      y: 0.0
      z: 0.0
  covariance ...
(more)