Here are the steps I am planning on taking to accomplish this.
This will be a shelf or series of shelves that have a grid painted on it. At the intersection of each line will be a co-ordinate location. each location will have a parts bin (or an empty space).
There will also be a lift or ramp on one side of the shelf that will allow the robot to go to a different level.
Finally there will be a spot where the robot takes the bins and a spot where the robot returns to charge when it has no orders.
I have a zumo robot from pololu that I will be using to prototype with. the final version will be custom built using CNC.
Here is what the robot must be able to do
1.) send and receive commands via wireless connection
2.) follow the grids and report when it reaches an intersection
3.) be able to lift and lower the parts bin using a servo or small linear actuator.
4.) detect if there is a parts bin at the current location (for error checking)
Here is what the computer must be able to do
1.) send and receive commands to the robot
2.) know the whole layout of the system and where the robot is located in the system and what direction it is facing
3.) know what is at each location and how to get the robot to and from each location.
4.) be able to add and remove bins to the system (and inventory what is in the bin)
5.) be able to queue and then retrieve multiple bins shuffling around a single or a few empty spaces.
6.) move several robots at once without crashing them together.