Side note: If there are multiple objects at A and C, so the robots continue circulating to move the objects cyclically, then ABCD and CDAB are the same paths. In either case (single objects at A and C or multiple objects), just assign a weight to each segment that equals the distance travelled to go from source to destination. Add the segment lengths and choose the minimum. With this few number of nodes, an exhaustive search method like this would work.
As a thought exercise, and to confirm this method, assume the distance between A and B is very short, but that D is far away from A. I’ll choose 1 for segment AB and 10 for segment AD. In this case, let’s say that BD is 10.5 so the geometry makes sense. Let’s just compare those paths that begin with travelling along CA (but you’ll have to do this for all paths). Your choices are CABD and CADB.
For these two paths, CA is the same so we can disregard it for this exercise. So you are left with ABD vs ADB. ABD lengths are 1 + 10.5 = 11.5. ADB lengths are 10 + 10.5 = 20.5. So in this arrangement, CABD would be more optimal.
In addition to the distances between nodes, you may have to consider additional weights that stand for the distances between robots 1 and 2 and the various starting node options.
As the number of nodes increases, more advanced methods and heuristics would be needed rather than an exhaustive search.