The way to do this is to separate the skills of the two components (human, robot) into different time-frames where speed doesn't matter where speed can't be achieved.
For example, the robot could be limited to detecting if an item is in a bin or not, and if it's approximately the right size and shape. It knows where the bins are, and if they have one item or not. Each bay would have a big bin of all the items, and a few out front with one of those items each.
Robots pick for orders, fast, and without many errors.
Humans take single items from the large bin, place them in the fast-pick bins and track the item (with a bar code) and the bin (with a bar code).
In the case where the flow changes and an item is ordered a lot, the number of bins can be changed. Also, robot / human meet-ups will be called for by the robots / computer system if it knows there aren't enough items or a lot are ordered. The human meets the robot there and fills bins as the robot picks.
Now the robot system can do what it does best, get the order out the door fast and accurately, without tiring and without needing a break. The human can do what it does best, getting the complex item ready for a simple robot to handle, and it's work is not very sensitive to breaks, holidays, trainees, boredom, etc.