First, study Homogenous transformations. Read until (inclusive) 2.10 section. https://www.amazon.com/Modelling-Manipulators-Advanced-Textbooks-Processing/dp/1852332212
Tutorial ARCOS-Lab ROS2 + URDF + launch files:
https://cloud.arcoslab.org/f/40199
What is TF2 (don't dig into the subpages, they are mainly for ROS1):
https://wiki.ros.org/tf2
Theory of TF1 (old but a bit relevant):
http://wiki.ros.org/tf/Theory
Study the conventions:
http://www.ros.org/reps/rep-0103.html
http://www.ros.org/reps/rep-0105.html
http://www.ros.org/reps/rep-0120.html
https://wiki.ros.org/tf2/Terminology
TF2 with ROS2:
https://docs.ros.org/en/foxy/Tutorials/Tf2/Tf2-Main.html
Build a TF2 robot with URDF and robot_state_publisher in ROS2:
https://docs.ros.org/en/foxy/Tutorials/URDF/Using-URDF-with-Robot-State-Publisher.html
More on building a robot with TF2 (ignore code, it is for ROS1):
http://wiki.ros.org/navigation/Tutorials/RobotSetup/TF
URDF intro:
http://wiki.ros.org/urdf/XML/model
Create your own URDF (don't go into subpages yet):
http://wiki.ros.org/urdf/Tutorials/Create your own urdf file
URDF XML Specifications:
http://wiki.ros.org/urdf/XML
Create a Visual robot model with URDF:
http://wiki.ros.org/urdf/Tutorials/Building a Visual Robot Model with URDF from Scratch
http://wiki.ros.org/urdf/Tutorials/Building a Movable Robot Model with URDF
Xacro:
http://wiki.ros.org/urdf/Tutorials/Using Xacro to Clean Up a URDF File
http://wiki.ros.org/xacro
URDF links and joints:
http://wiki.ros.org/urdf/XML/link
http://wiki.ros.org/urdf/XML/joint
URDF Tutorials:
http://wiki.ros.org/urdf/Tutorials
URDF safety limits:
http://wiki.ros.org/pr2_controller_manager/safety_limits
URDF package/software utils:
http://wiki.ros.org/urdf
https://www.orocos.org/wiki/Kinematic_Trees.html
http://wiki.ros.org/urdf/XML/joint