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

Revision history [back]

So this you really checkout this? Because there are some notes you dont follow. They suggest that you actually run two robot_localization nodes. One in the odom frame where you fuse only continuous data such as odometry and/or an IMU. Another instance of the robot_localization fuses this data too but additionally the GPS data.

What I think that you really wanted to do so but what I just see in your launch file is that you start ekf_se_odom but not the instance of ekf_se_map.

So another thing is that you don't set the parameters of the navsat_transform_node like f.e. here.

Also you dont remap to the imu and the GPS data. Please check if the default one are correct.

So ok the navsat_transform_node needs now the input of the ekf_se_odom what means that your remapping is currently wrong. Your ekf_se_odom dont remap so its default output is /odometry/filtered. But you change the input from the navsat_transform_node to odometry/filtered_map (wherever this comes from). So just dont remap in this case.

Than you need to feed your ekf_se_map with the complete data of ekf_se_odom and additionally with the output of your navsat_transform_node which is publishing its data by default to /odometry/gps.

So this you really checkout this? Because there are some notes you dont follow. They suggest that you actually run two robot_localization nodes. One in the odom frame where you fuse only continuous data such as odometry and/or an IMU. Another instance of the robot_localization fuses this data too but additionally the GPS data.

What I think that you really wanted to do so but what I just see in your launch file is that you start ekf_se_odom but not the instance of ekf_se_map.

So another thing is that you don't set the parameters of the navsat_transform_node like f.e. here.

Also you dont remap to the imu and the GPS data. Please check if the default one are correct.

So ok the navsat_transform_node needs now the input of the ekf_se_odom what means that your remapping is currently wrong. Your ekf_se_odom dont remap so its default output is /odometry/filtered. But you change the input from the navsat_transform_node to odometry/filtered_map (wherever this comes from). So just dont remap in this case.

Than you need to feed your ekf_se_map with the complete data of ekf_se_odom and additionally with the output of your navsat_transform_node which is publishing its data by default to /odometry/gps.


Edit to comment:

No you need the ekf_se_odom as well! So you need two instances of the EKF of the robot_localization. The ekf_se_odom is also an input for the navsat_transform_node. The instance ekf_se_map get than also the same input of the ekf_se_odom plus the output of the navsat_transform_node.

So this you really checkout this? Because there are some notes you dont follow. They suggest that you actually run two robot_localization nodes. One in the odom frame where you fuse only continuous data such as odometry and/or an IMU. Another instance of the robot_localization fuses this data too but additionally the GPS data.

What I think that you really wanted to do so but what I just see in your launch file is that you start ekf_se_odom but not the instance of ekf_se_map.

So another thing is that you don't set the parameters of the navsat_transform_node like f.e. here.

Also you dont remap to the imu and the GPS data. Please check if the default one are correct.

So ok the navsat_transform_node needs now the input of the ekf_se_odom what means that your remapping is currently wrong. Your ekf_se_odom dont remap so its default output is /odometry/filtered. But you change the input from the navsat_transform_node to odometry/filtered_map (wherever this comes from). So just dont remap in this case.

Than you need to feed your ekf_se_map with the complete data of ekf_se_odom and additionally with the output of your navsat_transform_node which is publishing its data by default to /odometry/gps.


Edit to comment:

No you need the ekf_se_odom as well! So you need two instances of the EKF of the robot_localization. The ekf_se_odom is also an input for the navsat_transform_node. The instance ekf_se_map get than also the same input of the ekf_se_odom plus the output of the navsat_transform_node.

So you need two lines like:

<node pkg="ivlocalization" type="ekf_localization_node" name="ekf_se_map" clear_params="true" output="screen">

<node pkg="ivlocalization" type="ekf_localization_node" name="ekf_se_odom" clear_params="true" output="screen">