In cases where robots have passive joints (casters, suspension, etc) which have no sensing, you end up having to have a process somewhere which publishes dummy joint_state values for those joints so that robot_state_publisher can supply them with TFs.
It would be more straightforward to simply supply a param map of static joint values to robot_state_publisher.