My preferred method is to have a blueprint for a "robocatcher and load balancer." Something like what's shown below. I copy 1-2 instances of this in each independent logistic network I build. It doesn't matter that much where you put it, but placing it around a high-traffic path is best, since you'll tend to get more robots landing there. There's still no magic trick I know of to summon all your robots with the exception of some meticulous deconstruction regimen, but this method tends to be pretty effective at catching robots over time.
Set filter inserters for each type of robot you want to catch, and if you wire it to the roboport, you can set conditions like "only pull a logistic robot off the roboport if Y > 100, i.e. available_logistic_bots
> some minimum threshold you'd like to maintain for the network.
I also set requester chests and inserter arms feeding in for each type of robot that I want to maintain on the network, with similar logic conditions on the inserter arm like enable if X < 10, i.e. if the number of available logistic robots drops below 10, add more.
Combine this with inserter arm hand-overs between adjacent logistic networks in a some type of chain linking back to where you make your bots and now you've got a self balancing system for supplying your entire base and automatically scaling up your robot supply as your base grows (scaling down is harder, but why would you ever do that?).
This works a bit better with just Vanilla bots, since roboports don't have output signals specific to the different types of Angel's bots, but it still works with Bob's or Angel's bots.
