Warning with hector_exploration_node (problem with the tf tree)
Hello,
I recently started using the nodes of the hector algorithms and today I tried to use the hector_exploration_node
on my 3 wheel differential driven robot on which I have put a hokuyo lidar. I am generally new in ros, so some follow up questions may occur.
After the roslaunch of my model in gazebo and the state_publisher I did the following:
roslaunch hector_exploration_node exploration_planner.launch
After the command, I got the following warnings:
[ WARN] [1471047689.018501831, 134.995000000]: Timed out waiting for transform from base_link to map to become available before running costmap, tf error: . canTransform returned after 134.995 timeout was 0.1.
[ WARN] [1471047695.188449599, 140.033000000]: Timed out waiting for transform from base_link to map to become available before running costmap, tf error: Could not find a connection between 'map' and 'base_link' because they are not part of the same tree.Tf has two or more unconnected trees.. canTransform returned after 0.102 timeout was 0.1.
[ WARN] [1471047701.360674352, 145.134000000]: Timed out waiting for transform from base_link to map to become available before running costmap, tf error: Could not find a connection between 'map' and 'base_link' because they are not part of the same tree.Tf has two or more unconnected trees.. canTransform returned after 0.105 timeout was 0.1.
As the warning suggested I checked my tf tree by running:
rosrun tf view_frames
The results of the command was this .
As you can see I have 3 unconnected tf trees and the weird part is that I have 2 different base_footprints (one as /labrob/base_footprint and one as base_footprint) which I don't know why happens, since in my urdf code I just mention the frames as 'base_footprint', 'base_link', 'r_wheel', 'l_wheel' etc. Labrob is the name of my robot. I don't want to forget to mention that I am using the following state_publisher, which I roslaunch after I roslaunch the robot model in gazebo:
<launch>
<param name="robot_description" command="cat $(find labrob_description)/urdf/labrob.urdf" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
</launch>
The warning also mentions that there is no connection between map and base_link, which is correct according to my tree.
To sum up, I have the following questions regarding all the above:
What does practically mean tf connection between map and base_link (I mean the robot moves on the map, if that's the practical connection between the two) ?
What tutorial should I follow to establish a connection between these 2 frames (map and base_link) ?
Is there something wrong on the launch file of my state_publisher?
Could you please explain me why I see two different base_footprints?
Thank you for your time and for your answers in advance,
Chris
EDITED:
About my 4th question, I changed some things in the urdf code of the robot and I saw that the issue evolves because I have 2 different broadcasters (gazebo and state_publisher). To be more specific, at the end of my urdf file i use the following plugin:
<gazebo ...