Since the thread is from 2014, is this still information still up to date?
The MoveIt planning scene still only supports a single "robot". I'm putting that in quotes, as what it really means is: it only supports a single root.
So as long as you can put together a .urdf
or .xacro
which has a single root, you can have as many robots in a scene as you'd need/want/like.
But from this:
It and additional robot-like machines which should be added at runtime, [..]
I get the impression that you're actually wondering about how to dynamically add and remove additional robots to and from the planning scene.
That's a slightly different question, and it would be good if you could clarify whether that is your actual question.
Are there any better solutions than to add/remove the objects to the planning scene programmatically?
Well, programmatically implies it's done through or by something which was programmed to do this. So in the end, I'd say no, it'll always be done by something which was programmed to keep an eye on this aspect of the planning scene.
If you're asking whether there is something you could use out-of-the-box then perhaps the perception pipeline (ie: Octomaps) could be of use.
From what you describe, it sounds like you're mostly interested in knowing where other things are, such that you can either avoid them or actually plan towards them. For the former, an Octomap based collision object seems like it could be useful.
For the latter, you may want to augment that with something which dynamically places more detailed collision objects in the planning scene, such that you could be sure you're planning towards or close to something which is not just a bunch of voxels, but recognisable geometry.
The Octomap updater is provided by the base MoveIt installation. Something to recognise and place collision objects in your scene is not.