Understanding TF, URDF and Static_transform_publisher
I Am struggling to understand where TF and URDF fit it. Also, while consulting the tutorial on costmap_2d I came across the static_transform_publisher which is confusing me as well.
Firstly, I am trying to produce a 2d map of an environment on ROS (indigo). I am planning on using the range_sensor_layer as a costmap_2d plugin to enable the use of Sonar sensors.
I understand that a URDF places all the robot components in perspective, for example my sensors are placed in the front of the robot each 45 degrees apart, and a URDF allows me to "place" these sensors i.e Tell ROS how they are placed.
Now where does TF come into play (I understand it is the transform from my robot base (base_link) and the so called laser scan), Do I need both TF and URDF and how do they link?
Also with reference to the costmap_2d tutorial and the static_transform_publisher, it says that a static transform publisher tells the package the transformation from the /map and the base_link, what would this be? Is it the TF or an addition to the TF?