압둘아리스우마
                     (Abdul Aris Umar)
                     1iD
                     김정수
                     (Jung-Su Kim)
                     †iD
               
                  - 
                           
                        (Dept. of Electrical and Information Engineering, Seoul National University of Science
                        and Technology, Korea)
                        
 
               
             
            
            
            Copyright © The Korean Institute of Electrical Engineers(KIEE)
            
            
            
            
            
               
                  
Key words
               
               Mecanum-wheeled omnidirectional mobile robot, path-following, nonlinear model predictive control, ROS
             
            
          
         
            
                  1. Introduction
               
                  A mecanum-wheeled omnidirectional mobile robot (MWOMR) is one type of omnidirectional
                  mobile robot which is suitable for application in a narrow environment where a nonholonomic
                  mobile robot movement might be limited. On the other hand, MWOMR can work with that
                  environment because mecanum wheels have a different wheel shape compared to common
                  wheels. They are made up of rollers which are augmented around the wheel with angle
                  $+-45^{\circ}$. These kinds of wheels allow a mobile robot with mecanum wheels to
                  remove steering systems.
                  
               
               
                  A mecanum-wheeled omnidirectional mobile robot is expected to be able to follow varying
                  references with a specified goal. There are two kinds of problems that track varying
                  references: trajectory tracking and path following. Trajectory tracking and path-following
                  problems can track varying references using a different approach. In trajectory tracking,
                  the robot has to follow a time-dependent signal while path-following’s main objective
                  is to track a geometric curve with the timing being a secondary interest (1). The performance difference between trajectory tracking and path-following is presented
                  in (2).
                  
               
               
                  For a mecanum-wheeled omnidirectional mobile robot, several efforts have been taken
                  to control the movement of the robot. In (3)-(4), an approach adapting sliding mode is presented to track a trajectory for MWOMR,
                  which does not consider any constraints that might arise from robot dynamics and environment
                  limitations. (5) has taken an effort in formulating model predictive control for a holonomic mobile
                  robot including MWOMR but focuses only on setpoint stabilization which does not follow
                  varying references.
                  
               
               
                  Implementation of a control method to a real robot has been getting huge attention
                  in the literature. The most important problem arising in real hardware implementation
                  is the robot localization which is crucial in order to define the robot position.
                  (6) shows the results of combining the camera and encoder data to measure the position
                  of the robot and apply an explicit model predictive control to drive the robot to
                  the desired trajectory.
                  
               
               
                  This paper proposes a control framework to minimize the position error of a mecanum-wheeled
                  omnidirectional mobile robot to its desired path in real hardware. A modified nonlinear
                  model predictive path-following control is proposed to ensure that the robot moves
                  in the desired path (7). To implement the NMPC in a real MWOMR system, the combination of lidar, encoder,
                  and IMU is used to obtain the robot position. The tracking performance of NMPC and
                  average execution time per iteration are evaluated to see whether it is applicable
                  to a real robot or not.
                  
               
               
                  The rest of the paper is organized as follows. In section 2, a brief overview of the
                  dynamics of a mecanum-wheeled omnidirectional mobile robot and path-following problem
                  definition are described. In the third section is presented the MPC for path-following
                  of a mecanum-wheeled omnidirectional mobile robot and the implementation in hardware
                  using ROS. In section 4, the proposed NMPC framework is validated in simulation and
                  experiment. In section 5, the results of MPC for path-following performance in the
                  mecanum-wheeled mobile robot are presented. Finally, some conclusions are drawn in
                  the final section. 
                  
               
               
                  
                  
                        
                        
Fig. 1. Mecanum-wheeled mobile robot. The figure is reprinted from (8).
                        
                      
                  
               
             
            
                  2. Problem Definition
               
                  In this section, the dynamic model of  a mecanum-wheeled omnidirectional mobile robot
                  and the constraint describing the physical limit of the robot speed are introduced.
                  Furthermore, the path-following problem definition and goals are presented.
                  
               
               
                     2.1 Kinematics of MWOMR
                  
                     The dynamics of MWOMR can be described by
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     where the states $x=\left[p_{x}, p_{y,}, \theta\right]^{T} \in \mathbb{R}^{n}$ consist
                     of the position of the mobile robot in cartesian coordinate $[p_{x,\:}p_{y}]^{T}$
                     (m,m) and the orientation angle $\theta$ (rad), and the inputs $u=\left[v_{x}, v_{y},
                     \omega\right]^{T} \in \mathbb{R}^{m}$ are the linear speed $v_{x}$ (m/s), the lateral
                     speed $v_{y}$ (m/s), and the angular speed $\omega$ (rad/s) of the robot. Rotation
                     matrix $R(\theta_{t})$ in eq(1) is denoted as
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     The configuration of all wheels in MWOMR is essential as it determines the movement
                     of MWOMR. Fig 1 illustrates the proper orientation of each wheel. In MWOMR, a motor drives each wheel
                     separately so it can move in any direction freely. The relation of the motor’s angular
                     speed and the input vector $u$ is given by
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     where
                     
                  
                  
                     $H =\begin{pmatrix}1&& -1&& -a-b \\ 1&&1 &&a+b \\ 1&&-1 &&a+b \\ 1&& 1&&-a-b\end{pmatrix}.$
                     
                     $a$ (m) and $b$ (m) are the half of robot’s wheel base and half of robot’s wheel track,
                     respectively. $w_{m} \in \mathbb{R}^{4}$ (rad/s) is a vector which describes the angular
                     speed of each motor matching the setup in Fig 1 and $r$ (m) is the wheels’ radius. The full derivation of the mecanum-wheeled omnidirectional
                     mobile robot is presented in (8).
                     
                  
                  
                     From the relation of each motors’ speed and robot’s speed in eq(3), the robot velocity constraint is constructed as introduced in (5), 
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     where
                     
                  
                  
                     $\|H u\|_{\infty}:=\left|v_{x}\right|+\left|v_{y}\right|+(a+b)|\omega| .$
                     
                  
                  
                     This paper assumes that the states are bounded by a compact set
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                
               
                     2.2 Path-Following Problem
                  
                     There are particularly three types of control problems in order to steer the system
                     to the desired point: setpoint stabilization, trajectory tracking, and path-following.
                     The setpoint stabilization is a problem to drive the system states to a constant reference,
                     whereas trajectory tracking and path-following steer the states to follow varying
                     references. 
                     
                  
                  
                     The objective of  the trajectory tracking is to follow a certain reference in a specified
                     time. This may limit the accuracy because it does not incorporate the hardware limit
                     that is already stated in eq(4) and eq(5). In contrast, the goal of path-following is to reach and follow a geometric path
                     that does not depend on the time variable. Path-following does not require the system
                     to be at one point in a specific time. 
                     
                  
                  
                     In the path-following, the references to be tracked is denoted as path $P$ which can
                     be defined as a set of points $r$ parameterized by a dimensionless $s$
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     where the $s$ is called a path parameter. The map $p: \mathbb{R} \mapsto \mathbb{R}^{n}$
                     is assumed to be continuously differentiable. Note that the time evolution of $s(t)\in[s_{0},\:s_{1}]$
                     is not known a priori, but it is another degree of freedom to choose in this problem.
                     Here, a virtual input $\phi_{t}$ is chosen to parameterize the evolution of $s_{t}$
                     as
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     In the path-following, the controller is designed to achieve these conditions (1):
                     
                  
                  
                     i)    Path convergence
                     
                  
                  
                     $\lim _{t \rightarrow \infty}\left\|x_{t}-p\left(s_{t}\right)\right\|=0$       
                     
                  
                  
                     ii)   Forward motion
                     
                  
                  
                     $\dot{s}_{t} \geq 0$ and $\lim _{t \rightarrow \infty}\left\|s_{t}-s_{1}\right\|=0$
                     
                  
                  
                     iii)   Constraint satisfaction
                     
                  
                  
                     $x_{t} \in X, u_{t} \in U \quad \forall t \in\left[t_{0}, \infty\right)$
                     
                  
                  
                     Condition i) ensures that the system moves along the desired path. Condition ii) makes
                     sure that the robot is moving forward along the path. The last condition guarantees
                     that the system follows the hardware limitations.
                     
                  
                
             
            
                  3. Model Predictive Path-Following Control
               
                  In this paper, a discrete-time system of MWOMR dynamics eq(1) and path parameter evolution eq(7) are considered to be used in the model predictive control. A simple Euler’s formula
                  is used to discretize the system and path parameter evolution as
                  
               
               
                  
                  
                  
                  
                  
                  
               
               
                  
                  
                  
                  
                  
                  
               
               
                  where $t_{s}$ is the sampling time.
                  
               
               
                     3.1 MPC Formulation for Path-Following
                  
                     In order to calculate the optimal input for path-following problem, the following
                     cost function is considered
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     where $P,\: Q,\:$ and $R$ are positive definite and $(·)_{k+j | k}$ means the predicted
                     value at time step $k+j$ based on the value measured at time step $k$. The first term
                     of eq(9) ensures that the system tracks the specified path, and the third term forces the
                     robot to move forward along the specified path.
                     
                  
                  
                     Suppose that $bold{u}=\left\{u_{k|k},\: u_{k+1|k},\:\ldots ,\: u_{k+N-1|k}\right\}$
                     and $bold\Phi =\left\{\phi_{k|k},\:\phi_{k+1|k,\:}\ldots ,\:\phi_{k+N-1|k}\right\}$
                     denote the sequences of all predicted inputs and virtual inputs, respectively. Assume
                     that $x_{0}=\left[p_{x},\: p_{y},\:\theta\right]^{T}$ and $s_{0}$ are given, the MPC
                     control law is obtained by solving the following optimization problem
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     subject to
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                  
                     The first element of sequence $bold{u}$, $u_{k|k}$, is applied to the robot and $s_{k+1|k}$
                     becomes the next initial value $s_{0}$ of problem eq(10).
                     
                  
                  
                     In the case where no initial condition for parameter $s$ is given when $t=0$, $s_{t_{0}}$
                     can be obtained by solving the following optimization problem:
                     
                  
                  
                     
                     
                     
                     
                     
                     
                  
                
               
                     3.2 MPC Implementation in ROS
                  
                     Since MPC needs the state of the robot to solve the optimization problem, knowing
                     the robot position and orientation angle becomes a critical issue. To measure the
                     state of the robot, this work uses three kinds of sensor to get the robot position
                     and rotation angle: encoder, IMU, and lidar. The data from each sensor is fused using
                     EKF localization inside a robot localization package in ROS (9). The results of the localization are the robot position and orientation angle and
                     can be accessed through ROS localization nodes.
                     
                  
                  
                     After collecting the required information for the optimization problem, the MPC problem
                     can be solved directly from the robot. In ROS, the MPC problem is defined using CasADi
                     as a tool to model nonlinear optimizations (10). CasADi creates an optimization object only once before the robot starts. Then, the
                     optimal control input can be computed by applying the IPOPT algorithm to solve the
                     optimization problem eq(10) (11).
                     
                  
                  
                     The optimal control input, which is the robot speed commands, is passed through the
                     robot and converted to wheels’ angular speed by eq(3). The MPC implementation in MWOMR using ROS is illustrated in Fig 2.
                     
                  
                  
                     
                     
                           
                           
Fig. 2. MPC implementation using ROS
                         
                     
                  
                
             
            
                  4. Simulation and Experiment Setup
               
                  In this section, the setup for validating the MPC formulation in simulation and hardware
                  experiment is presented. Two kinds of paths are used to examine the MPC performance
                  for the path- following problem in MWOMR. Both simulation and hardware experiment
                  deal with circle path and 8-shaped path as described in eq(12) and eq(13), respectively,
                  
               
               
                  
                  
                  
                  
                  
                  
               
               
                  
                  
                  
                  
                  
                  
               
               
                  where $p_{x_{e}}$ and $p_{y_{e}}$ are the differences between the reference and current
                  position and $s\in[0 ,\:1]$. 
                  
               
               
                  Since MWOMR can move in any direction without changing the orientation angle, the
                  performance comparison between the robot moving with fixed and varying orientation
                  angle is evaluated. Varying the orientation angle is considered in the path formulation
                  eq(12) and eq(13). In order to reach a path with a fixed orientation angle, $\theta_{path}$ can be
                  assigned to a constant $c$ (rad) as the desired angle of the robot.
                  
               
               
                  
                  
                        
                        
Fig. 3. (a) Mobile robot model in Gazebo, (b) Experimental mobile robot
                      
                  
               
               
                     4.1 Simulation Setup
                  
                     The simulation is performed in the GAZEBO simulator using Nexus Robot 4WD mecanum
                     wheel mobile robot model as illustrated in Fig 3a. The simulation is carried out in Ubuntu 18.04 LTS in a computer with AMD Ryzen 3950X.
                     Table 1 summarizes all parameters and weights used in NMPC formulation for simulation.
                     
                  
                  
                     
                     
                     
                     
                           
                           
Table 1. Robot parameters and weights for simulation
                        
                        
                           
                           
                           
                                 
                                    
                                       | 
                                          
                                       			
                                        Parameters 
                                       			
                                     | 
                                    
                                          
                                       			
                                        Value 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        Wheel track 
                                       			
                                     | 
                                    
                                          
                                       			
                                        0.3 m 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        Wheel base 
                                       			
                                     | 
                                    
                                          
                                       			
                                        0.3 m 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        Wheel's radius 
                                       			
                                     | 
                                    
                                          
                                       			
                                        0.05 m 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        Maximum wheel's speed 
                                       			
                                     | 
                                    
                                          
                                       			
                                        12 rad/s 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        Q weights 
                                       			
                                     | 
                                    
                                          
                                       			
                                        diag([20,20,10]) 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        R weights 
                                       			
                                     | 
                                    
                                          
                                       			
                                        diag([5,5,5]) 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        P weights 
                                       			
                                     | 
                                    
                                          
                                       			
                                        15 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        MPC prediction horizon 
                                       			
                                     | 
                                    
                                          
                                       			
                                        15 
                                       			
                                     | 
                                 
                              
                           
                        
                      
                     
                  
                
               
                     4.2 Experiment Setup
                  
                     Jetson Nano 4GB is installed on the robot to solve the MPC optimization problem. The
                     picture of the developed MWOMR is given in Fig 3b. The robot’s parameters and weights are given in Table 2.
                     
                  
                  
                     
                     
                     
                     
                           
                           
Table 2. Robot parameters and weights for experiment
                        
                        
                           
                           
                           
                                 
                                    
                                       | 
                                          
                                       			
                                        Parameters 
                                       			
                                     | 
                                    
                                          
                                       			
                                        Value 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        Wheel track 
                                       			
                                     | 
                                    
                                          
                                       			
                                        0.215 m 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        Wheel base 
                                       			
                                     | 
                                    
                                          
                                       			
                                        0.165 m 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        Wheel's radius 
                                       			
                                     | 
                                    
                                          
                                       			
                                        0.039 m 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        Maximum wheel's speed 
                                       			
                                     | 
                                    
                                          
                                       			
                                        33 rad/s 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        Q weights 
                                       			
                                     | 
                                    
                                          
                                       			
                                        diag([15,15,10]) 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        R weights 
                                       			
                                     | 
                                    
                                          
                                       			
                                        diag([5,5,5]) 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        P weights 
                                       			
                                     | 
                                    
                                          
                                       			
                                        10 
                                       			
                                     | 
                                 
                                 
                                       | 
                                          
                                       			
                                        MPC prediction horizon 
                                       			
                                     | 
                                    
                                          
                                       			
                                        15 
                                       			
                                     | 
                                 
                              
                           
                        
                      
                     
                  
                
             
            
                  5. Results
               
                  In this section, the performance of the proposed method with a circle and 8-shaped
                  path is presented. First, the proposed method is validated if it can follow a circle
                  and 8-shaped trajectories in simulation. The results of tracking performance of both
                  paths are shown in Fig 4 and Fig 5, respectively. From the figures, it is verified that MPC path-following can steer
                  the robot to move along the specified path while satisfying the robot dynamics and
                  constraints.
                  
               
               
                  
                  
                        
                        
Fig. 4. Tracking performance for a circle path
                      
                  
               
               
                  
                  
                        
                        
Fig. 5. Tracking performance for a 8-shaped path
                      
                  
               
               
                  In order to look into the robustness of the proposed design against load variations,
                  the NMPC based tracking controller is applied to the circle shape reference trajectory
                  with three different loads: no load, 20 kg load, and 40 kg load. Fig 6 demonstrates that the proposed NMPC results in acceptable tracking performance with
                  different loads.
                  
               
               
                  
                  
                        
                        
Fig. 6. Tracking performance for load variations
                      
                  
               
               
                  Next, the experiment results are presented when the method is applied to the real
                  hardware using two kinds of paths with fixed and varying orientation angle. The results
                  of a circle and 8-shaped paths are shown in Fig 7 and Fig 8, respectively. From the figures, the robot could follow the path sufficiently well
                  with both fixed and varying orientation angle.
                  
               
               
                  In addition to tracking performance, the average time execution per iteration is given
                  in order to show that the computation time, both in simulation and real hardware,
                  is less than the robot sampling time. The sampling time is set to 0.1 s which adopts
                  the sampling time in the real robot lidar. The average execution time taken for completing
                  one iteration is summarized in Table 3.
                  
               
               
                  
                  
                  
                  
                        
                        
Table 3. Average execution time
                     
                     
                        
                        
                        
                              
                                 
                                    | 
                                       
                                    			
                                     Case 
                                    			
                                  | 
                                 
                                       
                                    			
                                     Average time in simulation 
                                    
                                    			
                                    (Ryzen 3950X) 
                                    			
                                  | 
                                 
                                       
                                    			
                                     Average time in real robot 
                                    
                                    			
                                    (Jetson Nano) 
                                    			
                                  | 
                              
                              
                                    | 
                                       
                                    			
                                     Circle path with fixed orientation 
                                    			
                                  | 
                                 
                                       
                                    			
                                     3.476 ms 
                                    			
                                  | 
                                 
                                       
                                    			
                                     31.579 ms 
                                    			
                                  | 
                              
                              
                                    | 
                                       
                                    			
                                     Circle path with varying orientation 
                                    			
                                  | 
                                 
                                       
                                    			
                                     3.010 ms 
                                    			
                                  | 
                                 
                                       
                                    			
                                     36.184 ms 
                                    			
                                  | 
                              
                              
                                    | 
                                       
                                    			
                                     8-shaped path with fixed orientation 
                                    			
                                  | 
                                 
                                       
                                    			
                                     3.153 ms 
                                    			
                                  | 
                                 
                                       
                                    			
                                     31.074 ms 
                                    			
                                  | 
                              
                              
                                    | 
                                       
                                    			
                                     8-shaped path with varying orientation 
                                    			
                                  | 
                                 
                                       
                                    			
                                     3.355 ms 
                                    			
                                  | 
                                 
                                       
                                    			
                                     36.072 ms 
                                    			
                                  | 
                              
                           
                        
                     
                   
                  
               
               
                  
                  
                        
                        
Fig. 7. (a) Tracking circle path with fixed orientation; (b) Tracking circle path
                           with varying orientation. Arrows indicate the orientation angle of the robot.
                        
                      
                  
               
               
                  
                  
                        
                        
Fig. 8. (a) Tracking 8-shaped path with fixed orientation; (b) Tracking 8-shaped path
                           with varying orientation. Arrows indicate the orientation angle of the robot.
                        
                      
                  
               
             
            
                  6. 결 론
               
                  In this paper, a control framework for mecanum-wheeled mobile robot using model predictive
                  control is presented. To this end, a nonlinear model predictive path-following control
                  is designed for the mobile robot first. Then, real hardware setup is developed in
                  which the designed MPC is implementable with several sensors. Simulation and experiment
                  results show that the mobile robot tracks given trajectories successfully while satisfying
                  all the physical constraints. Moreover, the optimization problem for MPC can be solved
                  during two consecutive system sampling times in real embedded systems. 
                  
               
               
                  Future work along this direction includes considering a speed reference as well in
                  the middle of path following of the mecanum-wheeled mobile robot.
                  
               
             
          
         
            
                  Acknowledgements
               
                  This work was supported by the Industrial Fundamental Technology Development Program
                  (No. 20014786, Development of AI-based Concrete Slab Finishing Automation System)
                  funded by the Ministry of Trade, Industry & Energy (MOTIE) of Korea
                  
               
             
            
                  
                     References
                  
                     
                        
                        J. Matschek, T. Bäthge, T. Faulwasser, R. Findeisen, 2019, Nonlinear Predictive Control
                           for Trajectory Tracking and Path Following: An Introduction and Perspective, in Handbook
                           of Model Predictive Control S. V Raković and W. S. Levine Eds. Cham: Springer International
                           Publishing, pp. 169-198

 
                      
                     
                        
                        A. P. Aguiar, J. P. Hespanha, P. V Kokotovic, 2005, Path- following for nonminimum
                           phase systems removes performance limitations, IEEE Trans. Automat. Contr., Vol. 50,
                           No. 2, pp. 234-239

 
                      
                     
                        
                        Z. Sun, S. Hu, D. He, W. Zhu, H. Xie, J. Zheng, 2021, Trajectory-tracking control
                           of Mecanum-wheeled omnidirectional mobile robots using adaptive integral terminal
                           sliding mode, Comput. Electr. Eng., Vol. 96, pp. 107500

 
                      
                     
                        
                        Z. Sun, H. Xie, J. Zheng, Z. Man, D. He, 2021, Path- following control of Mecanum-wheels
                           omnidirectional mobile robots using nonsingular terminal sliding mode, Mech. Syst.
                           Signal Process., Vol. 147, pp. 107128

 
                      
                     
                        
                        M. W. Mehrez, K. Worthmann, J. P. V Cenerini, M. Osman, W. W. Melek, S. Jeon, 2020,
                           Model Predictive Control without terminal constraints or costs for holonomic mobile
                           robots, Rob. Auton. Syst., Vol. 127

 
                      
                     
                        
                        Y. Jin, S. Han, S. Lee, May 2019, Implementation of tracking control system for autonomous
                           mobile robot based on state estimation with multi-sensor, Trans. KIEE, Vol. 68, No.
                           5, pp. 678-684

 
                      
                     
                        
                        T. Faulwasser, R. Findeisen, 2016, Nonlinear Model Predictive Control for Constrained
                           Output Path Following, IEEE Trans. Automat. Contr., Vol. 61, No. 4, pp. 1026-1039

 
                      
                     
                        
                        K. M. Lynch, F. C. Park, 2017, Modern Robotics, Cambridge University Press

 
                      
                     
                        
                        T. Moore, D. Stouch, 2016, A Generalized Extended Kalman Filter Implementation for
                           the Robot Operating System, in Intelligent Autonomous Systems 13, pp. 335-348

 
                      
                     
                        
                        J. A. E. Andersson, J. Gillis, G. Horn, J. B. Rawlings, M. Diehl, 2019, CasADi: a
                           software framework for nonlinear optimization and optimal control, Math. Program.
                           Comput., Vol. 11, No. 1, pp. 1-36

 
                      
                     
                        
                        A. Wächter, L. T. Biegler, 2006, On the implementation of an interior-point filter
                           line-search algorithm for large-scale nonlinear programming, Math. Program., Vol.
                           106, No. 1, pp. 25-57

 
                      
                   
                
             
            저자소개
             
             
             
            
                  압둘 아리스 우마(Abdul Aris Umar)
 
            
               He received his B.E. degree in Electrical Engineering from Universitas Indonesia,
               Depok, Indonesia in 2018. 
               
            
            
               He is a Ph.D. candidate at the Department of Electrical and Information Engineering,
               Seoul National University of Science and Technology (SeoulTech). 
               
            
            
               His research interests include optimal control, learning-based control, and its application
               to robotics.
               
            
            
            
               He received B.S,, M.S. and Ph.D. degrees in electrical engineering from Korea University,
               Seoul, South Korea, in 1998, 2000, and 2005, respectively. 
               
            
            
               He was a postdoctoral researcher at Seoul National University in South Korea, the
               University of Stuttgart in Germany and the University of Leicester in the UK from
               March 2005 to February 2006, from March 2006 to December 2007, from January 2008 to
               January 2009 respectively. 
               
            
            
               He is currently a full professor in the Dept. of Electrical and Engineering Information
               at Seoul National University of Science and Technology, Seoul, South Korea since 2009.
               
               
            
            
               His research interests include model predictive control, distributed control, application
               of deep learning to energy systems and robotics.