Constraint-aware visual servoing for teaching practical robot motion