Add pusher system to robot.

These commits are based on changes by Eric and were re-added to
fix git history.