Automated Design of Robotic Hands For In-Hand Manipulation Tasks
Automated Design of Robotic Hands For In-Hand Manipulation Tasks
Automated Design of Robotic Hands For In-Hand Manipulation Tasks
Christopher Hazard
Robotics Institute, Carnegie Mellon University, 5000 Forbes Ave,
Pittsburgh, PA 15213, USA
[email protected]
Nancy Pollard
Robotics Institute, Carnegie Mellon University, 5000 Forbes Ave,
Pittsburgh, PA 15213, USA
[email protected]
Stelian Coros
Computer Science Department, ETH Zurich, Rmistrasse 101,
Zurich, 8092, Switzerland
[email protected]
Grasp planning and motion synthesis for dexterous manipulation tasks are tradition-
ally done given a pre-existing kinematic model for the robotic hand. In this paper, we
introduce a framework for automatically designing hand topologies best suited for ma-
nipulation tasks given high level objectives as input. Our pipeline is capable of building
custom hand designs around specific manipulation tasks based on high level user input.
Our framework comprises of a sequence of trajectory optimizations chained together to
translate a sequence of objective poses into an optimized hand mechanism along with a
physically feasible motion plan involving both the constructed hand and the object. We
demonstrate the feasibility of this approach by synthesizing a series of hand designs op-
timized to perform specified in-hand manipulation tasks of varying difficulty. We extend
our original pipeline [12] to accommodate the construction of hands suitable for multiple
distinct manipulation tasks as well as provide an in depth discussion of the effects of
each non-trivial optimization term.
1. Introduction
Dexterous manipulation has long been a topic of interest in robotic manipulation
due to its association with fine motor skills in humans, and the advantages that
it can confer upon factory robots and general purpose robots[13]. Dexterous ma-
nipulators are able to accomplish motions more efficiently and operate in limited
workspace environments more easily[19]. Additionally, we want to develop manip-
1
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
ulators that work in intuitive and human-like ways, particularly if they are meant
to work alongside humans.
One line of research in dexterous manipulation focuses on the design of manipu-
lators to mirror the kinematics of the human hand[18][17]. These hands have shown
impressive capabilities with regards to dexterous manipulation [27] tasks, however
the problem of dexterous manipulation remains unsolved [5]. One reason for this is
that we cannot yet fully replicate the capabilities of the human hands and choices
made to simplify the design may end up limiting capabilities of the hand. We have
experienced this in our own research when the thumb of a dexterous hand does
not have sufficient range of motion or the geometry of the hand’s inner surfaces
impedes rather than aids performing a manipulation. Progress in this domain is
further burdened by the fact that these hands are prohibitively costly.
Rather than trying to approach manipulation from the perspective of human
hand kinematics and dynamics, we focus on accomplishing some critical dexterous
human hand functions and optimizing mechanisms to perform specific in-hand ma-
nipulation tasks. Our vision is to create an optimization pipeline for generating low
cost hands that are well tuned for specific tasks or families of tasks. The possibility
of creating useful low-cost hands has been well demonstrated, as in [20][7][8]. In
several cases, optimization has been used to tune some of the design parameters for
these types of hands [10]. We go beyond previous work by constructing our hands
from scratch based on a given task definition. Our goal is to allow even novice users
to easily design a variety of hands for their intended use cases.
In this paper, we introduce an optimization pipeline that takes high level user
specifications such as a sequence of goal poses for a manipulated object and builds
a mechanism specifically designed for the given task with no additional parameter
tuning required on the part of the user. In this work, we limit ourselves to the
class of in-hand manipulations that can be wholly described as reorientation of
the object with respect to the palm, however the pipeline we have developed is
extensible to other classes of in-hand manipulations. We show that our pipeline
is able to synthesize a wide variety of useful specialized manipulators for various
tasks. We build on our previous work [12] by extending our original pipeline to build
hands for multiple distinct tasks. We have also generated a comprehensive list of
failure cases that arise when each of our non-trivial optimization terms is removed,
thereby justifying their inclusion in our final pipeline.
2. Related Work
A large body of work revolves around classifying human manipulation behaviors and
replicating them with robotic manipulators inspired by the human hand. Works such
as [1] and [30] attempt to classify the spectrum of human hand manipulations into a
hierarchy of grasps and in-hand manipulations covering various phenomena such as
rolling motions, controlled slipping, grasp repositioning, and finger gaiting [25] with
the intention of mimicking these motions on robotic hands. Platforms such as the
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
NASA Robonaut hand [18], GIFU III [23], and Shadow Dexterous Hand [17] have
become standard models on which manipulation algorithms and controllers have
been implemented to mimic these types of behaviors. These hands are meant to be
generic manipulators that should be able to carry out virtually any manipulation
task given an appropriate control policy.
Low DOF hands have the advantage of being easier to build and maintain, eas-
ier to control, less expensive, and less prone to mechanical failure since they have
fewer moving parts[10][9]. Due to the fact that they are cheaper and easier to build,
specifics of the design can be optimized to tune or specialize a given hand. Various
works [4][6][3] have optimized continuous parameters such as component lengths,
tendon stiffness, and pulley radii to address kinematic concerns such as reachabil-
ity constraints, avoidance of Jacobian singularities within the workspace, limits on
individual joint torques, etc. [28] addresses the problem of discrete optimization
of gripper design by chaining together individual modules to build fingers until a
desired grasp quality is reached.
We build on previous work by optimizing both discrete and continuous char-
acteristics of hand design to suit specific tasks. A significant portion of our design
process consists of trajectory optimizations to test the competence of our hands in
performing different tasks. Trajectory optimization methods have shown remarkable
ability to synthesize complex motions in both robot locomotion and manipulation,
allowing the user to create complicated physically feasible motions from high level
goal specifications. [15] and [14] develop optimization routines in which an initial
grasp pose is specified with a given hand model along with kinematic goals for an
object, and a numerical optimizer constructs physically feasible motion plans to
synthesize target manipulations. Other work in trajectory optimization for manip-
ulation captures demonstrated manipulations and finds contact forces that explain
the motion[31].
Recent work in trajectory optimization has explored the use of discontinuous
contacts in locomotion and manipulation tasks [21][26]. Mordatch et. al. [21] intro-
duced the concept of contact invariance, in which contact is treated as a contin-
uous variable, to facilitate optimization with changing contacts. Our work draws
inspiration from [22], which applies the contact invariant method to the domain of
manipulation.
Trajectory optimization methods for motion synthesis assume a fixed robot mor-
phology. We do not know of any prior work that attempts to optimize the manipu-
lator design while also creating a motion plan for physically feasible manipulations.
Such a task is challenging for in-hand manipulation tasks due to the fact that these
tasks are very contact dependent and hard to model or simulate.
Fig. 1: Given the required user input, our ”floating” optimization generates a phys-
ically feasible motion plan using disembodied contacts points. We then synthesize
a mechanism with fingertips designed to follow these trajectories and provide the
required forces. Finally, we combine the floating motion plan with the hand design
to adapt the motion to the designed mechanism, outputting the mechanism and a
physically valid motion.
base of the hand. The object may be partially supported by the environment. This
type of manipulation is fundamental to acquiring and placing objects, and moving
from one grasp to another [24]. Our examples demonstrate 2 and 3-fingered hands,
however our approach can be applied to accommodate hands with more fingers.
Our optimization pipeline has three parts, as shown in Figure 1. The input to
our system is a sequence of objective poses for the object, a trajectory for the base,
and an initial placement (subject to change) of the contact points on the object.
The output of our system is an optimized mechanism, contact points, and forces
that meet our objectives in a physically valid motion. The sections below discuss the
components of this pipeline originally introduced in [12], followed by an extension
of our original methodology to build hands meant to execute multiple distinct tasks
(we refer to these as ”multi-objective” designs, whereas hands designed for single
manipulations are ”single objective” designs).
be the state at time t of the object, with xO denoting the object’s position and
orientation in the world frame, and ẋO being the derivative at time t of position and
orientation. fj denotes the force vector at contact point j for j ∈ {1, 2, ..., Ncontacts }
expressed w.r.t. the world frame, and rj denotes the location of contact point j in
the local frame of the object. cj is the contact invariant term described in [21] that
is constrained to lie in the interval [0,1], with 0 representing an inactive contact and
1 being fully active.
We wish to find a trajectory S = {S1 , S2 , ..., SNkeyf rames } such that
S = argmin Σt Σi wi ∗ Li (t) (2)
S
s.t. cj ∈ [0, 1] f or 0 ≤ t ≤ T (3)
where each cost Li is in the set {Lphysics , Lf orceReg , Lf rictionCone , Ltask , Lci object ,
Lf loatingContactAccel , LobjectAccelReg , LangularAccelReg }, which we detail below.
• Physics terms:
where Iobject is the moment of inertia of the object in its own local frame, ω
is angular velocity, and m is the object mass. The Lphysics term is respon-
sible for ensuring that the forces acting on the object impart the necessary
accelerations to move the object to its destination.
X
Lf orceReg (t) = ||ci (t)fi ||2 (7)
i
X
Lf rictionCone (t) = ci ∗exp(α(||fi,local −n∗(fi ·ni )||−µfi ·ni )) (8)
i
where k is the set of keyframes for which we define object goal positions
posk and orientations ok . The function dist(q1 ,q2 ) refers to the quaternion
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
distance formula, which is essentially the angle required to rotate from one
frame of reference to the other. This particular task objective dictates a set
of objective poses (position and orientation) that our object is required to
meet. Other task objectives can be specified depending on the behavior we
want to see from our system: for example, we can also specify goals such as
tracing out a desired path with an end effector point on the manipulated
object.
• Contact Invariant Costs:
X
Lci object (t) = ci ||rproj − ri ||2 (10)
i
where rproj is the projection (in local coordinates) of the contact point ri
onto the object
eobject (i, t) = ri,proj object (t) − ri (t) (11)
The Lci object cost dictates that the contact points lie on the object surface.
• Additional regularization terms:
X
Lf loatingContactAccel (t) = ||r̈i (t)||2 (12)
i
X
LobjectAccelReg (t) = ẍ2 (13)
i
X
LangularAccelReg (t) = ((ω × (Iworld ω) + Iworld ω̇)/tstep )2 (14)
i
where L, A, and B respectively represent the finger segment lengths, joint axis
orientations, and positioning of fingers on the base/palm of the hand and Li are
the costs in the set {LeeT arget , LcontactDistSurf ace , Lcollision ,
Lf ingerLengthRegularization , Lf ingerM inLength , LjacN ull ,
Ltorque , Lf ingerP ositions , Lf ingerAcceleration , LjointLimits }. To discourage slipping on
the fingertips, we restrict contact points p to remain fixed in the fingertip’s local
frame when that contact is active. The term ”fingertip” used throughout this paper
refers to the surface of the last segment on a given finger, not the actual tip of that
finger segment. Our contact points are therefore able to lie anywhere on the surface
of these finger segments.
X
LeeT arget (k) = ci ∗ ||pi − ptarget ||2 (17)
i
X
LcontactDistSurf ace (k) = ||pproj − pi ||2 (18)
i
X
Lcollision (k) = g(pen(bodyi , bodyj )) (19)
i,j∈bodies
X
Lf ingerLengthRegularization = (li )2 (20)
i
X
Lf ingerM inLengthCost = g(lmin − li ) (21)
i
where i ranges over all the capsules present in the hand, li denotes the
length of the principle axis of capsule i, and g denotes the piecewise cubic
spline defined above. These two costs are meant to keep the finger lengths
within a reasonable range of values.
• Controllability related costs:
We require that our mechanisms be able to actively supply the necessary
forces needed to accomplish the target motion. This is done through two
terms: one to penalize the component of the applied force that lies along
the null space of our mechanism’s Jacobian (requiring our mechanism to
actively supply the necessary force) and another to regularize the torque
applied at the joints (encouraging efficient mechanisms).
X sX
LjacN ull = ci ∗ (f · ek )2 (22)
i k
2
We can decompose this into F = T × rperp /krperp ~ k + k ∗ rperp where
rperp = r − (r · a) ∗ a is the component of r perpendicular to the unit
vector a aligned with the rotation axis of the joint in question. In the
above equation, k is a constant, and k ∗ rperp represents the passive force
applied to this joint: setting k = 0, we have F = X ∗ α where X is the
2
matrix consisting of column vectors T × rperp /krperp
~ k concatenated for
each joint and α is the vector of torque magnitudes actively applied at the
joints. Then α~ = (X T X + λ2 I)−1 XT F is the singularity robust psuedo-
inverse [2] solution with lambda being a small constant (λ = .001). Note
that this torque penalty does not take into account the torque required to
compensate for gravity, nor does it account for a hard maximum on the
allowed torque to be supplied by a given motor (although this could be
added if necessary).
• Additional costs:
X
Lf ingerP ositions = ||projbase (bi ) − bi ||)2 (24)
i
where i ranges over all the bases of the fingers and we find the closest pro-
jected point onto the base. This term ensures that our fingers are attached
to the surface of the base and can be applied to a variety of base shapes
as long as a smooth projection formula exists for the surface. In this work
we limit ourselves exclusively to circular bases although this can be readily
extended.
X
Lf ingerAcceleration (k) = (1 − ci ) ∗ ẍi 2 (25)
i
where j runs over our set of joints. The terms jmax and jmin are constant
joint limits set to π/2 and −π/2 respectively and g is our piecewise cubic
spline introduced earlier for smooth interpolation.
After optimizing each finger independently for multiple trials, we enter a recom-
bination step in which we combine the top performing fingers into a complete hand
design. Upon recombination, we must re-optimize our hand due to the fact that we
may incur self-collision among the recombined fingers (since they were optimized
independently, their motions can easily overlap). The first recombination trial al-
ways takes the top performing fingers from each set of fingers meant to track the
end effector points. Additional recombination trials randomly select fingers from
each set according to a weighting that is inversely proportional to their combined
LeeT arget and LjacN ull scores (so that fingers with lower costs have higher chances
of being selected). We then take our best performing hand, and if the combined
LeeT arget and LjacN ull scores for each finger fall below our threshold we return this
design as our constructed hand. Otherwise, we add an additional joint to each of
the fingers with scores still above this threshold and repeat the loop again until
either that finger hits the maximum number of joints allowed per finger or it meets
our objective criteria.
X
Lci f inger (t) = ci ||rproj − ri ||2 (27)
i
where rproj is the projection (in world coordinates) of the contact point ri
(world coordinates) onto the finger
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
X
Lci f inger slippage (t) = ||ci fi ||2 ∗||(ėf inger (i, t))||2 (28)
i
X
Lf rictionConeHand (t) = ci ∗ exp(α(||fi
i
(30)
− n ∗ (fi · ni )||−µfi · ni ))
where n is the surface normal to the fingertip (world frame), µ is the coef-
ficient of friction, and α is a sharpening factor for the exponent
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
poses) is capable of reliably rotating a 4 inch Styrofoam ball from a variety of initial
palm orientations. This motion involves a significant amount of rolling between the
fingertips and the object, which is made possible by its unique design.
(a) (b)
(c) (d)
(e)
Fig. 5: In this example we combine the sphere rotation motion with the rotate and
bow out motion from earlier. (a) shows the result of our multiobjective floating
optimization with the coupling terms enabled as well as the overlaid contact tra-
jectories. (b) demonstrates the same optimization with the coupling terms removed
(initial conditions were kept the same as in (a)), resulting in dissimilar sets of con-
tact trajectories. (c) shows the results of the coupled trajectories at the end of the
”whole hand” optimization. The resulting hand that is capable of both motions
is nearly identical to our earlier single objective example for sphere rotation. (d)
demonstrates the best scoring proposed hand design from the second level of the
synthesis step for the trajectories in (b) after passing through the ”whole hand”
optimization: this design is physically infeasible since 22% of the magnitude of the
total force applied by the fingers lies in the Jacobian null space. (e) shows the next
level synthesis design for the uncoupled trajectories after passing through the fi-
nal optimization step. This design is physically feasible according to our objective
function, however it is clearly an awkward and brittle mechanism.
objective t∈{T1 ,...,Tf } i∈M j∈M |i6=j (ai,imi (t) − aj,imj (t) )2 where imi (t) denotes
P P P
λi,j,1 , λi,j,2 , λi,j,3 as well as normalized eigenvalues λi,j,1 , λi,j,2 , λi,j,3 where we divide
by the sum of the eigenvalues for the trajectory in question. Now given a trajectory
grouping {g1 , ..., gm } where gi denotes the mapping from trajectories in motion 1
to motion i, we compute the terms:
P P P
• Lvariance = i j k λi,j,k
• Lsimilarity =
)2
P P P P P
λ ·λ (v ·v
Ti gj
Pgk P m Pn j,gj (Ti ),m k,gk (Ti ),n2 j,gj (Ti ),m k,gk (Ti ),n
• Lmean = Ti gj gk (aj,gj (Ti ) − ak,gk (Ti ) )
where gk (Ti ) denotes the mapping from trajectory i in motion 1 to its corresponding
trajectory in motion k under our trajectory grouping g. These three additional
optimization terms are added to the linear combination objective function used
for our floating contact optimization, thus our total objective is the sum of the
individual floating objectives plus the coupling terms. Lsimilarity encourages contact
trajectories to take the same shape and is optimal when each trajectory lies along
the same principle component, while Lvariance encourages contact points to remain
close to their mean if possible, and Lmean encourages contacts to be centered in the
same region relative to the palm.
Due to the fact that our coupling terms tend to pull contacts away from the
object to make trajectories more similar, our coupling term can end up making
motions more brittle. To prevent this, we need to add in a measure for robustness
of our motions. One way to do this is to calculate a different set of forces (keeping
contact locations the same) under an additional scenario in which a particular
perturbing force is applied to the object throughout its motion. Though we have
successfully experimented with this approach, it does require that we manually
specify sets of perturbing forces for each motion since no single set of perturbing
forces works in all cases.
Since we want to require as little user input as possible, we instead introduce
an additional contact-wise perturbing force objective and an additional set of op-
timization variables to determine the applied forces in each additional perturbing
scenario. We iterate through each contact point (each of these is considered a dif-
ferent perturbing force scenario) and apply a small perturbing force in the same
direction as the contact force at that point in the unperturbed case: now we re-
calculate the applied force at each of the other contact points (which are included
as additional optimization variables) in order to balance this disturbing force such
that our net force and torque on the object remains unchanged. If we have a total
of N contacts, then we add 3 ∗ (N − 1) additional optimization variables per contact
per keyframe to give us our resulting contact forces for a total additional 3N (N − 1)
variables per keyframe. For each of the N new sets of forces acting on the object,
we calculate Lf rictionCone and Lphysics (equations 4 and 8) and add them to our
objective with the same weighting as in the unperturbed case and normalize the
sum by N + 1. The point-wise perturbing forces encourage placement of opposing
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
(a) (b)
(c) (d)
(e) (f)
contacts to make motions more robust and the Lphysics and Lf rictionCone calcu-
lated for these perturbing cases encourage contacts to remain active via the contact
invariant weighting ci .
Figure 7 demonstrates the ability of our coupling terms to reduce different trajec-
tories to similar trajectories. In this example, we take five different physically valid
floating motions each created from a separate initial contact seed for the sphere
rotation task. Running these combined motions through our multi-objective float-
ing optimization causes similar contacts between motions to converge to the same
trajectory. This demonstrates that the coupling terms have the potential to remove
unnecessary complexity from the floating contact optimization, thereby simplifying
the synthesis optimization problem.
Fig. 7: (a) We illustrate five different valid floating motions that are capable of
executing the sphere rotation example from earlier. (b) We see the overlaid inde-
pendent trajectories, where contacts from seperate motions have been matched up
on a nearest neighbors criteria (shown with the same color). This is equivalent to
a multi-objective floating contact result in which the trajectory coupling terms in-
troduced in this section are disabled. (c) This is the set of trajectories produced
by the multi-objective optimization with coupling terms enabled. Since the desired
motions are equivalent in this scenario, the contact trajectories for each random
seed end up converging to the same set of trajectories to minimize the coupling
score.
of these terms. While terms such as Ltask and Lphysics in our first and third op-
timization steps are obviously necessary for our pipeline to produce meaningful
physically feasible designs and motions, the effects of several of our optimization
terms are not quite as obvious. Due to the large number of terms in our optimiza-
tion pipeline, we will restrict this discussion to only the non-trivial optimization
terms with non-obvious utility and/or interesting behavior. Figures for each of the
examples discussed in this section are shown in Appendix B.
In the preceding section, we established the need for our coupling terms in
Figure 5. As mentioned earlier, the perturbing forces heuristic helps to give us more
robust motions by counteracting the tendency of our coupling terms to lift contacts
unnecessarily: we present an example of this in Figure 8. In the case where we do
not include perturbing forces, some contacts become inactive during the floating
optimization step. Since contacts are binarized after the floating step, it rare for
the ”whole hand” optimization to re-establish inactive contacts unless they are
absolutely necessary.
The other non-trivial terms we would like to highlight are the Jacobian null
space penalty (equation 22), the friction cone with respect to the hand (30), applied
torque regularization (23), and the contact slippage constraints (28 and 29).
Figure 9 shows that if we remove the Jacobian null space term, our optimization
shows no regard for whether or not the hand can actually provide required forces
for the motion. Figure 10 shows the need for the Lf rictionConeHand term in cases
where minor collision occurs between rigid bodies. If contacting rigid bodies were
always perfectly tangent, Lf rictionConeHand would just duplicate Lf rictionCone , but
this can not be guaranteed since we penalize collision as a soft cost. Figure 12 shows
a case in which the bottom contact point in a capsule translation motion teleports
on the finger due to the lack of a large enough contact surface. Increasing our slip-
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
page penalty coefficients causes our finger to change its configuration to provide a
larger surface for the contact to realistically slip on (note that the weight change
is unique to this example for the purposes of demonstration). The torque regular-
ization LtorqueReg term helps the pipeline generate mechanisms that can efficiently
accomplish the task. Figure 11 demonstrates the ability of our optimization to build
mechanisms that require as little joint torque as possible for actuation.
20 REFERENCES
Future work should also improve upon the way we measure and optimize for
robust motions. Although we have observed that sets of manually specified per-
turbing forces can encourage robustness, this solution is not general enough. This
led us to develop our point-wise perturbing force heuristic introduced in Section 5.
This heuristic encourages robust contact placement, however it is not a perfect so-
lution either since it can add unnecessary constraints on contact placement. While
the heuristic is necessary for multi-objective hands to counter the negative effects
of our coupling terms, we do not strictly need it and therefore do not include it in
our single objective examples. Our heuristic tends to make contact points line up
such that they oppose one another, however this can be too restrictive for some of
our more complex single objective motions like our pen drawing motions.
References
[1] Ian M Bullock and Aaron M Dollar. “Classifying human manipulation behavior”. In:
Rehabilitation Robotics (ICORR), 2011 IEEE International Conference on. IEEE.
2011, pp. 1–6.
[2] Samuel R Buss. “Introduction to inverse kinematics with jacobian transpose, pseu-
doinverse and damped least squares methods”. In: IEEE Journal of Robotics and
Automation 17.1-19 (2004), p. 16.
[3] Marco Ceccarelli, Giuseppe Carbone, and Erika Ottaviano. “An optimization prob-
lem approach for designing both serial and parallel manipulators”. In: Proc. of
MUSME 2005, the Int. Sym. on Multibody Systems and Mechatronics. 2005, pp. 6–9.
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
REFERENCES 21
[4] Marco Ceccarelli and Chiara Lanni. “A multi-objective optimum design of general 3R
manipulators for prescribed workspace limits”. In: Mechanism and Machine Theory
39.2 (2004), pp. 119–132.
[5] Henrik I Christensen et al. “A roadmap for us robotics: from internet to robotics”.
In: Computing Community Consortium (2009).
[6] J-F Collard, Paul Fisette, and Pierre Duysinx. “Contribution to the optimization of
closed-loop multibody systems: Application to parallel manipulators”. In: Multibody
System Dynamics 13.1 (2005), pp. 69–84.
[7] Raphael Deimel and Oliver Brock. “A novel type of compliant and underactuated
robotic hand for dexterous grasping”. In: The International Journal of Robotics
Research 35.1-3 (2016), pp. 161–185.
[8] Aaron M Dollar and Robert D Howe. “A robust compliant grasper via shape depo-
sition manufacturing”. In: IEEE/ASME transactions on mechatronics 11.2 (2006),
pp. 154–161.
[9] Aaron M Dollar and Robert D Howe. “Simple, robust autonomous grasping in un-
structured environments”. In: Robotics and Automation, 2007 IEEE International
Conference on. IEEE. 2007, pp. 4693–4700.
[10] Aaron M Dollar and Robert D Howe. “Towards grasping in unstructured environ-
ments: Grasper compliance and configuration optimization”. In: Advanced Robotics
19.5 (2005), pp. 523–543.
[11] F Sebastian Grassia. “Practical parameterization of rotations using the exponential
map”. In: Journal of graphics tools 3.3 (1998), pp. 29–48.
[12] Christopher Hazard, Nancy Pollard, and Stelian Coros. “Automated Design of Ma-
nipulators for In-Hand Tasks”. In: Nov. 2018, pp. 1–8. doi: 10.1109/HUMANOIDS.
2018.8624932.
[13] John M Hollerbach. Workshop on the Design and Control of Dexterous Hands. Tech.
rep. MASSACHUSETTS INST OF TECH CAMBRIDGE ARTIFICIAL INTELLI-
GENCE LAB, 1982.
[14] C Karen Liu. “Dextrous manipulation from a grasping pose”. In: ACM Transactions
on Graphics (TOG). Vol. 28. 3. ACM. 2009, p. 59.
[15] C Karen Liu. “Synthesis of interactive hand manipulation”. In: Proceedings of the
2008 ACM SIGGRAPH/Eurographics Symposium on Computer Animation. Euro-
graphics Association. 2008, pp. 163–171.
[16] Dong C Liu and Jorge Nocedal. “On the limited memory BFGS method for large
scale optimization”. In: Mathematical programming 45.1 (1989), pp. 503–528.
[17] Hong Liu et al. “Multisensory five-finger dexterous hand: The DLR/HIT Hand II”.
In: Intelligent Robots and Systems, 2008. IROS 2008. IEEE/RSJ International Con-
ference on. IEEE. 2008, pp. 3692–3697.
[18] CS Lovchik and Myron A Diftler. “The robonaut hand: A dexterous robot hand for
space”. In: Robotics and Automation, 1999. Proceedings. 1999 IEEE International
Conference on. Vol. 2. IEEE. 1999, pp. 907–912.
[19] Raymond R Ma and Aaron M Dollar. “On dexterity and dexterous manipulation”.
In: Advanced Robotics (ICAR), 2011 15th International Conference on. IEEE. 2011,
pp. 1–7.
[20] Raymond R. Ma, Lael Odhner, and Aaron M. Dollar. “A modular, open-source 3D
printed underactuated hand”. In: 2013 IEEE International Conference on Robotics
and Automation (2013), pp. 2737–2743.
[21] Igor Mordatch, Zoran Popović, and Emanuel Todorov. “Contact-invariant optimiza-
tion for hand manipulation”. In: Proceedings of the ACM SIGGRAPH/Eurographics
symposium on computer animation. Eurographics Association. 2012, pp. 137–144.
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
22 REFERENCES
[22] Igor Mordatch, Emanuel Todorov, and Zoran Popović. “Discovery of complex be-
haviors through contact-invariant optimization”. In: ACM Transactions on Graphics
(TOG) 31.4 (2012), p. 43.
[23] Tetsuya Mouri et al. “Anthropomorphic robot hand: Gifu hand III”. In: Proc. Int.
Conf. ICCAS. 2002, pp. 1288–1293.
[24] Yuzuko C Nakamura et al. “The complexities of grasping in the wild”. In: Humanoid
Robotics (Humanoids), 2017 IEEE-RAS 17th International Conference on. IEEE.
2017, pp. 233–240.
[25] Allison M Okamura, Niels Smaby, and Mark R Cutkosky. “An overview of dexterous
manipulation”. In: Robotics and Automation, 2000. Proceedings. ICRA’00. IEEE
International Conference on. Vol. 1. IEEE. 2000, pp. 255–262.
[26] Michael Posa and Russ Tedrake. “Direct trajectory optimization of rigid body
dynamical systems through contact”. In: Algorithmic foundations of robotics X.
Springer, 2013, pp. 527–542.
[27] Frank Rothling et al. “Platform portable anthropomorphic grasping with the biele-
feld 20-dof shadow and 9-dof tum hand”. In: Intelligent Robots and Systems, 2007.
IROS 2007. IEEE/RSJ International Conference on. IEEE. 2007, pp. 2951–2956.
[28] Filippo Sanfilippo et al. “Efficient modular grasping: an iterative approach”. In:
Proc. IEEE Int. Conf. on Biomedical Robotics and Biomechatronics,(Rome, Italy).
2012, pp. 1281–1286.
[29] Bernhard Thomaszewski et al. “Computational design of linkage-based characters”.
In: ACM Transactions on Graphics (TOG) 33.4 (2014), p. 64.
[30] P Wright, J Demmel, and M Nagurka. “The dexterity of manufacturing hands”. In:
Robotics Research, DSC 14 (1989), pp. 157–163.
[31] Yuting Ye and C Karen Liu. “Synthesis of detailed hand manipulations using contact
sampling”. In: ACM Transactions on Graphics (TOG) 31.4 (2012), p. 41.
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
REFERENCES 23
24 REFERENCES
REFERENCES 25
keeping the same initial contacts with respect to the objects local frame (i.e. initial
contacts are just translated and rotated with the object). This initialization gives
zero Ltask cost on the first step of the optimization, prompting the optimizer to
focus on solving for the forces and contact positions needed to satisfy the Lphysics
term. The result is that we tend to see an optimization procedure in which Ltask
remains small while the Lphysics term dominates the optimization, eventually lead-
ing to a solution with only slight deviation from the original task objective and low
physics penalty.
26 REFERENCES
Table 4: Table of weights for the whole hand optimization: weights for terms not
mentioned above are kept the same as in the floating contact optimization.
REFERENCES 27
Fig. 8: (a) shows the multiobjective sphere rotation, capsule rotation, and translate
motion presented earlier after going through our normal pipeline. In (b), we run
the same example through but without using perturbing forces in our multiobjec-
tive floating optimization. As a result, contacts that are not strictly necessary are
lifted in the floating optimization to increase the coupling similarity, resulting in
unnecessarily brittle motions.
Fig. 9: The above example shows one of the motions comprising the capsule trans-
lation multi-objective example presented in 6 with the Jacobian null space penalty
LjacN ull removed from the pipeline. With this constraint removed, the synthesis
step is content with finding a hand capable of tracking the end effector trajectories
from our floating step for each component motion. As a result, the ”whole hand”
optimization (from which LjacN ull is also removed) produces a motion that allows
the object to unrealistically float up and down with no way for the hand to actuate
the motion.
Fig. 10: As figures (a) and (b) show (on our rotate and bow out single objective
motion), with Lf rictionConeHand removed from our whole hand optimization, even
slight collision between the fingertip and object can cause very unrealistic contact
forces with respect to the fingertip’s frame. Figure (c) shows the same optimization
with Lf rictionConeHand included, indicating that it prevents this type of inconsis-
tency from occurring.
October 31, 2019 15:33 WSPC/INSTRUCTION FILE output
28 REFERENCES
Fig. 11: In (a), we have a scenario in which a single finger in the synthesis stage
must exert an upward force originating from the center of the fingertip. In this
example, we disabled all parameters except joint axis directions and provided a
manually constructed initial design. In (b), we fit our hand to a stationary contact
trajectory: the optimization aligns both axes perpendicular to the exerted force to
balance the torque load on the joints. In (c) and (d) we fit our finger to a motion in
the plane perpendicular to the force, requiring one joint for actuation and one for
movement. In (c) we set our distal joint to be slightly off axis from the direction of
the exerted force while the first joint is set parallel to the force: this configuration
incurs a very high torque penalty and no Jacobian null space penalty. (d) shows
the global optimum design that our optimization finds, in which the distal axis is
perpendicular to the force while the base joint is parallel to it, allowing the hand to
actuate with minimal torque and match the desired trajectory. If LtorqueReg were
excluded from the synthesis step, (c) and (d) would have identical objective values.
(a)
(b)
REFERENCES 29
Fig. 13: In this example, we optimized a hand for the task of rolling capsules of
various sizes around their principle axes. Since we are requiring a single hand design
to accomplish these motions, this is only possible if the pipeline plans for or learns
the rolling behavior. Our pipeline is able to plan reasonable contact trajectories, but
the ”whole hand” optimization is unable to adjust the contact positions to generate
the necessary rolling motion since the mechanism is ill-suited for this type of motion.
This is due to the fact that our mechanism was constructed with the premise that a
single contact point on the fingertip should be responsible for tracking each contact
trajectory. We refer the reader to our accompanying video for the complete motions.
Fig. 14: (a) displays the floating contacts for the acceptable sphere rotation, capsule
rotation and translation motion example, while (b) displays a different version of
this motion obtained via a different set of initial contact points. The contacts in (a)
do not cause the attached fingers to self-collide, while it is impossible to construct
fingers to follow the trajectories in (b) without self collision. (c) displays the non-
colliding example, while (d) displays the colliding example after the ”whole hand”
optimization stage. The ”whole hand” planner was unable to find an alternate
solution in (d) with the mechanism given to it that did not involve finger collision,
and as a result the solution it found involves the fingers passing through one another.