Pang
Simple model to start with
Goal
Inspiration
Throwing a ball at a wall
Humanoid push recovery
Marcucci, Tobia, et al. "Approximate hybrid model predictive control for multi-contact push recovery in complex environments." 2017 IEEE-RAS 17th International Conference on Humanoid Robotics (Humanoids). IEEE, 2017.
Tedrake, Russ "Underactuated Robotics." http://underactuated.mit.edu
Start
Move fingers to grasp.
Rotate the object with standard, robotic in-hand manipulation.
Re-grasp, as some fingers have reached joint limits in (3).
(1)
(2)
(3)
(4)
(5)
The manipulation action transitions from grasping to caged pushing between (4) and (5).
Some contacts are more important than others.
The primitives (grasping, pushing) have counterparts in robotics, but it's hard to predict when to switch primitives except in simulation (learn when to switch!).
Our current models for contact (mixed-integer or complementarity constraints) treats every contact, or even every extreme ray of every friction cone, as equally important logical decisions. This makes the problem artificially harder.
In the correct action space, planning for most dexterous manipulation tasks should be simple.
In-hand manipulation
Stable pushes
...
Contacts beyond end effectors
My work
Task: rotate the box by 90 degrees with robots.
Move greedily towards the goal,
until the current primitive is not "good" anymore.
Repeat until goal is reached.
Signals for the "goodness" of primitives are abundant, and easy to evaluate in simulation.
\( q_u = q_{u_0} \)
while \(|q_u - q_{u_{\text{goal}}}| < \epsilon \)
while True:
SamplePrimitive: \((p_{C_i}, n_i, q_a, \Delta q_u)\)
if primitive_quality > threshold: # primitive quality evaluated with rollout
break
\(q_u \) += \( \Delta q_u\)
------------------------------------------------------------------------------------------------------------------
An RRT version of this could also work.