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

Viso2_ros covariance matrix problem and robot_locaization (ekf)

asked 2016-06-28 05:01:12 -0500

hashim gravatar image

updated 2016-08-17 05:35:42 -0500

Miquel Massot gravatar image

hi, I want to use viso2_ros with monochromatic camera to determine the visual odometry and fuse it with the imu orientation. As viso2_ros does not publish any covariances so we used the pose and twist covariances given in stereo_odometry code. But still the robot_localization(ekf) is not fusing the visual odometry values with the IMU. I tried to run the ekf with only visual odometry sensor but the ekf can not read the messages given at the odom topic. my ekf_templete launch file is given here. I dnt know whether it is the covariance issue due to which ekf is not fusing the visual odometry :/

<!-- Launch file for ekf_localization_node -->
<launch>
<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.1"/>
  <param name="two_d_mode" value="true"/>
  <param name="map_frame" value="map"/>
  <param name="odom_frame" value="odom"/>
  <param name="base_link_frame" value="base_link"/>
  <param name="world_frame" value="odom"/>
  <param name="transform_time_offset" value="0.0"/>
  <param name="odom0" value="/mono_odometer/odometry"/>
  <param name="imu0" value="/imu_data"/>

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

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

  <param name="odom0_differential" value="false"/>
  <param name="imu0_differential" value="false"/>
  <param name="odom0_relative" value="true"/>
  <param name="imu0_relative" value="true"/>
  <param name="imu0_remove_gravitational_acceleration" value="true"/>
  <param name="print_diagnostics" value="true"/>
</launch>
edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2016-08-17 05:33:57 -0500

Miquel Massot gravatar image

In our setup, we only use the twist from the odometry, since the EKF will take care of the integration of the measurements. This is the part of the imu and the visual odometer in our yaml file.

twist1: /sensors/vo
twist1_differential: false
twist1_relative: false
twist1_queue_size: 10
twist1_config: [false, false, false,
                false, false, false,
                true, true, true,
                true, true, true,
                false, false, false]
imu0: /sensors/imu
imu0_differential: false
imu0_relative: false
imu0_queue_size: 10
imu0_remove_gravitational_acceleration: true
imu0_config: [false, false, false,
              true, true, true,
              false, false, false,
              true, true, true,
              false, false, false]
edit flag offensive delete link more

Question Tools

Stats

Asked: 2016-06-28 05:01:12 -0500

Seen: 418 times

Last updated: Aug 17 '16