0
$\begingroup$

Rosanswers logo

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>

Originally posted by hashim on ROS Answers with karma: 53 on 2016-06-28

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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]

Originally posted by Miquel Massot with karma: 1471 on 2016-08-17

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

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