Contact-based interactions between a robot and its environment: planning, control and application.