Reactive Manipulation

What reactiveness in robotics?

It is the ability to anticipate when something goes ¨wrong¨ and take appropriate action for that situation. Thinking about reactive manipulation from the control engineering perspective, reactiveness is feedback control. When planning, reactiveness requires looking into the future.

Reactiveness is an ability that manifests during the execution of a task, so reactiveness must be present in the plan by anticipating deviations and designing appropriate actions during planning. A reactive manipulation plan must anticipate what will happen during execution. Thus, the plan must reason about different outcomes for the same action, and this reasoning implies that the plan has branches. This is reached with contingency planning.

Why is reactiveness important?

One could imagine a delivery robot getting out from an elevator (on the wrong floor) and dispatching your parcel to the neighbor. That was not the plan, right? In this example, there are multiple points when the delivery robot can react to divergences from the plan: observing that it reached the wrong floor or the person opening the door is not the addressee. So, the key is to observe any deviation in the intended plan, which would help the robot to accomplish the task correctly.

To tackle this problem, we propose a novel method that can anticipate events that can happen during execution and plan contingencies for those events. The novelty of the method is the way we reason about events, namely contact events, and how we plan contingencies for those contact events. Our recent publication presents the Contingent Contact Exploiting RRT motion planner (link). For theoretical and technical details, please refer to the previously linked publication. Interactive poster from the IROS 2018:

Publication reference: Előd Páll and Arne Sieverling and Oliver Brock, "Contingent Contact-Based Motion Planning", IEEE/RSJ International Conference on Intelligence Robots and Systems (IROS-18), 2018 (pdf_link)

GitLab repo of the method: