Yes you can do this with process builder, though it's likely better with flow.
What you are describing is also known as a "dynamic approval process".
You need to add a lookup to user on object1 (lets call it approver__c) and reference that field as the approver in your approval process.
Then use process builder to update approver__c to the user on object2, and have process builder itself submit the record for approval.
You can use a checkbox to launch the process.
Or you can build a button that launches a flow to update the checkbox, or you can do the whole thing in flow, which gives you some more options.
You might want to add logic to evaluate if the user is inactive and if so, pop a screen to the user, etc. Flow let's you do this.
There is a free hands on training for this that I helped build, from dreamforce 15, available here (scroll down for the free ones)