Difference between revisions of "Industrial robot"

From mintOC
Jump to: navigation, search
(Created page with "{{Dimensions |nd = 1 |nx = 2 |nu = 2 |nc = 4 |nre = 2 }}<!-- Do not insert line break here or Dimensions Box moves up in the layou...")
 
(Parameters)
 
(12 intermediate revisions by 2 users not shown)
Line 7: Line 7:
 
}}<!-- Do not insert line break here or Dimensions Box moves up in the layout...
 
}}<!-- Do not insert line break here or Dimensions Box moves up in the layout...
 
 
-->The Industrial robot problem focuses on the KUKA LWR IV robot 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 <math> t > t_0 </math>. This concept arises often where autonomous vehicles or steering of robots are involved. The source for this model can be found online on [https://arxiv.org/abs/1506.09084 arXiv "Implementation of Nonlinear Model Predictive Path-Following Control for an Industrial Robot"].
+
-->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 <math> t > t_0 </math>. This concept arises often where autonomous vehicles or steering of robots are involved. The source for this problem can be found online on [https://arxiv.org/abs/1506.09084 arXiv "Implementation of Nonlinear Model Predictive Path-Following Control for an Industrial Robot"].
 
 
 
 
Line 19: Line 19:
 
== 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 <math> v </math> is integrated twice to produce <math> z </math> which is used as the time parameter for the path (i.e. <math> p(z) </math>).
+
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, <math> v </math> is integrated twice to produce the virtual state <math> z_1 </math> which is used as the time parameter for the path (i.e. <math> p(z_1) </math>).
 
 
 
<math> \left(
 
<math> \left(
Line 40: Line 40:
 
</math>
 
</math>
  
 +
The virtual state and input are constrained by the sets <math> \mathcal{Z} </math> and <math> \mathcal{V} </math> respectively.
  
 
== Model ==
 
== Model ==
Line 82: Line 83:
 
</math>
 
</math>
  
where <math> q = x_1 </math> and <math> \bar{d}_5 = d_5 + d_{tool} </math> with <math> d_i, i \in \{ 1,3,5 \}  </math> being the lengths of the link of the robot and <math> d_{tool} </math> is the length of the pen and tool. These values can be found in the Parameters section as well.
+
where <math> q = x_1 </math> and <math> \bar{d}_5 = d_5 + d_{tool} </math> with <math> d_i, i \in \{ 1,3,5 \}  </math> being the lengths of the links of the robot and <math> d_{tool} </math> is the length of the pen and tool. These values can be found in the Parameters section as well.
+
 
+
 
== OCP ==
 
== OCP ==
 
The optimization problem which is solved repetitively is given by
 
The optimization problem which is solved repetitively is given by
Line 130: Line 130:
 
|-
 
|-
 
|<math> d_{tool} </math>
 
|<math> d_{tool} </math>
|<math> 0.08</math>
+
|<math> 0.15</math>
 
         | <math> m </math>
 
         | <math> m </math>
 
|}
 
|}
 +
 +
The Implementation Parameters for the MPFC scheme are as follows.
 +
 +
* <math> \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} </math>
 +
* <math> \mathcal{U} = [-\bar{u}, \bar{u}], \text{ where } \bar{u} = (\bar{\tau},\bar{\tau},\bar{\tau})^T \text{ with } \bar{\tau} = 60 \text{ Nm} </math>
 +
* <math> \mathcal{Z} = [\underline{z}, \bar{z}], \text{ where } \underline{z} = (0,0)^T, \bar{z} = (1750, \infty)^T </math>
 +
* <math> \mathcal{V} = [-10^4, 8 \cdot 10^3] </math>
  
 
== Reference Solutions ==
 
== Reference Solutions ==

Latest revision as of 08:44, 1 August 2016

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) ).

 \left(
\begin{array}{c}
	\dot{z_1}\\
	\dot{z_2}\\
\end{array}
\right)
=
\dot{z}
=
l(z, v)
=
\left(
\begin{array}{c}
	z_2\\
	v\\
\end{array}
\right)

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

Model

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

 f(x) = E^{-1} 
\left(
\begin{array}{c}
	x_2\\
	u - C(x_1,x_2) x_2 - g(x_1) - \tau_F(x_2)\\
\end{array}
\right)

with

 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:


h(x_1)
=
\left(
\begin{array}{c}
	-\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)\\ 
\end{array}
\right)

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.

OCP

The optimization problem which is solved repetitively is given by


\begin{array}{llclr}
	\displaystyle \min_{\bar{u}, \bar{v}} & J &=& J(x(t_k),\bar{e}, \bar{u}, \bar{z}, \bar{v})  \\[1.5ex]
	\mbox{s.t.}
	& \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}. \\
\end{array}


Parameters

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


References

There were no citations found in the article.