# Real-Time Inverse Optimal Neural Control for Image Based Visual Servoing with Nonholonomic Mobile Robots

Authors: Carlos López-Franco; Michel López-Franco; Alma Y. Alanis; Javier Gómez-Avila; Nancy Arana-Daniel
Journal: Mathematical Problems in Engineering
 (2015)

---

## Abstract

We present an inverse optimal neural controller for a nonholonomic mobile robot with parameter uncertainties and unknown external disturbances. The neural controller is based on a discrete-time recurrent high order neural network (RHONN) trained with an extended Kalman filter. The reference velocities for the neural controller are obtained with a visual sensor. The effectiveness of the proposed approach is tested by simulations and real-time experiments.


---

## Body

## 1. Introduction

Traditionally, robot motion control approaches have feedback provided by a taco-meter or encoder, whose advantages are its easy implementation and its low cost. However, in mobile robotics such information is not accurate due to the appearance of slip phenomenon. One sensor that can be used to overcome these problems is the visual sensor. In this work, we use computer vision techniques to overcome such disadvantages.Although a visual sensor is more accurate, it can suffer from unknown external disturbances due to the robot motion. In addition, the robot model is inaccurate and it suffers from parameter uncertainties. To overcome such problems, we propose the use of a discrete-time recurrent high order neural network (RHONN) trained with an extended Kalman filter with visual feedback.The main goal of optimal control theory is to determine the control signals that will force a process to satisfy physical constraints and minimize a performance criterion simultaneously [1]. In optimal control theory, a cost functional is defined as function of the state and the control variables. Unfortunately it requires solving the Hamilton-Jacobi-Bellman (HTB) equation, which is not an easy task. To avoid the solution of a HTB equation an inverse optimal control can be used [2]. In inverse optimal control, we start with the definition of a stabilizing feedback control, and then we have to show that it optimizes a cost functional.In this work, the input of the inverse optimal control is determined by visual feedback. The visual sensor is responsible of tracking the target and the estimation of the robot velocities to achieve the desired task. In our case the task consists in moving the robot from an initial pose to a desired pose with respect to a target object.


### 1.1. State of the Art

An extensive class of controllers have been proposed for mobile robots [3–9]. Most of these references present only simulation results and the controllers are implemented in continuous time. A common problem when applying standard control theory is that the required parameters are often either unknown at time or are subject to change during operation. For example, the inertia of a robot as seen at the drive motor has many components, which might include the rotational inertia of the motor rotor, the inertia of gears and shafts, rotational inertia of its tires, the robot’s empty weight, and its payload. Worse yet, there are elements between these components such as bearings, shafts, and belts which may have spring constants and friction loads [10].


### 1.2. Main Contribution

The paper main contributions are as follows:(1) presenting a controller for mobile robots which includes the robot dynamics and does not need the previous knowledge of robot parameters or model; (2) computing the trajectory references for the controller on real-time using visual data, acquired from a camera mounted on the robot; using visual data the controller drives the nonholonomic robot from its current pose toward a desired one; (3) real-time integration of visual servoing and an inverse optimal neural controller to allow nonholonomic mobile robots to perform autonomous navigation.The rest of this work is organized as follows. First the problem formulation is presented in Section2. Then the model of the mobile robot and framework setup is described in Section 3. After that the camera model is presented in Section 4. Later, the visual feedback algorithm is introduced in Section 5. Section 6 provides an introduction to the neural identification. The inverse optimal control approach is presented in Section 7. The neural identification and control of the mobile robot is presented in Section 8. The simulations results are presented in Section 9. The experimental results are presented in Section 10. Finally, the conclusions are given in Section 11.


## 1.1. State of the Art

An extensive class of controllers have been proposed for mobile robots [3–9]. Most of these references present only simulation results and the controllers are implemented in continuous time. A common problem when applying standard control theory is that the required parameters are often either unknown at time or are subject to change during operation. For example, the inertia of a robot as seen at the drive motor has many components, which might include the rotational inertia of the motor rotor, the inertia of gears and shafts, rotational inertia of its tires, the robot’s empty weight, and its payload. Worse yet, there are elements between these components such as bearings, shafts, and belts which may have spring constants and friction loads [10].


## 1.2. Main Contribution

The paper main contributions are as follows:(1) presenting a controller for mobile robots which includes the robot dynamics and does not need the previous knowledge of robot parameters or model; (2) computing the trajectory references for the controller on real-time using visual data, acquired from a camera mounted on the robot; using visual data the controller drives the nonholonomic robot from its current pose toward a desired one; (3) real-time integration of visual servoing and an inverse optimal neural controller to allow nonholonomic mobile robots to perform autonomous navigation.The rest of this work is organized as follows. First the problem formulation is presented in Section2. Then the model of the mobile robot and framework setup is described in Section 3. After that the camera model is presented in Section 4. Later, the visual feedback algorithm is introduced in Section 5. Section 6 provides an introduction to the neural identification. The inverse optimal control approach is presented in Section 7. The neural identification and control of the mobile robot is presented in Section 8. The simulations results are presented in Section 9. The experimental results are presented in Section 10. Finally, the conclusions are given in Section 11.


## 2. Problem Formulation

The main focus of this work is the navigation of a differential drive robot from its current pose to a desired pose by using visual feedback and a neural controller, Figure1. The camera is mounted on the robot, and therefore the robot motion induces camera motion. Before the task begins the desired feature s* is estimated applying a segmentation algorithm to the image of the target. The same process is done in real-time to compute the current future s. When the algorithm begins the desired feature s* and the current feature s are compared to compute the error. Then, using this error, the controller estimates the velocities to complete the task.Figure 1
Controller diagram.


## 3. Model Formulation

In this paper we consider a two-wheel differential drive mobile robot that moves on a plane. The motion of the mobile robot is defined with respect to an inertial frameFw fixed in the world. Let Fc be a frame attached to the current camera pose, Fc* a frame attached to the desired camera pose, and Fr a frame attached to the mobile robot pose, Figure 2.Figure 2
Coordinate frames of the robotFR, camera FC, and object FO.
(a)
(b)The mobile robot used in this work is a differential drive mobile robot; its kinematic model is(1)x˙y˙θ˙=cos⁡θsinθ0v+001ω,where the inputs v and ω represent the driving velocity and the steering velocity, respectively.The mobile robot has two actuated wheels, and its dynamics can be expressed in the following state-space model [4, 11, 12]:(2)χ˙1=Jχ1χ2,χ˙2=M-1-Cχ˙1χ2-Dχ2-τd+NKTχ3,χ˙3=La-1u-Qaχ3-NKEχ2,where each subsystem is defined as(3)χ1=χ11,χ12,χ13T,χ2=χ21,χ22T,χ3=χ31,χ32Twith(4)Jχ1=0.5rcos⁡χ13cos⁡χ13sinχ13sinχ13W-1-W-1,M=m11m12m12m11,Cχ=0.5W-1r2mcd0χ˙13-χ˙130,D=d1100d22,m11=0.25W-2r2mW2+I+Iw,m12=0.25W-2r2mW2-I,m=mc+2mw,I=mcd2+2mwW2+Ic+2Im,τd=τd1,τd2T,where the value W represents the half of the width of the mobile robot and r is the radius of the wheel and d is the distance from the center of mass Pc of the mobile robot to the middle point P0 between the right and left driving wheels. The values χ11=x, χ12=y are the coordinates of P0 and χ13=θ is the heading angle of the mobile robot, χ21=v1, χ22=v2 represent the angular velocities of right and left wheels, respectively, and χ31=ia1, χ32=ia2 represent motor currents of right and left wheels, respectively. The values mc and mw are the mass of the body and the wheel with a motor, respectively. Ic, Iw, and Im are the moment of inertia of the body about the vertical axis through Pc, the wheel with a motor about the wheel axis, and the wheel with a motor about the wheel diameter, respectively. The positive terms dii,i=1,2, are the damping coefficients. The value τd∈R2 is a vector of disturbances including unmodeled dynamics. KT=diag[kt1,kt2] is the motor torque constant, u∈R2 is the input voltage, Qa=diag[qa1,qa2] is the resistance, La=diag[la1,la2] is the inductance, KE=diag[ke1,ke2] is the back electromotive force coefficient, and N=diag[n1,n2] is the gear ratio. Here, diag[·] denotes the diagonal matrix. Model (2) is discretized using the Euler methodology.


## 4. Camera Model

In this paper the camera used is a traditional perspective camera. In this section we describe the perspective model; this model describes the relationship between a 3D pointWX and its projection x, which can be computed from(5)xC=I3×3∣03×1xC=I3×3∣03×1TCWWX,where CTW is a rigid transformation that relates the world coordinate frame with respect to the camera coordinate frame and is defined as(6)TCW=RCWtC,where CRW is a rotation matrix and Ct is a translation vector, and both terms represent the extrinsic camera parameters.The pointCx can be projected into the image plane as(7)x=KxC,where the matrix K represents the intrinsic camera parameters and is defined as(8)K=αασδu0αδv001,where α is the focal length in pixels, δu and δv are the coordinates of the principal point (in pixels), and σ represents the skew factor.


## 5. Visual Based Feedback

The use of visual feedback to control a robot is commonly termedvisual servoing orvisual control [13–16]. In this work we assume that a monocular camera is mounted directly on the mobile robot, in which case motion of the robot induces camera motion.The objective of the visual feedback is the minimization of(9)et=st-s*,where s(t) denote the features extracted from the current pose and s* denote the features extracted from the desired pose. In our case the features of error (9) are two-dimensional vectors and are defined as s=(xlog⁡(Z))⊤ and s*=(x*log⁡*(Z))⊤; note that log⁡(Z) and log⁡*(Z) are supplementary normalized coordinates [17].During the motion of the robot the camera suffers a motionvc=(vc,ωc), where vc is the linear velocity and ωc is the angular velocity. The relationship between this velocity and s˙ is(10)s˙=Lvc.The relationship between the camera velocity and the time variation error can be determined with (9) and (10); that is,(11)e˙=Lvc,where the interaction matrix L can be defined as [15](12)L=LxVcrJrr,where the matrix cVr is a motion transformation matrix defined as [18](13)Vcr=RCWt×RCW03×3RCW,where CRW is the rotation matrix that relates the camera and robot frameworks and t× represents the skew symmetric matrix associated with the vector t.The interaction matrixLx can be defined as [13](14)Lx=-1Z0xZxy-1+x2y0-1ZyZ1+y2-xy-x,where the Z value represents the depth of the feature relative to the camera frame. The values x, y are computed from the pixels coordinates ux, uy of the tracked feature and the camera calibration matrix as(15)x=K-1u,where x=xy1⊤ and u=uxuy1⊤.We can note from (14) that each feature point provides two equations; therefore for a 6-DOF problem we need at least three features. However, since we are dealing with a mobile robot with only 2 controllable DOF, then a single feature is enough.From (11) and (12) we can define the velocity input to the robot as [15](16)vr=-λL+e,where L+ is the pseudoinverse of the matrix L.From the above expression, we can observe that velocities (16) can be used as reference for the neural controller.


## 6. Neural Identification

In this section, we present the neural identification process. First, let us consider a MIMO nonlinear system(17)χk+1=Fχk,uk,where χk∈Rn is the state of the system, uk∈Rm is the control input, and F∈Rn×Rm→Rn is a nonlinear function.System (17) is identified by a discrete-time recurrent high order neural network (RHONN), defined as(18)xi,k+1=wi⊤φiχk,uk,i=1,…,n,where xi is the state of the ith neuron, wi is the respective online adapted weight vector, n is the state dimension, and φi(xk,uk) is given by(19)φixk,uk=φi1φi2⋮φiLi=Πj∈I1ξijdij(1)Πj∈I2ξijdij2⋮Πj∈ILiξijdij(Li),where Li is the respective number of high-order connections, {I1,I2,…,ILi} is a collection of nonordered subsets of dimension {1,2,…,n+m}, m is the number of external inputs, dij(k) is nonnegative integers, and ξi is defined as follows:(20)ξi=ξi1⋮ξi1ξin+1⋮ξin+m=S(x1)⋮S(xn)u1⋮um.In (20), u=[u1,u2,…,um]⊤ is the input vector of the neural network, and S(•) is defined by(21)S(ς)=11+exp⁡-βς,β>0,where ς is any real value variable.Based on the structure of discrete-time RHONN series parallel representation [19], we propose the following neural networks model:(22)xi,k+1=wi,kziχk,uk+wi′ψiχi,k,ui,k,where wi,k are the adjustable weight matrices, wi,k′ are matrices with fixed parameters, and ψ denotes a linear function of x or u corresponding to the plant structure or external inputs to the network, respectively.The EKF-based training algorithm is described by [20](23)Ki,k+1=Pi,kHi,kMi,k,wi,k+1=wi,k+ηiKi,kei,k,Pi,k+1=Pi,k-Ki,kHi,k⊤Pi,k+Qi,kwith(24)Mi,k=Ri,k+Hi,k⊤Pi,kHi,k-1,ei,k=χi,k-xi,k,where ei,k is the identification error, Pi,k+1 is the state estimation prediction error covariance matrix, wi,k is the ith weight vector at step k, ηi is a design parameter such that 0≤ηi≤1, χi,k is the ith plant state, xi,k is the ith neural network state, q is the number of states, Ki,k is the Kalman gain matrix, Qi,k is the measurement noise covariance matrix, Ri,k is the state noise covariance matrix, and Hi,k is a matrix, in which each entry of (Hi,k) is the derivative of ith neural network state (xi,k), with respect to all adjustable weights (wi,k), as follows:(25)Hi,k=∂xi,k∂wi,kwi,k=wi,k+1T.UsuallyPi, Qi, and Ri are initialized as diagonal matrices, with entries Pi0, Qi0, and Ri0, respectively [21]. It is important to note that Hi,k, Ki,k, and Pi,k for the EKF are bounded [22].It is possible to identify (17) by (18) due to the following theorem.Theorem 1 (see [23]).
The RHONN (18) trained with the EKF-based algorithm [20] to identify the nonlinear plant (17) ensures that the identification error [20] is semiglobally uniformly ultimately bounded (SGUUB); moreover, the RHONN weights remain bounded.


## 7. Inverse Optimal Control

Let us consider a nonlinear affine system(26)xk+1=fxk+gxkukx0=x0,where xk∈Rn is the state of the system at time k∈N and u∈Rmf:Rn→Rn, g:Rn→Rn×m are smooth and bounded mappings. We assume f(0)=0. N denotes the set of nonnegative integers. The following meaningful cost functional is associated with the trajectory tracking problem for system (26):(27)Lzk=∑n=k∞‍lzn+unTRznun,where zk=xk-xδ,k with xδ,k as the desired trajectory for xk; zk∈Rn; L(zk):Rn→R+; l(zk):Rn→R+ is a positive semidefinite function and R(zk):Rn→Rm×m is a real symmetric positive definite weighting matrix. The entries of R(zk) can be fixed or can be functions of the system state in order to vary the weighting on control efforts according to the state value [1].For solving the trajectory tracking optimal control problem, it is necessary to solve the following HJB equation:(28)lzk+Vzk+1-Vzk+14∂VTzk+1∂zk+1gxk×R-1zkgTxk∂Vzk+1∂zk+1=0which is a challenging task. To overcome this problem, we propose to solve the inverse optimal control problem.Definition 2.
Consider the tracking error aszk=xk-xδ,k, xδ,k being the desired trajectory for xk. Let one define the control law(29)uk*=-12R-1zkgTxk∂Vzk+1∂zk+1.
It will be inverse optimal (globally) stabilizing along the desired trajectoryxδ,k if(i)
it achieves (global) asymptotic stability ofxk=0 for system (26) along reference xδ,k;(ii)
V(zk) is (radially unbounded) positive definite function such that inequality (30)V¯:=Vzk+1-Vzk+uk*TRzkuk*≤0is satisfied.
Selectingl(zk)∶=-V¯, then V(zk) is a solution for (28) and cost functional (27) is minimized.As established in Definition2, the inverse optimal control law for trajectory tracking is based on knowledge of V(zk). Then, a CLF V(zk) is proposed, such that (i) and (ii) are guaranteed. Hence, instead of solving (28) for V(zk) a quadratic candidate CLF V(zk) for (29) is proposed with the form(31)Vzk=12zkTPzk,where(32)P=PT>0in order to ensure stability of the tracking error zk, where (33)zk=xk-xδ,k=x1,k-x1δ,k⋮xn,k-xnδ,k.The control law (29) with (31), which is referred to as the inverse optimal control law, optimizes the meaningful cost functional of the form (27). Consequently, by considering V(zk) as in (31), control law (29) takes the following form:(34)uk*=-14R-1zkgTxk∂zk+1TPzk+1∂zk+1=-14R-1zkgTxkPzk+1,uk*=-12RzkgTxkPgzk-1×gTxkPfxk-xδ,k+1.P and R(zk) are positive definite and symmetric matrices; thus, the existence of the inverse in (34) is ensured.


## 8. Neural Identification and Control of the Mobile Robot

In this section we describe the neural identification and neural control for the nonholonomic mobile robot; in the next section we will describe the reference for this controller. The reference velocities will be estimated using visual feedback.


### 8.1. Neural Identification Design

The physical parameters for the mobile robot simulations are selected as(35)W=0.75m,Im=0.0025kgm2,d=0.3m,Ra=diag2.5,2.5Ω,r=0.15m,La=diag0.048,0.048H,mc=30kg,KE=diag0.02,0.02V/rad/s,mw=1kg,N=diag62.55,62.55,Ic=15.625kgm2,KT=diag0.2613,0.2613Nm/A,Iw=0.005kgm2,dm1=dm2=0.5N.It is important to note that these parameters are considered unknown for the controller design and are only included for simulation purposes. Then, we apply the neural identifier, developed in Section6, to obtain a discrete-time neural model for the electrically driven nonholonomic mobile robot (2), with n=7 trained with the EKF [20], as follows:(36)x1,k+1=w11,kSχ11,k+w12,kSχ12,k+w111′χ3+w112′χ4,x2,k+1=w21,kSχ11,k+w22,kSχ12,k+w121′χ3+w122′χ4,x3,k+1=w31,kSχ11,k+w32,kSχ12,k+w131′χ3+w131′χ4,x4,k+1=w41,kSχ11,k+w42,kSχ12,k+w43,kSχ21,kx4,k+1=+w44,kSχ31,k+w2′χ6,x5,k+1=w51,kSχ11,k+w52,kSχ12,kx4,k+1=+w53,kSχ22,k+w54,kSχ32,k+w2′χ7,x6,k+1=w61,kSχ11,k+w62,kSχ12,kx4,k+1=+w63,kS(χ21,k)+w64,kS(χ31,k)+w3′u11,x7,k+1=w71,kSχ11,k+w72,kSχ12,kx4,k+1=+w73,kS(χ22,k)+w74,kS(χ32,k)+w3′u12,where x1 and x2 identify the x and y coordinates, respectively; x3 identifies the robot angle; x4 and x5 identify the angular velocities of right and left wheels, respectively; finally, x6 and x7 identify the motor currents, respectively. The NN training is performed online, and all of its states are initialized in a random way. The RHONN parameters are heuristically selected as(37)P10=1×108,R10=1×104,Q10=5×105,P20=1×102,R20=5×104,Q20=5×105,P30=1×108,R30=1×104,Q30=5×105,P40=1×102,R40=1×101,Q40=1×101,P50=1×102,R50=1×101,Q50=1×101,P60=1×102,R60=1×103,Q60=1×103,P70=1×102,R70=1×103,Q70=1×103.It is important to consider that for the EKF-learning algorithm the covariances are used as design parameters [21, 24].


### 8.2. Control Synthesis

In order to facilitate the controller synthesis, we rewrite neural network (36) in a block structure form as(38)x1,k+1=x1,k+1x2,k+1x3,k+1=w1,kφ1χ1,k+w1,kχ2,k,x2,k+1=x4,k+1x5,k+1=w2,kφ2χ1,k,χ2,k+w2,kχ3,k,x3,k+1=x6,k+1x7,k+1=w3,kφ3χ1,k,χ2,k,χ3,k+w3,kukwith χ1,k, χ2,k, χ3,k, φ1, φ2, φ3, w1,k, w2,k, w3,k, w1,k, w2,k, and w3,k being of appropriated dimension according to (38).The goal is to force the statex1,k to track a desired reference signal χ1δ,k. This is achieved by designing a control law as described in Section 7. First the tracking error is defined as (39)z1,k=x1,k-χ1δ,k.Then using (38) and introducing the desired dynamics for z1,k result in(40)z1,k+1=w1,kφ1χ1,k+w1,kχ2,k-χ1δ,k+1=K1z1,k,where K1=diagk11,k21,k31 with |k11|,|k21|,|k31|<1. The desired value χ2δ,k for the pseudocontrol input χ2,k is calculated from (40) as(41)χ2δ,k=w1,k-1-w1,kφ1χ1,k+χ1δ,k+1+K1z1,k.At the second step, we introduce a new variable as (42)z2=x2,k-χ2δ,k.Then using (38) and introducing the desired dynamics for z2,k result in(43)z2,k+1=w2,kφ2χ1,k,χ2,k+w2,kχ3,k-χ2δ,k+1=K2z2,k,where K2=diag{k12,k22} with |k12|,|k22|<1. The desired value χ3δ,k for the pseudocontrol input χ3,k is calculated from (43) as(44)χ3δ,k=w2,k-1-w2,kφ2χ1,k,χ2,k+χ2δ,k+1+K2z2,k.At the third step, we introduce a new variable as(45)z3=x3,k-χ3δ,k.Taking one step ahead, we have(46)z3,k+1=w3,kφ3χ1,k,χ2,k,χ3,k+w3,kuk-χ3δ,k+1,where uk is defined as(47)uk=-12Rzk+gTxkPgzk-1×gTxkPfxk-xδ,k+1,where the controllers parameters are selected heuristically as(48)P=1001,w1,k′=cos⁡(x3)cos⁡(x3)sin(x3)sin(x3)W-1W-1,w2,k′=1001,w3,k′=1001.


## 8.1. Neural Identification Design

The physical parameters for the mobile robot simulations are selected as(35)W=0.75m,Im=0.0025kgm2,d=0.3m,Ra=diag2.5,2.5Ω,r=0.15m,La=diag0.048,0.048H,mc=30kg,KE=diag0.02,0.02V/rad/s,mw=1kg,N=diag62.55,62.55,Ic=15.625kgm2,KT=diag0.2613,0.2613Nm/A,Iw=0.005kgm2,dm1=dm2=0.5N.It is important to note that these parameters are considered unknown for the controller design and are only included for simulation purposes. Then, we apply the neural identifier, developed in Section6, to obtain a discrete-time neural model for the electrically driven nonholonomic mobile robot (2), with n=7 trained with the EKF [20], as follows:(36)x1,k+1=w11,kSχ11,k+w12,kSχ12,k+w111′χ3+w112′χ4,x2,k+1=w21,kSχ11,k+w22,kSχ12,k+w121′χ3+w122′χ4,x3,k+1=w31,kSχ11,k+w32,kSχ12,k+w131′χ3+w131′χ4,x4,k+1=w41,kSχ11,k+w42,kSχ12,k+w43,kSχ21,kx4,k+1=+w44,kSχ31,k+w2′χ6,x5,k+1=w51,kSχ11,k+w52,kSχ12,kx4,k+1=+w53,kSχ22,k+w54,kSχ32,k+w2′χ7,x6,k+1=w61,kSχ11,k+w62,kSχ12,kx4,k+1=+w63,kS(χ21,k)+w64,kS(χ31,k)+w3′u11,x7,k+1=w71,kSχ11,k+w72,kSχ12,kx4,k+1=+w73,kS(χ22,k)+w74,kS(χ32,k)+w3′u12,where x1 and x2 identify the x and y coordinates, respectively; x3 identifies the robot angle; x4 and x5 identify the angular velocities of right and left wheels, respectively; finally, x6 and x7 identify the motor currents, respectively. The NN training is performed online, and all of its states are initialized in a random way. The RHONN parameters are heuristically selected as(37)P10=1×108,R10=1×104,Q10=5×105,P20=1×102,R20=5×104,Q20=5×105,P30=1×108,R30=1×104,Q30=5×105,P40=1×102,R40=1×101,Q40=1×101,P50=1×102,R50=1×101,Q50=1×101,P60=1×102,R60=1×103,Q60=1×103,P70=1×102,R70=1×103,Q70=1×103.It is important to consider that for the EKF-learning algorithm the covariances are used as design parameters [21, 24].


## 8.2. Control Synthesis

In order to facilitate the controller synthesis, we rewrite neural network (36) in a block structure form as(38)x1,k+1=x1,k+1x2,k+1x3,k+1=w1,kφ1χ1,k+w1,kχ2,k,x2,k+1=x4,k+1x5,k+1=w2,kφ2χ1,k,χ2,k+w2,kχ3,k,x3,k+1=x6,k+1x7,k+1=w3,kφ3χ1,k,χ2,k,χ3,k+w3,kukwith χ1,k, χ2,k, χ3,k, φ1, φ2, φ3, w1,k, w2,k, w3,k, w1,k, w2,k, and w3,k being of appropriated dimension according to (38).The goal is to force the statex1,k to track a desired reference signal χ1δ,k. This is achieved by designing a control law as described in Section 7. First the tracking error is defined as (39)z1,k=x1,k-χ1δ,k.Then using (38) and introducing the desired dynamics for z1,k result in(40)z1,k+1=w1,kφ1χ1,k+w1,kχ2,k-χ1δ,k+1=K1z1,k,where K1=diagk11,k21,k31 with |k11|,|k21|,|k31|<1. The desired value χ2δ,k for the pseudocontrol input χ2,k is calculated from (40) as(41)χ2δ,k=w1,k-1-w1,kφ1χ1,k+χ1δ,k+1+K1z1,k.At the second step, we introduce a new variable as (42)z2=x2,k-χ2δ,k.Then using (38) and introducing the desired dynamics for z2,k result in(43)z2,k+1=w2,kφ2χ1,k,χ2,k+w2,kχ3,k-χ2δ,k+1=K2z2,k,where K2=diag{k12,k22} with |k12|,|k22|<1. The desired value χ3δ,k for the pseudocontrol input χ3,k is calculated from (43) as(44)χ3δ,k=w2,k-1-w2,kφ2χ1,k,χ2,k+χ2δ,k+1+K2z2,k.At the third step, we introduce a new variable as(45)z3=x3,k-χ3δ,k.Taking one step ahead, we have(46)z3,k+1=w3,kφ3χ1,k,χ2,k,χ3,k+w3,kuk-χ3δ,k+1,where uk is defined as(47)uk=-12Rzk+gTxkPgzk-1×gTxkPfxk-xδ,k+1,where the controllers parameters are selected heuristically as(48)P=1001,w1,k′=cos⁡(x3)cos⁡(x3)sin(x3)sin(x3)W-1W-1,w2,k′=1001,w3,k′=1001.


## 9. Simulation Results

This section presents the simulation results of the proposed approach. The simulations have been performed using Simulink. In the simulation the robot moves under the action of the proposed controller; the controller uses as references the velocities provided by the visual feedback. In the simulation the initial pose of the robot was000⊤, and the desired pose was a rotation about the z-axis Rz(16.5757∘) and a translation 2.5197-0.4180⊤. The camera frame is related with the robot frame with a rotation Rx(π/2)Rz(π/2) and a translation 00-0.13⊤. The sampling time of the simulation was T=0.04s.In Figure3 we present the camera motion in the 3D space. Figure 4 shows the identification performance for x-axis, y-axis, and θ angle. Figure 5 shows the trajectory tracking results. In Figure 6 we present the tracking errors. In Figure 7 we show the applied control signal for the left and right wheels. Figure 8 presents the current identification for simulation in left and right wheels. Finally, Figure 9 shows the angular velocity identification for simulation in left and right wheels.Figure 3
Camera trajectory in 3D space.Figure 4
x-axis identification (a), y-axis identification (b), and θ angle (c); plant signal in solid line and neural signal in dashed line.
(a)
(b)
(c)Figure 5
Trajectory tracking result for simulation (plant signal in solid line and neural signal in dashed line).Figure 6
Tracking errors,x-axis (a), y-axis (b), and θ angle (c).
(a)
(b)
(c)Figure 7
Applied control signal for the left and right wheels, respectively.
(a)
(b)Figure 8
Current identification for simulation in left and right wheels, respectively (plant signal in solid line and neural signal in dashed line).
(a)
(b)Figure 9
Angular velocity identification for simulation in left and right wheels, respectively (plant signal in solid line and neural signal in dashed line).
(a)
(b)


### 9.1. Comparison

In order to compare the proposed control scheme with respect to previous works as presented ones in [3], Table 1 is included, which is described as follows: the controllers used in this comparison are (1) Neural Backstepping Controller (NBC) [3], (2) High Order Sliding Mode (HOSM) controller [3], and (3) inverse optimal neural controller (IONC) and are proposed in this paper.Table 1
Comparison between inverse optimal neural controller (IONC) with respect to Neural Backstepping Controller (NBC) and High Order Sliding Mode (HOSM) controller.
Method
Mean value
Standard deviation
NBC
−0.0149
0.0894
HOSM
−0.0223
0.0967
IONC
0.0034
0.0398


## 9.1. Comparison

In order to compare the proposed control scheme with respect to previous works as presented ones in [3], Table 1 is included, which is described as follows: the controllers used in this comparison are (1) Neural Backstepping Controller (NBC) [3], (2) High Order Sliding Mode (HOSM) controller [3], and (3) inverse optimal neural controller (IONC) and are proposed in this paper.Table 1
Comparison between inverse optimal neural controller (IONC) with respect to Neural Backstepping Controller (NBC) and High Order Sliding Mode (HOSM) controller.
Method
Mean value
Standard deviation
NBC
−0.0149
0.0894
HOSM
−0.0223
0.0967
IONC
0.0034
0.0398


## 10. Experimental Results

In this section, we present the experimental results obtained by applying the proposed approach. The mobile robot and the visual sensor used in the tests are shown in Figure10. The sensor used in this work was a Kinect sensor; this sensor has a perspective camera, an IR emitter, and IR depth sensor which are used to estimate the depth of the feature.Figure 10
Differential drive robot, with Kinect sensor.The camera calibration matrix of our Kinect perspective camera is(49)K=512.576280313.727410510.60427254.04683001.The visual feature used in this work is the center of a circle. The target object contains one circle which is segmented using an hsv segmentation; then its centroid is used as features for the task, Figure11.Figure 11
Feature tracking process. (a) HSV conversion, (b) HSV segmentation, and (c) detected feature (centroid of circle).
(a)
(b)
(c)The initial and desired pose of the robot are shown in Figure12.Figure 12
Initial pose (a), desired pose (b).
(a)
(b)Figure13 shows the identification performance for x-axis, y-axis, and θ angle. In Figure 14 we present the tracking errors. We have to note that the target is at a distance of approximately 3m and the linear velocity of the robot is 0.2m/s, and therefore the algorithm takes approximately 15 s to converge to zero.Figure 13
x-axis identification (a), y-axis identification (b), and θ angle (c); plant signal in solid line and neural signal in dashed line.
(a)
(b)
(c)Figure 14
Tracking errors,x-axis (a), y-axis (b), and θ angle (c).
(a)
(b)
(c)In Figure15 we show the applied control signal to the left and right wheels. Figure 16 presents the current identification of the left and right wheels.Figure 15
Applied control signal to the left and right wheels, respectively.
(a)
(b)Figure 16
Current identification of the left and right wheels, respectively (plant signal in solid line and neural signal in dashed line).
(a)
(b)Finally, Figure17 shows the angular velocity identification of the left and right wheels.Figure 17
Angular velocity identification of the left and right wheels, respectively (plant signal in solid line and neural signal in dashed line).
(a)
(b)It is important to note that differences between simulation and experimental results are due to some reasons found in real-time implementations as parametric uncertainties, external disturbances, unmodeled dynamics, limits on actuators, delays, and differences on processing times, among other circumstances that difficult real-time implementations, making them a truly difficult task, especially integrating different techniques like visual servoing, automatic control, and neural identification.


## 11. Conclusions

In this work, an inverse optimal neural controller for model identification and control of mobile robots with nonholonomic constraints and visual feedback has been presented. The reference velocities for the neural controller were computed from a desired target acquired from visual sensor and tracked by a visual algorithm. From the simulations and real-time experiments we can observe that the proposed approach can effectively drive the nonholonomic mobile robot from its current pose to the desired pose. In addition, the neural identifier is able to couple with unknown external disturbances and parameter uncertainties.In the future we want to test the proposed approach with different computer vision algorithms. We will like to extend the proposed approach to omnidirectional vision systems due to its large field of view. We also want to extend the proposed approach to different robotic platforms, like UAVs.



---

*Source: 347410-2015-05-18.xml*