next up previous contents

Subsections


8 Robot Arm

Minimize the time taken for a robot arm to travel between two points.

Formulation

This problem originated in the thesis of Monika Mössner-Beigel (Heidelberg University). In her formulation the arm of the robot is a rigid bar of length \( L \) that protrudes a distance \( \rho \) from the origin to the gripping end and sticks out a distance \(
L-\rho \) in the opposite direction. If the pivot point of the arm is the origin of a spherical coordinate system, then the problem can be phrased in terms of the length $ \rho $ of the arm from the pivot, the horizontal and vertical angles $ ( \theta , \phi ) $ from the horizontal plane, the controls $ ( u_{\rho}, u_{\theta}, u _{\phi} )
$, and the final time $ t_f $. Bounds on the length and angles are

\begin{displaymath}
\rho (t) \in [0, L ] , \qquad \vert \theta (t) \vert \le \pi , \qquad
0 \le \phi (t) \le \pi ,
\end{displaymath}

and for the controls,

\begin{displaymath}
\vert u_{\rho} \vert \le 1 , \qquad
\vert u_{\theta} \vert \le 1, \qquad
\vert u_{\phi} \vert \le 1 .
\end{displaymath}

The equations of motion for the robot arm are


\begin{displaymath}
L {\rho'' } = u_{\rho } , \qquad
I_{\theta } {\theta''} = u_{\theta }, \qquad
I_{\phi } {\phi'' } = u_{\phi } ,
\end{displaymath} (5)

where \( I \) is the moment of inertia, defined by

\begin{displaymath}
I_{\theta } = \frac{((L-\rho )^{3}+\rho ^{3})}{3}\sin (\phi )^{2}, \qquad
I_{\phi } = \frac{((L-\rho )^{3}+\rho ^{3})}{3} .
\end{displaymath}

The boundary conditions are

\begin{displaymath}
\rho (0) = \rho (t_{f}) = 4.5 , \qquad
\theta (0) = 0 , \ \t...
...2\pi }{3} , \qquad
\phi (0) = \phi (t_{f}) = \frac{\pi }{4} ,
\end{displaymath}


\begin{displaymath}
{\rho'}(0) = {\theta'}(0) = {\phi'}(0) =
{\rho'}(t_{f}) = {\theta'}(t_{f}) = {\phi'}(t_{f}) = 0.
\end{displaymath}

This model ignores the fact that the spherical coordinate reference frame is a noninertial frame and should have terms for Coriolis and centrifugal forces.

Implementation

In the implementation of Vanderbei [22] the controls $ u $ are eliminated by substitution, and thus the equality constraints in (8.1) become the inequalities

\begin{displaymath}
\vert L {\rho '' } \vert \le 1, \qquad
\vert I_{\theta } {\t...
...'} \vert \le 1, \qquad
\vert I_{\phi } {\phi ''} \vert \le 1 .
\end{displaymath}

In this implementation is expressed in terms of a first-order system with the additional variables $ \rho ' $, $ \theta ' $, and $ \phi ' $. Discretization is done with a uniform time step and the trapezoidal rule over \( n_h \) intervals. Data for this problem is shown in Table 8.1.



Table 8.1: Robot arm problem data
Variables \( 9 (n_h+1) + 1\)
Constraints \( 6 n_h \)
Bounds \( 6 (n_h+1) \)
Linear equality constraints 0
Linear inequality constraints 0
Nonlinear equality constraints \( 6 n_h \)
Nonlinear inequality constraints 0
Nonzeros in \( \nabla ^{2}f(x) \) 0
Nonzeros in \( c'(x) \) \( 36 n_h \)

Performance

Results for the AMPL implementation appear in Table 8.2. All solvers were given the same initial values. The initial values for $ \rho $ and $ \phi $ were set to the functions $ \rho \equiv 4.5 $ and $ \phi \equiv \pi /4 $ evaluated at the grid points. Similarly, initial values for $ \theta $ were set to the discrete version of the parabola

\begin{displaymath}
\theta (t ) = \frac{2 \pi } {3} \left ( \frac {t}{t_f} \right ) ^ 2 ,
\end{displaymath}

which matches three of the boundary conditions. The initial values for all the controls were set to zero, and $ t_f = 1 $ initially.



Table 8.2: Performance on robotic arm problem
Solver $n_h=50$ $n_h=100$ $n_h=200$ $n_h=400$
LANCELOT 0.47 s 0.53 s 1.2 s 2.59 s
$f$ 0.00000e+00$\dagger$ -2.77555e-17$\dagger$ -2.77555e-17$\dagger$ -2.77555e-17$\dagger$
$c$ violation 4.18880e-02$\dagger$ 2.09440e-02$\dagger$ 1.04720e-02$\dagger$ 5.23600e-03$\dagger$
iterations 5 3 3 3
LOQO 1.03 s 2.77 s $\ddagger$ $\ddagger$
$f$ 9.14687e+00 9.14267e+00 $\ddagger$ $\ddagger$
$c$ violation 2.4e-10 4.7e-11 $\ddagger$ $\ddagger$
iterations 24 30 $\ddagger$ $\ddagger$
MINOS 2.82 s 9.89 s 37.96 s 161.18 s
$f$ 9.14687e+00 9.14267e+00 9.14138e+00 9.14108e+00
$c$ violation 2.0e-13 1.0e-10 2.7e-12 5.7e-13
iterations 9 13 22 37
SNOPT 10.22 s 30.7 s 317.52 s 2671.63 s
$f$ 9.14687e+00 1.92751e+01$\dagger$ 9.14142e+00 9.14101e+00
$c$ violation 1.9e-10 3.4e-04$\dagger$ 1.4e-10 2.1e-10
iterations 24 9 31 29
$\dagger$ Errors or warnings. $\ddagger$ Timed out.

LANCELOT reports that it could not find a feasible solution for any of the versions we try for this implementation. For $n_h = 100$, SNOPT encounters difficulties, which it describes as an error evaluating nonlinear expressions.

Figure 8.1 shows the variables $ \rho $, $ \theta $, $ \phi $ for the robot arm as a function of time. We also show in Figure 8.2 the controls $ u_{\rho} $, $ u_{\theta} $, $ u _{\phi} $ as a function of time. Note that the controls for the robot arm are bang-bang. Also note that the functions $ \rho $, $ \theta $, $ \phi $ for the robot arm are continuously differentiable, but since the second derivatives are directly proportional to the controls, the second derivatives are piecewise continuous.

Figure 8.1: Variables $ \rho $, $ \theta $, $ \phi $ for the robot arm as a function of time
\includegraphics[width=1.9in]{ps/robot_rho.eps} \includegraphics[width=1.9in]{ps/robot_theta.eps} \includegraphics[width=1.9in]{ps/robot_phi.eps}

Figure 8.2: Control variables $ u_{\rho} $, $ u_{\theta} $, $ u _{\phi} $ for the robot arm as a function of time
\includegraphics[width=1.9in]{ps/robot-u_rho.eps} \includegraphics[width=1.9in]{ps/robot-u_theta.eps} \includegraphics[width=1.9in]{ps/robot-u_phi.eps}


next up previous contents
Liz Dolan
2001-01-02