How to initiate "snapping" of an object to another with the presence of another object?
I would suggest working backwards with a bunch of offset copy location constraints. This will be a manual process for the most part (unless you want to script the major repetitive tasks) because it is not something that can be done easily and automatically with one of Blender's simulations.

If this is what you are going for, see the blend that I uploaded (of course the starting positions of the balls could be changed to whatever really easily to make them appear to be picked up instead of emitted.





To achieve what I did in the blend:


Animate "object A"
Add a copy location constraint to an "object B" that tracks to "object A"
Animate the "influence" of the cp loc constraint on "object B" for when you want it to "attach"
You can use the offset on the copy location constraint and simple location animations to achieve what I got in the demo