  Complex dexterous manipulations require switching between prehensile and
non-prehensile grasps, and sliding and pivoting the object against the
environment. This paper presents a manipulation planner that is able to reason
about diverse changes of contacts to discover such plans. It implements a
hybrid approach that performs contact-implicit trajectory optimization for
pivoting and sliding manipulation primitives and sampling-based planning to
change between manipulation primitives and target object poses. The
optimization method, simultaneous trajectory optimization and contact selection
(STOCS), introduces an infinite programming framework to dynamically select
from contact points and support forces between the object and environment
during a manipulation primitive. To sequence manipulation primitives, a
sampling-based tree-growing planner uses STOCS to construct a manipulation
tree. We show that by using a powerful trajectory optimizer, the proposed
planner can discover multi-modal manipulation trajectories involving grasping,
sliding, and pivoting within a few dozen samples. The resulting trajectories
are verified to enable a 6 DoF manipulator to manipulate physical objects
successfully.
