I think you have misunderstood how TF are supposed to work. Normally, the frames you can see in the TF tree, are the equivalent of the links that you have defined inside your URDF. In URDF format, you connect links through joints, specifying the type of the joint used. In TF, you do this by publishing transforms from one frame to another. You could publish yourself the tfs from each frame and it would work, but luckily, you have some packages to help you with that.
For static transformations (which are the equivalent to fixed joints) you can use robot_state_publisher
. For non static ones, like a revolute joint, robot_state_publisher can't determine the state of that joint only reading the URDF data, so you need something else. One solution could be joint_state_publisher
which searches which joints are not type fixed, and let's you change their state using its GUI. But in reality, you won't be the one controlling the joint, but any controller you use for it. Then, it would be that controller the one which should be publishing the tf representing that joint in the /tf topic.
It would be great if you could tell us what is the purpose of that TF and what are you trying to do.
If I didn't explain correctly, please do not hesitate to ask again and I will try to edit my answer.