A Variable Compliance Controller For Cooperative Vision Guided Robotic Assembly