1. Introduction
Mobile robotic systems with the structure of a wheeled inverted pendulum (WIP) are of ongoing interest in research, since this type of robotic system has a wide field of application, reaching from personal transport systems, e.g., the one commonly known as Segway or the TransBOT [Reference Kim and Jung1], over robotic wheelchairs [Reference Doung and Wasiwitono2], up to wheeled humanoid robots [Reference Zambella, Lentini, Garabini, Grioli, Catalano, Palleschi, Pallottino, Bicchi, Settimi and Caporale3], to give only a few examples. This kind of system has the ability to turn on the spot, which results in high maneuverability and allows it to be used in confined spaces. This advantage comes at the cost that a self-balancing control has to be implemented, which is not a trivial task, since the underlying system is inherently nonlinear, unstable, and nonminimum phase. On the contrary, these properties make a mobile robot constructed as a WIP an ideal demonstrator platform, like the robotic system addressed in this paper. In order to create an impressive demonstration, an exceptional trajectory, as indicated in Fig. 1, should be followed. The desired task involves moving under an obstacle which is lower than the overall height of the WIP. This special type of obstacle avoidance is inspired by a limbo dance and pushes the system to its limits. Therefore, it can be used to test how a path following control performs near the system limits. Furthermore, it also has some interesting mathematical properties regarding the solvability of the optimal control problem (OCP). Before the OCP can be stated and solved, the nonlinear system dynamics has to be modeled thoroughly. To this end, different approaches can be used, as indicated by numerous contributions, listed in the review paper [Reference Chan, Stol and Halkyard4], and also more recent contributions like [Reference Ghaffari, Shariati and Shamekhi5] and [Reference Albert, Phogat, Anhalt, Banavar, Chatterjee and Lohmann6]. The latter also implements trajectory planning via optimal control, but without obstacles. Opposed to [Reference Ma, Zheng, Perruquetti and Qiu7] or [Reference Ning, Yue, Yang and Hou8], where obstacles on the ground are addressed, this paper addresses obstacle avoidance as indicated in Fig. 1. A similar task has been considered in [Reference Teeyapan, Wang, Kunz and Stilman9] by using two different controllers, one for stabilizing and one for holding a target inclination angle, and optimizing the switching point. Whereas in this paper the obstacle avoidance is incorporated directly into an OCP. In order to ensure, that the wheels do not slip, the ground reaction forces between the wheels and the ground surface are derived and used as constraints in the OCP, which is also implemented in [Reference Zauner, Müller, Gattringer and Jörgl10]. As already mentioned, the desired task is set up in such a way, that at a defined position the overall height of the WIP has to be lower than the lowest point of the obstacle, while at the same time maintain forward movement. Furthermore, the considered WIP has a flat surface on top. Special about that is that the overall height of the point $H_8$ , depicted in Fig. 1, starts increasing if the robot is tilted backwards until its maximum height is reached. Only then the height of $H_8$ decreases if the robot is tilted further. This results in nonconvex constraints for the obstacle avoidance with a possibly infeasible local minimum and infeasible initial guess. This paper addresses this issue, by means of a multistage approach for solving the according OCP [Reference Zauner, Gattringer and Müller11]. Despite finding a feasible solution for the OCP, the proposed procedure allows to obtain a close to minimal obstacle height, for which a feasible solution exists. Since the so gained optimal trajectory already satsifies the system dynamics and limits, an LQR approach can be used to stabilize the system along this trajectory, if the optimal control is used as feedforward.
2. Mathematical modeling
The derivation of the exact dynamic model of a WIP, as shown in Fig. 2, taking into account movements on the two-dimensional ground surface and two independently driven wheels, can be found in [Reference Zauner, Müller, Gattringer and Jörgl10]. There, no slipping is assumed between the ground and the wheels, thus the WIP can only be moved along the instantaneous ${}_R{x}{}$ -axis, rotated about the ${}_R{z}{}$ -axis, and tilted about the ${}_R{y}{}$ -axis. In order to model these restrictions, non-holonomic constraints at velocity level have to be taken into account. On the contrary, the desired trajectory, adressed in this paper, is guided by a straight line on the ground surface along the ${}_I{x}$ -axis. Therefore, the model can be simplified by setting the orientation angle $\gamma = 0$ and the ${}_I{y}$ -coordinate of the position $y = 0$ . Considering only longitudinal movements, the generalized coordinates $\mathbf{z} = \begin{bmatrix}x & \theta & \xi & \eta \end{bmatrix}^\intercal \hspace{-0.3ex}$ are sufficient to describe the positions and orientations of the basis and the two wheels. The coordinate $x$ describes the position of the ground contact point along the ${}_I{x}$ -axis, $\theta$ is the inclination angle of the basis, and $\xi$ and $\eta$ denote the relative angles of the wheels. Since ideal rolling of the wheels is assumed, the relative angular velocities of the wheels are prescribed by
with the diameter of a wheel $D_W$ . Furthermore, the wheels are rotationally symmetric. Consequently, the relative angles of the wheels do not influence the system dynamics and are of no special interest otherwise. Thus it is sufficient to choose the minimal coordinates as $\mathbf{q} = \begin{bmatrix}x & \theta \end{bmatrix}^\intercal \hspace{-0.3ex}$ and accordingly define the minimal velocities by $\dot{\mathbf{s}} = \begin{bmatrix}\dot{x} & \dot{\theta }\end{bmatrix}^\intercal \hspace{-0.3ex}$ . The minimal coordinates and the minimal velocities can then be combined to the vector of states $\mathbf{x} = \begin{bmatrix}\mathbf{q}^\intercal \hspace{-0.3ex} & \dot{\mathbf{s}}^\intercal \hspace{-0.3ex}\end{bmatrix}^\intercal \hspace{-0.3ex}$ . Due to the symmetric structure of the overall robot and the mentioned simplification of the model, the driving torques have to be equal for each wheel. Therefore, the vector of inputs can be stated by $\mathbf{u} = \begin{bmatrix}M\end{bmatrix}$ with $M$ denoting the driving torque for each wheel.
2.1. Kinematics
Because of $\gamma = 0$ , the reference frames $I$ and $R$ have always the identical orientation and the orientation of the body fixed reference frame $B$ is defined solely by the inclination angle $\theta$ . The rotation matrix
can be used to transform vectors represented in frame $I$ , indicated by the left index ${}_I{(\!\cdot\!)}$ , to vectors represented in the frame $B$ , indicated by the left index ${}_B{(\!\cdot\!)}$ . The inverse transformation can be aquired by $\mathbf{R}_{IB} = \mathbf{R}_{BI}^\intercal \hspace{-0.3ex}$ . The angular velocity of the basis and the two wheels are given by
respectively. With the position vectors
according to Fig. 2, the velocity vectors for the centers of mass (COM) of the basis and the two wheels $i \in \{1,2\}$ , can be stated by
respectively. Here $\tilde{\boldsymbol{\omega }}$ denotes the skew symmetric cross-product matrix of the vector $\boldsymbol{\omega }$ .
2.2. Dynamics
Based on the definitions in Section 2.1, the momentum vectors for the three bodies are derived by
with the mass of the basis $m_B$ , the mass of a wheel $m_W$ and $i \in \{1,2\}$ . Due to the shape of the basis, the principle axes can be approximated by the axes of the body fixed reference frame $B$ . Therefore, the inertia tensors for the basis and the wheels related to the respective COM can be stated by
respectively. Thereby the moment of inertia of the drive rotor $J_M$ is transformed to the gear output side with the gear ratio $i_G$ . The vectors of angular momentum can then be defined by
Using the forces due to gravity
with the gravitational acceleration $g$ , and the torques due to the motors and viscous friction
with the viscous friction coefficient $d_v$ , the reaction forces and torques for the basis and the wheels can be stated by
respectively. According to [Reference Bremer12], the equations of motion (EOM) are then determined as
By evaluating and rearranging (15), the resulting EOM satisfy the form
with the symmetric positive definite mass matrix $\mathbf{M}(\theta )$ , the vector of nonlinear terms $\mathbf{g}(\theta,\dot{\mathbf{s}})$ , and the constant input matrix $\mathbf{B}$ . Since the mass matrix $\mathbf{M}(\theta )$ is invertible, (16) can be converted to state space representation with affine-input structure, resulting in
In order to obtain the equilibrium state of the system, defined by $\dot{\mathbf{s}} = \ddot{\mathbf{s}} = \mathbf{0}$ , the equation system $\mathbf{g}(\theta,\mathbf{0}) = \mathbf{B} \mathbf{u}$ has to be solved. One solution to this equation system is the inclination angle of the upper equilibrium, denoted $\theta _e$ , and the drive torque $M_e = 0$ .
2.3. Ground reaction forces
As mentioned above, the kinematic relation (1) is based on the assumption of ideal rolling of the wheels. In order to ensure that no slipping occurs, the reaction forces between wheels and ground have to stay within static friction bounds. The ground reaction forces/torques, assumed to act at point $G$ for simplicity, can be derived by summing up the reaction forces/torques (13) to (14) properly shifted into point $G$ . This results in
with ${}_I{\mathbf{r}}{_{GC_B}} ={}_I{\mathbf{r}}{_{GP}} + \mathbf{R}_{IB}{}_B{\mathbf{r}}{_{PC_B}}$ , and ${}_I{\mathbf{r}}{_{GC_{W_i}}} ={}_I{\mathbf{r}}{_{GP}} +{}_I{\mathbf{r}}{_{PC_{W_i}}}$ . As long as the EOM (16) are fulfilled, the ground reaction torques satisfy ${}_I{\mathbf{M}}{_G^z} \equiv \mathbf{0}$ , which can be easily verified by plugging (17) into (18). As expected for the simplified model, the $y$ -component of ${}_I{\mathbf{f}}{_G^z}$ results to $f_{G,y}^z \equiv 0$ . In order to ensure proper ground contact, the $z$ -component has to satisfy the condition
and to ensure ideal rolling the $x$ -component has to be bound by
with the static friction coefficient $\mu _0$ .
3. Obstacle avoidance
As can be seen in Fig. 1, the WIP has to get from one side of the obstacle to the other. If only the upper part of the WIP, regarded as the “head,” is considered, three possible outcomes can be observed. First, the head and thus the entire WIP passes under the obstacle and no collision takes place. Second, the head collides directly with the obstacle. And finally, the head passes above the obstacle, which would mean that a different part of the WIP collides with the obstacle. Therefore, it is sufficient to test for collisions between the head and the obstacle, as long as it can be enssured, that the head would not pass above the obstacle. In order to simplify the collision detection between the head and the obstacle, the cross section of the head is approximated, as shown in Fig. 3, by five circles located at the points
with a radius $r_{H_i} = \dfrac{h_H}{2}$ and $i \in \{1,\dots,5\}$ . To account for the sharp edge at the front of the head, the approximation is refined by adding two additional circles at the points
with the radii $r_{H_6} = \dfrac{h_H}{4}$ and $r_{H_7} = \dfrac{h_H}{12}$ , respectively, and the point
with $r_{H_8} = 0$ for consistency. With the absolute position vectors
with $i \in \{1,\dots,8\}$ and the position vector to the center of the obstacle
the relative position vectors between the head and the obstacle can be stated by
A noncolliding trajectory always has to satisfy
with $i \in \{1,\dots,8\}$ and the radius of the obstacle $r_O$ . In order to ensure that the head does not pass above the obstacle, a test point may never lie inside the triangular shaped region above the center of the obstacle, as indicated in Fig. 3. To achieve this, the condition
with ${}_I{\mathbf{n}}{_O} = \begin{bmatrix}0 &\quad 0 &\quad -1\end{bmatrix}^\intercal \hspace{-0.3ex}$ and $i \in \{1,\dots,8\}$ must always be met.
4. Optimal control problem
4.1. Continuous time domain
Combining the results of Sections 2 and 3, a weighted time and energy optimal trajectory for a fixed obstacle height $a_{O_z}$ can be obtained by solving an OCP with variable terminal time $T_E$ . The according OCP can be stated as
with the time weight $\nu _t$ , the input weight $\nu _u$ , the initial state $\mathbf{x}_0 = \begin{bmatrix}0 & \theta _e & 0 & 0\end{bmatrix}$ , and the terminal state $\mathbf{x}_E = \begin{bmatrix}x_E & \theta _e & 0 & 0\end{bmatrix}$ . The vectors $\mathbf{x}_{\mathrm{min}}$ and $\mathbf{x}_{\mathrm{max}}$ form box constraints for the states and are used to restrict especially the inclination angle $\theta$ to reasonable values, whereas the box constraints for the input, given by $\mathbf{u}_{\mathrm{min}}$ and $\mathbf{u}_{\mathrm{max}}$ , account for the maximal permissible driving torque. The angular velocity of the wheels $\omega _W(\mathbf{x})$ , according to (1), is limited to the maximum value $\omega _{W,\mathrm{max}}$ and the drive power $P_{M}(\mathbf{x},\mathbf{u}) = \omega _W(\mathbf{x}) M$ is constrained to the maximal drive power $P_{M,\mathrm{max}}$ . The constraints regarding the ground reaction forces, (39) and (40), are according to (19) and (20) and the constraints concerning obstacle avoidance, (41) and (42), are according to (28) and (29).
4.2. Discrete time domain
To obtain a solution for the infinite-dimensional OCP (30), a direct multiple shooting approach [Reference Bock and Plitt13–Reference Diehl15] is chosen. Therefore, the time span $t \in [0,T_E]$ is discretized with the sampling time $T_S = \frac{T_E}{N}$ , $N = 1000$ , resulting in the vector of time steps $\hat{\mathbf{t}} = \begin{bmatrix}0 & T_S & \cdots & i T_S & \cdots & T_E\end{bmatrix}^\intercal \hspace{-0.3ex} \in \mathbb{R}^{N+1}$ . Between each time step the value of the input vector $\mathbf{u}$ is assumed to be constant. This results in the matrices of discrete input values $\hat{\mathbf{u}} = \begin{bmatrix}\hat{\mathbf{u}}_0 & \hat{\mathbf{u}}_1 & \cdots & \hat{\mathbf{u}}_{N-1}\end{bmatrix} \in \mathbb{R}^{1 \times N}$ and state values $\hat{\mathbf{x}} = \begin{bmatrix}\hat{\mathbf{x}}_0 & \hat{\mathbf{x}}_1 & \cdots & \hat{\mathbf{x}}_N\end{bmatrix} \in \mathbb{R}^{4 \times (N + 1)}$ . As integration scheme the explicit Runge–Kutta method of fourth order RK4 is used, which is implemented explicitly in order to exploit the automatic differentiation capability of the used solver. Consequently, the state of the next time step can be obtained by a function $\mathbf{f}_{\mathrm{RK4}}(\hat{\mathbf{x}}_i, \hat{\mathbf{u}}_i, T_E)$ . The OCP can then be approximated by the finite-dimensional optimization problem
for a fixed obstacle height $a_{O_z}$ . Constraint (44) accounts for the shooting gap between integration of one time step and the optimization varibale of the according next time step.
4.3. Minimal obstacle height
In order to obtain the minimal obstacle height $a_{O_z}$ for which a feasible solution exists, the nested optimization problem
with the discretized OCP as constraint has to be solved. The obstacle height is restricted to reasonable values by $a_{O_z,\mathrm{min}} \gt 0$ , which is chosen in such a way that it does not restrict the actual solution.
5. Numerical solution
For solving the nonlinear optimization problem (43), the optimization framework CasADi [Reference Andersson, Åkesson and Diehl16,Reference Andersson, Gillis, Horn, Rawlings and Diehl17] is used with the solver Ipopt, which is based on [Reference Wächter18]. In order to solve the nested optimization problem (56) a simple line search algorithm can be used for the top-level optimization problem. Thereby the obstacle height $a_{O_z}$ is initialized to some value $a_{O_z} \gt \frac{D_W}{2} + H + r_O$ and then incremenetally reduced by a fixed step size $\Delta{}a_{O_z}$ , which in turn is reduced once no feasible solution for the inner optimization problem can be found. A minimum step size can be used as terminal condition.
To find an initial guess for the inner optimization problem, a straight forward approach would be to linearly interpolate the initial and terminal state and to find a hard lower bound for the terminal time, which is then relaxed by some factor. A reasonable lower bound for $T_E$ can be derived, for example, by the maximum drive speed and the distance between initial and terminal position. The resulting trivial initial guess can be stated as
But if this problem is tried to be solved, the optimization process tends to terminate prematurely once the obstacle height reaches $a_{O_z} \lt \frac{D_W}{2} + H + r_O$ . Figure 4 shows the system states of the WIP, for an examplary trajectory, where such a premature termination occurs, and Fig. 5 indicates the resulting trajectory by showing the cross section of the head during motion and the obstacle. Remarkably, the WIP is not tilted at all directly underneath the obstacle, although it is known that a better feasible solution exists.
Since the essence of the desired task is that the WIP has to pass underneath the obstacle, there exists a point in time where the highest point of the WIP has to be below the lowest point of the obstacle. Figure 6 shows the overall height of the WIP for varying inclination angle $\theta$ . It can be seen that there exists a local minimum at $\theta = 0$ , which is caused by the shape of the head. If the initial guess is near this local minimum directly underneath the obstacle, the solver may fail to escape this local infeasible minimum.
Of course it is possible to adapt the initial guess or the solver settings such that the optimization process converges more robustly. But this involves tedious handcrafting of initial solutions, which can be avoided by using a multistage approach as proposed in the following section.
6. Multistage approach
The basis for the multistage approach is that the OCP (43) can be solved very robustly, if the constraints regarding the obstacle are neglected. The idea is then to approach the original problem via multiple stages of optimization problems by tightening the constraints and minimizing the obstacle height. Thereby the result of one stage is used as initial guess for the next stage. As a side effect, the minimal obstacle height can also be derived along the way and a higher level line search is no longer necessary.
6.1. Without obstacle
As already mentioned the first stage consists of finding a valid solution for the OCP (43) without the constraints regarding the obstacle. The optimization problem thus simplifies to
Using the trivial initial guess (59), the problem (60) can be solved and the results for the optimization variables $\hat{\mathbf{u}}$ , $\hat{\mathbf{x}}$ , and $T_E$ can be used as initial guess for the next stage. The resulting trajectory is indicated in Fig. 7, which shows the cross section of the head during motion.
6.2. Head with circular shape and variable obstacle height
In the second stage, the constraints regarding the obstacle are modified in such a way that these constraints no longer have a local minimum at $\theta = 0$ , which has been discussed in Section 5. This can be achieved by using a coarser approximation of the head shape with only one larger circle. To this end, the absolute position vector to the center of the head
with
is introduced. The relative position vector between the head and the obstacle can then be stated by
Satisfying the relation
leads to a more restrictive constraint, which no longer has a local minimum at $\theta = 0$ .
Furthermore, the height of the obstacle is minimized starting at a height which is known to not interact with the initial guess obtained by the previous stage. The resulting optimization problem can be stated as
with the weight $\nu _O \gg \nu _t$ and $\nu _O \gg \nu _u$ . Again the resulting trajectory, which is indicated by Fig. 8 and the detailed view in Fig. 9, can be used as initial guess for the next stage.
6.3. Head with original shape and variable obstacle height
As can be seen in Fig. 9, the previously introduced coarser approximation of the head shape still leaves a gap between the actual head and the obstacle. In order to further reduce the height of the obstacle and to push the system to its limits, the optimization problem (65) is solved again, but now with the original constraints regarding the obstacle. The according optimization problem is given by
and Fig. 10 shows that the head now touches but does not intersect the obstacle.
6.4. Original problem
Due to the very high weight for the obstacle height $\nu _O$ the cost functions of the problems, (65) and (69) are significantly different in contrast to the original problem. Therefore in the final stage, the obstacle height is fixed to the result for $a_{O_z}$ of (69) and the original problem (43) is solved using the remaining results of (69) as initial guess.
The results of this optimization are shown in Figs. 11–14. Figure 11 depicts the states of the WIP over time. In Fig. 12, it can be seen, that the driving torque and the angular velocity of the wheels, as well as the drive power stay always within the according maximum values (red). The ground reaction forces over time are shown in Fig. 13. Since the actual force ${}_I{f}{_{G,x}^z}$ between the wheels and the ground is always within the limits given by static friction (red), it can be assumed, that no slipping occurs. In Fig. 14, the resulting trajectory is indicated by showing the cross section of the head during motion and the obstacle. The minimal feasible height of the center of the obstacle results in $a_{O_z,\mathrm{opt}} = \mathrm{0.685}\,\mathrm{m}$ . Taking into account the overall height of the WIP of $\mathrm{0.7}\,\mathrm{m}$ and the radius of the obstacle $r_O = \mathrm{0.05}\,\mathrm{m}$ , the lowest point of the obstacle lies $\Delta{}H = -\mathrm{0.065}\,\mathrm{m}$ underneath the highest point of the WIP in the upper equilibrium state. Table I shows how the terminal time and the obstacle height evolve over the four stages.
7. Experimental setup
In order to test the optimal trajectory on the real system, a linear quadratic regulator (LQR) based approach is used as shown in Fig. 15. A more elaborated controller design would be conceivable, given the nonlinearity of the underlying system. But the optimal trajectory already satisfies the system dynamcis and limits, thus the controller only has to compensate for model uncertainties and measurement errors. The actual system is equipped with encoders and an inertial measurement unit (IMU), providing measurments for the wheel angles $\xi$ and $\eta$ and the inclination angle $\theta$ as well as the respective angular velocities $\dot{\xi }$ , $\dot{\eta }$ , and $\dot{\theta }$ . In order to reduce the measurement noise, especially for the angular velocities, a Kalman observer is added to the control loop. The derivation of the LQR and the observer follows standard procedures and is based on an extended model, which also accounts for lateral deviations off the trajectory. For the extended model, a state vector $\mathbf{x}_{\mathrm{E}} = \begin{bmatrix}\xi & \eta & \theta & \dot{\xi } & \dot{\eta } & \dot{\theta }\end{bmatrix}^\intercal \hspace{-0.3ex}$ and an input vector $\mathbf{u}_{\mathrm{E}} = \begin{bmatrix}M_1 & M_2\end{bmatrix}^\intercal \hspace{-0.3ex}$ are used and the derivation of the EOM is similar to the approach in Section 2. Converting the optimal state values to the desired states of the extended model $\mathbf{x}_{\mathrm{E},\mathrm{des}}$ can be performed by $\xi = \eta = \frac{2 x}{D_W} - \theta$ and (1) and a feedforward for the control input $\mathbf{u}_{\mathrm{E},\mathrm{FF}} = \begin{bmatrix}M_{1,\mathrm{FF}} & M_{2,\mathrm{FF}}\end{bmatrix}^\intercal \hspace{-0.3ex}$ is implemented by setting $M_{1,\mathrm{FF}} = M_{2,\mathrm{FF}} = M$ . The LQR and the observer are based on the extended system dynamics linearized at the upper equilibrium point defined by $\mathbf{x}_{\mathrm{E},\mathrm{equ}} = \begin{bmatrix}0 & 0 & \theta _e & 0 & 0 & 0\end{bmatrix}^\intercal \hspace{-0.3ex}$ and $\mathbf{u}_{\mathrm{E},\mathrm{equ}} = \mathbf{0}$ . This results in the linearized state vector $\boldsymbol{\Delta }\mathbf{x}_{\mathrm{E}} = \mathbf{x}_{\mathrm{E}} - \mathbf{x}_{\mathrm{E},\mathrm{equ}}$ and the linearized input vector $\boldsymbol{\Delta }\mathbf{u}_{\mathrm{E}} = \mathbf{u}_{\mathrm{E}} - \mathbf{u}_{\mathrm{E},\mathrm{equ}}$ . As indicated in Fig. 15, the measured values are collected in $\mathbf{x}_{\mathrm{E},\mathrm{meas}}$ and the observed system state is denoted $\mathbf{x}_{\mathrm{E},\mathrm{obs}}$ with the deviations from the equilibrium point $\boldsymbol{\Delta }\mathbf{x}_{\mathrm{E},\mathrm{meas}}$ and $\boldsymbol{\Delta }\mathbf{x}_{\mathrm{E},\mathrm{obs}}$ , respectively. The control error is defined by $\mathbf{e}_{\mathrm{E},\mathrm{ctrl}} = \mathbf{x}_{\mathrm{E},\mathrm{des}} - \mathbf{x}_{\mathrm{E},\mathrm{obs}}$ and the actual system input results in $\mathbf{u}_{\mathrm{E}} = \mathbf{u}_{\mathrm{E},\mathrm{ctrl}} + \mathbf{u}_{\mathrm{E},\mathrm{FF}}$ with the optimized feedforward $\mathbf{u}_{\mathrm{E},\mathrm{FF}}$ and the output of the controller $\mathbf{u}_{\mathrm{E},\mathrm{ctrl}}$ . Experiments have shown that the proposed controller is capable of keeping the state of the actual WIP close enough to the optimal trajectory, such that a obstacle can be passed without a collision. Thereby the obstacle is installed at the same position, resulted by the optimization problem (69). Unfortunately the controller is implemented on an embedded micro processor board, which does not provide the possibility to track signals. As a partial compensation, the experiment has been put on our YouTube channel and is accessible via [19].
8. Conclusion
In this work, an OCP for a WIP has been derived for a desired trajectory with obstacle avoidance inspired by a limbo dance. This task involves to pass an obstacle, which is placed at a lower height than the overall WIP height in equilibrium state. The resulting optimization problem has non-convex constraints with an infeasible local minimum. If the initial guess for the OCP is near this infeasible local minimum, gradient-based solvers tend to terminate without providing a valid solution. In order to prevent tedious manual tuning of the initial guess, a multistage approach has been proposed to avoid entering the region of this local minimum. It has been shown that solving four subsequent optimization problems reliably result in an optimal solution for the trajectory and a close to optimal value for the minimum feasible obstacle height. The obtained optimal state and control values are then used as desired trajectory and feedforward for the controller of the real system. Finally, experiments have shown that the WIP can successfully pass under the obstacle.
Obviously, the proposed approach is closely related to the problem setup consisting of the type of the robot and the definition of the obstacle. But the idea of relaxing or tightening certain constraints which impede the solution of an OCP and advance the original problem via multiple stages of subsequent optimization problems might as well generalize to other problem setups.
Author contributions
All authors contributed equally to this article.
Financial support
Supported by the “LCM - K2 Center for Symbiotic Mechatronics” within the framework of the Austrian COMET-K2 program.
Conflicts of interest
The authors declare no conflicts of interest exist.
Ethical approval
Not applicable.