Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Redundant robots
f: Q R
joint space (dim Q = N)
r may contain the position and/or the orientation of the end-effector or, more in general, be any parameterization of the task (even not in the Cartesian workspace) redundancy is thus a relative concept, i.e., with respect to a given task
2
Robotics 2
dimension M
position in the plane position in 3D space orientation in the plane pointing in 3D space position and orientation in 3D space
a planar robot with N=3 joints is redundant for the task of positioning its E-E in the plane (M=2), but NOT for the task of positioning AND orienting the E-E in the plane (M=3)
2 3 1 2 6
Robotics 2
6R robot mounted on a linear track/rail 6-dof robot used for arc welding tasks
task does not prescribe the final roll angle of the welding gun
manipulator on a mobile base dexterous robot hands team of cooperating (mobile) robots humanoid robots... kinematic redundancy is not the only type
Robotics 2
avoid collision with obstacles (in Cartesian workspace) or kinematic singularities (in joint space) increase manipulability in specified directions stay within the feasible joint ranges uniformly distribute/limit joint velocities and/or accelerations minimize energy consumption or needed motion torques optimize execution time increase dependability with respect to faults ...
all objectives should be quantitatively measurable
Robotics 2
Justin two-arm upper-body humanoid: 43R actuated = two arms (27) +torso (3) 7R lightweight modular manipulator: elastic joints (HD), joint torque sensing, +head (2) +two hands (212), 45 kg weight 13.5 kg weight = payload!!
Robotics 2 6
motion planning in the configuration space, avoiding Cartesian obstacles and using robot redundancy
Robotics 2 7
DIS, Uni Napoli two 6R Comau robots, with one on a linear track (+1P) coordinated 6D motion using the null-space of the robot on the right (N-M=1)
Robotics 2 8
Videos Self-motion
Nakamuras Lab, Uni Tokyo
6R robot with spherical shoulder in compliant tasks for the Cartesian E-E position (N-M=3)
9
6R planar arm moving on a given geometric path for the E-E (N-M=4)
Robotics 2 10
built by Kawada Industries, Inc. for the Humanoid Robotics Project (HRP) sponsored by the Japanese Ministry of Economy, Trade, and Industry
Robotics 2 12
E. Yoshida, C. Esteves, T. Sakaguchi, J.-P. Laumond, and K. Yokoi Smooth collision avoidance: Practical issues in dynamic humanoid motion IEEE Int. Conf. on Intelligent Robotics and Systems, 2006
Robotics 2 13
Disadvantages of redundancy
mechanical (more links, transmissions, ...) more actuators, sensors, ... costs
Robotics 2
14
find q(t) that realizes the task: f(q(t)) = r(t) (at all times t) infinite solutions exist when the robot is redundant
(even for r(t) = r = constant)
N=3>2=M r = constant E-E position
the robot arm may have internal displacements that are unobservable during task execution (e.g., in the E-E motion)
these internal displacements can be chosen so as to improve/ optimize in some way the system behavior
self-motion: an arm reconfiguration in the joint space that does not change/affect the value of the task variables r
15
Robotics 2
Redundancy resolution
Local
Global
t0+T
t0
) d ) H(q,q
(t) q
ON-LINE
q(t),t [t0, t0 + T]
OFF-LINE
quite DIFFICULT (TPBV problems arise)
Robotics 2
16
null-space methods
a term is added to the previous solution so as not to affect the task trajectory execution, i.e., belonging to the null-space (J(q))
3
Robotics 2
17
Jacobian-based methods
= K(q) r q
K=
M
( J(q)) r
example: 1 J if J = [Ja Jb], det(Ja) 0, one such generalized inverse of J is K r = a 0 (actually, this is a stronger right-inverse)
Robotics 2 18
Pseudoinverse
# q = J (q) r
J# always exists, and is the unique matrix satisfying J J# J = J J# J J# = J# (J J#)T = J J# (J# J)T = J# J if J is full (row) rank, J# = JT (J JT)-1 ; else, it is computed numerically using the SVD (Singular Value Decomposition) of J
(pinv of Matlab)
Robotics 2
Weighted pseudoinverse
# q = Jw (q) p
another choice: K = J# w
. large weight Wi small qi (e.g., weights can be chosen proportionally to the inverses of the joint ranges) it is NOT a pseudoinverse (4th relation does not hold ...)
20
Robotics 2
the SVD routine of Matlab applied to J provides two orthonormal matrices UMM and VNN , and a matrix MN of the form
1 =
0 Mx(N-M)
1 2 > 0, +1 = = M = 0
singular values of J
where = rank(J) M, so that their product is J=UT V show that the pseudoinverse of J is always equal to for any rankof J
J# = V T #U
#
show that matrix J w is obtained by solving the constrained linearquadratic (LQ) optimization problem (with W>0) min 1 q 2 r =0 s .t . J(q)q w 2 and that the pseudoinverse is a particular case for W=I
21
Robotics 2
despite joint velocities are kept to a minimum, this is a local property and avalanche phenomena may occur cyclic motions in task space do not map to cyclic motions in joint space after 1 tour
qin
t
qfin qin
( )d q(t ) = qin + K(q)r
Robotics 2
22
Singularity robustness
Damped Least Squares
2
2 1 min q + Jq r q 2 2
T
) = H(q
T 1
= JDLS (q) r = J ( JJ + I) r q
induces a robust behavior when crossing singularities, but in this basic version it gives always a task error (same as in N=M case)
thus, JDLS is not a generalized inverse K choice of a variable damping factor (q)0 , as a function of the minimum singular value of J measure of the singularity distance numerical filtering: introduces damping only in the non-feasible directions of the task, using a modified SVD/pseudoinverse
23
Robotics 2
general solution of J q = r
Null-space methods . .
=Jr + IJ J q 0 q
# #
properties of [I J#J]
more in general
= K1 r + (I K 2 J) q 0 q
Robotics 2
Linear-Quadratic Optimization
generalities
1 T min ( x x 0 ) W ( x x 0 ) = H( x ) x 2
x IR N , W > 0
s.t. J x = y
MxN
(symmetric)
y IR M, (J) = M
Lagrangian
L ( x , ) = H( x ) + T (Jx y )
Robotics 2
M M invertible
25
Linear-Quadratic Optimization
application to robot redundancy resolution
PROBLEM
SOLUTION
1 T 1
) (Jq
) r
J# W
# = J# 0 q r + I J ( W J) q W
the choice q0 = q H(q) differentiable objective function realizes one step of a constrained optimization algorithm
q3 projected gradient Sq
Robotics 2
while executing the time-varying task r(t) the robot tries to increase the value of H(q) q H for a fixed r
q2
q1
27
manipulability
joint range
(minimize the distance from the mid points of the joint ranges)
q0 = - qH(q)
obstacle avoidance
Hobs (q) =
min
a(q) b
Robotics 2
H(q)
q3
- q3 -
q2 q3 q2
q2
the projection matrix (I J#J) has dimension NN, but only rank N-M (if J is full rank M), with some waste of information actual (efficient) evaluation of the solution
= J#r + I J# J q 0 = q 0 + J# (r - Jq 0) q
but the pseudoinverse is needed anyway, and this is computationally intensive
in principle, the complexity of a redundancy resolution method should depend only from the redundancy degree NM a constrained optimization method is available, which is known to be more efficient than the projected gradient (PG) ---at least when the Jacobian has full rank
30
Robotics 2
if (J(q)) = M, there exists a partition of the set of joints (possibly, after a reordering) MM
qa M q = qb N-M
f is nonsingular qa
the N-M independent variables qb are used to optimize the objective function H(q) (reduced via the use of g to a function of qb only) by method the gradient qa = g(r, qb) are then chosen so as to correctly execute the task
31
Robotics 2
H(q) = H(qa,qb) = H(g(r,qb),qb) = H(qb), with r at current value the reduced gradient (w.r.t. qb only, but still keeping the effects of this choice into account) is
q b H' = J Jb
[(
1 a
I qH
( q b H !! )
ALGORITHM
b = q H' q b
a + Jbq b =r Jaq
step in the gradient direction of the reduced (N-M)-dim space satisfaction of the M-dim task constraints
Robotics 2
1 a = J q a (r Jbqb )
32
((
I qH
RG is analytically simpler and numerically faster than PG, but requires the search for a non-singular minor (Ja) of the robot Jacobian . if r = cost & N-M=1 same (unique) direction for q, but RG has automatically a larger optimization step size else, RG and PG provide always different evolutions
Robotics 2
33
Analytic comparison
PPR robot
1 0 s 3 J = = ( Ja 0 1 c 3
q3 q1 q2 RG:
Jb )
q qa = 1 q2
qb = q3
1 + c 1 2 # J = s 3c3 2 1 + s 3
Robotics 2
2 2 3
1 0 s 3 = 0 1 r + q c3 (s 3 0 0 1
1 1 J J 1 a a Jb = r + q Ja Jb 0 I
((
I qH
c3 1) qH
= J#r + I J# J qH PG: q
2s 3c3 1 + 2s 2 3 c3
2s 2 3 1 2 I J# J = s 3c3 2 1 + s 3
2c2 3 c3
sym 1
34
90 i +90
90 qi qi1 +90
G q2 q1
initial configuration
q4
numerical comparison among pseudoinverse (PS), projected gradient (PG), and reduced gradient (RG) methods
Robotics 2 35
Numerical results
joint 1
joint 2
joint 3
joint 4
upper limit
Numerical results
obstacle avoidance
reduced gradient
= J# r pseudoinverse q
fixed obstacle
constrained maximization of
Numerical results
max H(q) = sin (qi+1 qi)
i=1 2
(optimal)
this function is actually NOT the manipulability index, but has the same minima (=0)
r0
fy(q) = y
S N-M
corresponding to some desirable feature for the solution J(q) r f (q) A = = JA (q) q rA = = JA r q M+S y fy (q) Jy (q) N
= K A (q) r A q
39
advantage: better shaping of the inverse kinematic solution disadvantage: algorithmic singularities are introduced when (J) = M (Jy) = S but (JA) < M+S
Robotics 2
Augmented task
example r(t) N = 4, M = 2
fy(q) = q4 = /2
Robotics 2
(S = 1)
Extended Jacobian
(S = N-M)
the scheme is then clearly repeatable when fy(q) = 0 corresponds to the necessary (& sufficient) conditions for constrained optimality of a given objective function H(q), this scheme guarantees that (local) optimality is preserved during task execution in the presence algorithmic singularities, the execution of the original task as well as of the auxiliary tasks is affected by errors
Robotics 2
42
Extended Jacobian
example MACRO-MICRO manipulator r(t) y(t) N = 4, M = 2
= J (q1 , q4 ) q r = Jy (q1 , q2 ) q y
* * JA = * 0
44
Robotics 2
43
Task Priority
= J(q)q has higher priority if the original (primary) task r
= Jy (q)q than the auxiliary (secondary) task y
and then choose v so as to satisfy, if possible, also the secondary (lower priority) task
Jy (q)q = = Jy J#r + Jy (I J# J) v = Jy J# r + y Jy v
the general solution for v takes the usual form
# # v= J# ( y J J r ) + ( I J y y y Jy ) w
44
Task Priority
(continue)
J# y
possibly = 0
Robotics 2
45
Extensions
not taking into account errors in task execution it is convenient to use kinematic control can be extended also to wheeled mobile manipulators ... and of course to walking/standing humanoid robots
46
Robotics 2
= J(q) q r
= J(q) + r q J(q) q
to be chosen
the problem is formally equivalent to the former one, with acceleration in place of velocity commands for instance, in the null-space method
= qH K D q
+ n(q, q ) = B(q) q
NN symmetric inertia matrix, positive definite for all q
= (= ) J(q) q x r J(q) q
M-dimensional acceleration task
input torque vector (provided by the motors) . Coriolis/centrifugal vector c(q,q) + gravity vector g(q)
) = 1 H2 ( q 2
Robotics 2
2 B 2
1 1 T T -1 1 T -2 ) = T B -2 (q) = q q + n (q, q) B (q) q + n (q, q)B (q) n(q, q 2 2 2 minimum torque (squared inverse inertia weighted) norm
48
Dynamic solutions
by applying the general formula of slide #25 for LQ optimization problems, check that the following closed-form expressions are obtained (in the assumption of full rank Jacobian J) minimum torque solution
# - + J(q)B -1(q) n(q, q ) 1 = ( J(q)B -1(q)) r J(q)q
good for short trajectories however, for longer trajectories it leads to torque explosion (whipping effect)
minimum (squared inverse inertia weighted) torque solution - + J(q)B -1(q) n(q, q ) = B(q) J# (q) r J(q)q
2
try the constrained minimization of the (simple) inverse inertia weighted norm of the torque ... you get a solution with a leading JT(q) term: what is its physical interpretation?
49
Robotics 2
Kinematic control
given a desired M-dimensional task rd(t), in order to recover a task error e = rd r due to initial mismatch or due later to
disturbances inherent linearization error in using the Jacobian (first-order motion) discrete-time implementation
we need to close a feedback loop on task execution, by replacing (with diagonal matrix gains K > 0 or KP, KD > 0)
r r
d + K (rd r ) r
d + K D (r d r ) + K P (rd r ) r
Robotics 2
50
Mobile manipulators
combine coordinates qb of the base + qm of the manipulator use differential map from available commands ub on the mobile base + um on the manipulator to task output velocity r = f(q)
kinematic (task output, e.g., model of the the E-E pose) wheeled base (with nonholonomic b = G(qb ) ub constraints) q N
qm
qb q = IR qm
qb
m = um q
Nu N
51
Robotics 2
ub u = IR Nu um
= f (q) q b + f (q) q m = Jb (q) q b + Jm (q) q m r qb qm ub = Jb (q) G(qb )ub + Jm (q) um = ( Jb (q) G(qb ) Jm (q)) um = JNMM (q) u Nonholonomic Mobile Manipulator (NMM)
Jacobian (MNu)
Robotics 2
most previous results follow by just replacing . (redundancy if Nu-M > 0) J JNMM qu
namely, the only available commands
52
Robotics 2
issues in acceleration control with steering wheels velocity commands of steering wheels do not affect the task velocity solution: at the task acceleration level, use mixed commands here: joint (3) and base linear (1) accelerations + steering velocity (1)
54
all subtasks are locally expressed by linear equalities or inequalities (possibly relaxed when needed) IEEE Int. Conf. on Robotics and Automation, 2009
Robotics 2 55