Hello I am new to ROS and using Robot_localisation package. As given in the tutorial I ran two instances of ekf_localisation. My navsat transform node gives zero output and I keep getting a warning : Could not obtain transform from gps_link to base_link. Error was "gps_link" passed to lookupTransform argument source_frame does not exist.
My launch file is :-
<!-- Test launch file for two EKF instances and one navsat_transform instance -->
<launch>
<node pkg="tf2_ros" type="static_transform_publisher" name="bl_imu" args="0 0 0 0 0 0 1 base_link imu_link" />
<!-- Local (odom) instance -->
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization_local" 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="/RosAria/pose"/>
<param name="imu0" value="/imu_data"/>
<rosparam param="odom0_config">[false, false, false,
false, false, false,
true, true, true,
false, false, true,
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_differential" value="false"/>
<param name="imu0_differential" value="false"/>
<param name="odom0_relative" value="false"/>
<param name="imu0_relative" value="false"/>
<param name="imu0_remove_gravitational_acceleration" value="true"/>
<param name="print_diagnostics" value="true"/>
<param name="odom0_queue_size" value="10"/>
<param name="imu0_queue_size" value="10"/>
<param name="debug" value="false"/>
<param name="debug_out_file" value="debug_ekf_localization.txt"/>
<remap from="/odometry/filtered" to="/odometry/filtered/local"/>
</node>
<!-- Global (map) instance -->
<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization_global" 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="map"/>
<param name="transform_time_offset" value="0.0"/>
<param name="odom0" value="/RosAria/pose"/>
<param name="odom1" value="/odometry/gps"/>
<param name="imu0" value="/imu_data"/>
<rosparam param="odom0_config">[false, false, false,
false, false, false,
true, true, true,
false, false, true,
false, false, false]</rosparam>
<rosparam param="odom1_config">[true, true, false,
false, false, false,
false, false, false,
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_differential" value="false"/>
<param name="odom1_differential" value="false"/>
<param name="imu0_differential" value="false"/>
<param name="odom0_relative" value="false"/>
<param name="odom1_relative" value="false"/>
<param name="imu0_relative" value="false"/>
<param name="imu0_remove_gravitational_acceleration" value="true"/>
<param name="print_diagnostics" value="true"/>
<param name="odom0_queue_size" value="10"/>
<param name="odom1_queue_size" value="10"/>
<param name="imu0_queue_size" value="10"/>
<param name="debug" value="false"/>
<param name="debug_out_file" value="debug_ekf_localization.txt"/>
<remap from="/odometry/filtered" to="/odometry/filtered/global"/>
</node>
<!-- navsat_transform -->
<node pkg="robot_localization" type="navsat_transform_node" name="navsat_transform" respawn="true" output="screen">
<param name="frequency" value="30"/>
<param name="delay" value="3"/>
<param name="magnetic_declination_radians" value="0.05"/>
<param name="yaw_offset" value="0"/>
<param name="zero_altitude" value="true"/>
<param name="broadcast_utm_transform" value="true"/>
<param name="publish_filtered_gps" value="true"/>
<param name="use_odometry_yaw" value="false"/>
<param name="wait_for_datum" value="false"/>
<remap from="/odometry/filtered" to="/odometry/filtered/global"/>
<remap from="/gps/fix" to="/gps_data"/>
<remap from="/imu/data" to="/imu_data"/>
</node>
</launch>
I have also attached a bag file of my sensor data https://drive.google.com/open?id=0B3oOeVRB6N26S3E4VEx2dk5WUGs
Originally posted by Anirvan0102 on ROS Answers with karma: 28 on 2016-06-14
Post score: 1
Original comments
Comment by Tom Moore on 2016-06-14:
Thanks for this. There's an issue on the GH page for r_l
regarding this very thing, so I'll look into it today or tomorrow.
Comment by Anirvan0102 on 2016-06-14:
Hello Tom, thanks for replying so quick. I included a static transform of base_link ->gps_link in the launch file and the warning message stopped also navsat_transform node gave the output in robot's local frame .
Comment by Anirvan0102 on 2016-06-14:
this was the line I added in the launch file
but I am getting terrible output from the odometry/filtered/global
Comment by asimay_y on 2016-06-14:
hi, @Anirvan0102, can you check your /odometry/gps
topic ? is it NAN when you set use_odometry_yaw= false in navsat_transform_node?
I met the same problem with you. but I just got one warning info of it, because I set the static tf transform.
Comment by Anirvan0102 on 2016-06-14:
Hey asimay_y, it is not NAN but the pose was exact zero and it was not changing as I was changing my robot's position. Later I set the static tf and I was getting the ouput of odometry/gps but my odometry/filtered/global was giving poor estimate.
Comment by asimay_y on 2016-06-14:
can you share your rosbag files and node graph?
I also get poor estimate, and digging the cause..
Comment by Tom Moore on 2016-06-15:
Where is the attached bag file?
Comment by Anirvan0102 on 2016-06-15:
Sure asimay_y ... here is my bag file https://drive.google.com/open?id=0B3oOeVRB6N26S3E4VEx2dk5WUGs. My launch file is https://drive.google.com/open?id=0B3oOeVRB6N26MVdGdllzVE1yMEk. I will be thankful to you if you could find out some solution, I have been stuck here for quite a time
Comment by Anirvan0102 on 2016-06-15:
Hello Tom, I have added it Another update- I think there might be some problem with my imu_data because I ignored the imu and used odometry yaw and my odometry/filtered/global output improved. Here's my current launch file https://drive.google.com/open?id=0B3oOeVRB6N26a1ZxdFhpeUE0Z2M