Industrial robot

From mintOC
Jump to: navigation, search
Industrial robot
State dimension: 1
Differential states: 2
Continuous control functions: 2
Path constraints: 4
Interior point equalities: 2

The Industrial robot problem focuses on the KUKA LWR IV drawing a pre-defined curve on a white board, which results in a path-following problem. This means that a system should be steered along a given path while there are no constraints regarding the position at a specific time  t > t_0 . This concept arises often where autonomous vehicles or steering of robots are involved. The source for this problem can be found online on arXiv "Implementation of Nonlinear Model Predictive Path-Following Control for an Industrial Robot".

Path-following problems

As the robot should follow a geometric curve but is not constrained as to when it has to be where, a path-following problem arises. The path is given by  \mathcal{P} = \{ y \in \mathcal{R}^n: \theta \in [ \theta_0, \theta_1 ] \mapsto y = p(\theta)\} where “ \theta is called path parameter and  p(\theta) is a parametrization of  \mathcal{P} ”. The path parameter does depend on the time however the exact timing is not known beforehand but rather integrated into the optimization problem by making use of a virtual system.

Virtual system

A virtual system is introduced to take care of the timing of the robot. This is an additional degree of freedom which is used here as an input into an integrator. This additional optimization variable, the virtual input,  v is integrated twice to produce the virtual state  z_1 which is used as the time parameter for the path (i.e.  p(z_1) ).

l(z, v)

The virtual state and input are constrained by the sets  \mathcal{Z} and  \mathcal{V} respectively.


The system for the motions of the robot are given by the function  f :

 f(x) = E^{-1} 
	u - C(x_1,x_2) x_2 - g(x_1) - \tau_F(x_2)\\


 E = diag(I, B(x_1))

where  B, C, E, g, \tau_F are given in the Parameters section.

The objective function  J will be the integral over the so-called cost function  F: \mathbb{R}^{n_u} \times \mathbb{R} \times \mathcal{U} \times \mathcal{V} \mapsto \mathbb{R}_0^{+} , i.e.  J(x(t_k),\bar{e}, \bar{u}, \bar{z}, \bar{v}) = \displaystyle \int_{t_k}^{t_k+T} F(\bar{e}, \bar{z}, \bar{u}, \bar{v}) d \tau where  T \in (\delta, \infty) is the prediction horizon and the function  F is given by  F(e,z,u,v) = || (e,z_1-\theta_1, z_2 - \dot{\theta}_{ref})^T||_Q^2 + ||(u,v)^T||_R^2 with positive semi definite matrix  Q and positive definite matrix  R , which can be found in the original paper cited above.

The path-following is introduced into the problem by optimizing the error  e measuring the deviation of the robot from the path:

 e(x, z) = h(x) - p(z_1)

where  p is the parametrization of  \mathcal{P} as above and  h is the position of the robot given by:

	-\cos(q_1)(d_3 \sin(q_2) + \bar{d}_5 + \sin(q_2-q_3))\\
	-\sin(q_1)(d_3 \sin(q_2) + \bar{d}_5 + \sin(q_2-q_3))\\
	d_1 + d_3 \cos(q_2) + \bar{d}_5 \cos(q_2-q_3)\\ 

where  q = x_1 and  \bar{d}_5 = d_5 + d_{tool} with  d_i, i \in \{ 1,3,5 \}  being the lengths of the links of the robot and  d_{tool} is the length of the pen and tool. These values can be found in the Parameters section as well.


The optimization problem which is solved repetitively is given by

	\displaystyle \min_{\bar{u}, \bar{v}} & J &=& J(x(t_k),\bar{e}, \bar{u}, \bar{z}, \bar{v})  \\[1.5ex]
	& \dot{\bar{x}} & = & f(\bar{x},\bar{u}), \\
	& \dot{\bar{z}} & = & l(\bar{z},\bar{v}),  \\
	& \bar{e} & = & h(\bar{x}) - p(\bar{z}_1),  \\[1ex]
	& \bar{x}(t_k) & = & x(t_k), \\
	& \bar{z}(t_k) & = & z(t_k), \\[1ex]
	& \bar{x} & \in & \mathcal{X}, \\
	& \bar{u} & \in & \mathcal{U}, \\
	& \bar{z} & \in & \mathcal{Z}, \\
	& \bar{v} & \in & \mathcal{V}. \\


The matlab script which implements the implicit formulation for  f , i.e.  F(x) = E \dot{x} - f(x) can be found on Parameters for Industrial Robot.

Robot-specific constants
Symbol Value Unit
 d_1  0.31  m
 d_3  0.40  m
 d_5  0.39  m
 d_{tool}  0.15  m

The Implementation Parameters for the MPFC scheme are as follows.

  •  \mathcal{X} = [-\bar{x}, \bar{x}], \text{ where } \bar{x} = (\bar{q},\bar{q},\bar{q},\bar{\dot{q}},\bar{\dot{q}},\bar{\dot{q}})^T \text{ with } \bar{q} = \infty \text{ rad}, \quad \bar{\dot{q}} = 0.5 \text{ rad/s}
  •  \mathcal{U} = [-\bar{u}, \bar{u}], \text{ where } \bar{u} = (\bar{\tau},\bar{\tau},\bar{\tau})^T \text{ with } \bar{\tau} = 60 \text{ Nm}
  •  \mathcal{Z} = [\underline{z}, \bar{z}], \text{ where } \underline{z} = (0,0)^T, \bar{z} = (1750, \infty)^T
  •  \mathcal{V} = [-10^4, 8 \cdot 10^3]

Reference Solutions

coming soon


There were no citations found in the article.