robot_localization imu only not publishing odometry/filtered
So I'm using Dr Robot's Jaguar 4x4 robot on Ubuntu 16.04 and Ros Kinetic. I want to use the robot for autonomous navigation. I'm currently using robot_localization package of ROS for localization. But I've encountered into a problem. The robot only publishes IMU data so I'm using that ekf_localization_node using only imu to give odometry/filtered but it's not working. I have gps data and I want to use navsat_transform with the robot to work path planners. Both the gps and imu data are in REP-103 and REP-105 format.
I'm not getting any messages from either odometry/filtered and odometry/gps. Any help would be greatly appreciated for this. I have tried going through the documentation and couldn't find anything else. I want to just use my IMU and GPS for localization.
Here's my file ekf.yaml for the ekf parameters
frequency: 50
sensor_timeout: 0.1
two_d_mode: true
transform_time_offset: 0.0
transform_timeout: 0.0
print_diagnostics: true
debug: false
map_frame: map
base_link_frame: base_link
imu0: /imu
imu0_config: [false, false, false,
false, false, true,
false, false, false,
false, false, false]
imu0_nodelay: false
imu0_differential: false
imu0_relative: false
imu0_queue_size: 10
use_control: false
And here's my nav.yaml for navsat parameters:
frequency: 50
delay: 0
zero_altitude: 0
publish_filtered_gps: true
broadcast_utm_transform: true
imu0: /imu
odom0: /odometry/filtered
gps0: /gpu
Any help in it would be greatly appreciated.
I would suggest to look at some example projects that use robot_localization like jackal for example. Also read the documentation of robot_localization.
if you configure an imu0 in your config it expects a
sensor_msgs/Imu
type topic as input. I doubt thatimu0: /imu
in your config points to the right topic, it would more likely be something likeimu0: /imu/data
. Same for the gps0, which expectssensor_msgs/NavSatFix
and would usually be something likegps0: /imu/fix
.Also there is no apparent good reason to have these two sensor configs in separate files.
If you want more help add the output of
rosnode list
,rosnode info ekf_localization
androstopic list
while everything is launched to the question. Also add rosnode info from the node that is publishing your imu data and gps.Hey I wrote all of the messages from the robot as it didn't follow standard REP conventions. So it points to the right topic . I'm enclosing the output of rosnode and rostopic in a text file.
The_file
It is better to update the question with the relevant info, not post a link to some text file that might or might not be there in the future.
As to why your setup is not working, According to the file you posted, your navsat_transform_node is not subscribed to your sensor topics. Which might be causing issues with the ekf.
Read this question and answer and read the documentation of robot_localization.
In general look at what your relevant nodes are subscribed to and check whether the data published on those topics is what you expect it to be.