Intelligent Control and Cooperation
for Mobile Robots
I am making available to the public some of the tools I have developed for the control of autonomous vehicles during my years as a Master and PhD student at the University of Texas at Arlington and as a graduate research assistant at the Automation and Robotics Research Institute. If you need Simulink blocks for communication using UDP packets or serial ports, support for GigE cameras, Simulink models of rotorcraft, ideas for hardware and software design of embedded sensing devices and intelligent control algorithms for robots, then you might find something interesting here.
Part of my work was supported by the following grants:
- F.L. Lewis, "Adaptive Dynamic Programming for Continuous Time Systems and Networked Agents on Graphs," NSF grant, July 2008
- F.L. Lewis, "Supervisory Control and Nonlinear Motion Control of Networked Autonomous Teams," ARO MIPR extension grant, July 2008
- F.L. Lewis and Weijen Lee, "Secure and Reliable Wireless Communication and Fault Diagnosis for Energy Control Systems," Dept. of Energy Small Business Innovation Research (SBIR) Contract, Phase II, through SignalPro, Inc., PI Chiman Kwan, October 2008
- F.L. Lewis, "Trust Based Collaborative Control for Teams on Communication Networks," Air Force Office of Scientific Research (AFOSR), April 2009
- F.L. Lewis, "High Performance Intelligent Controller for Systems with Unknown Dynamics," DARPA SBIR Phase I, through Signal Processing, Inc, PI Chiman Kwan, June 2009
This article presents a structured flight controller for the quadrotor platform developed at the Automation & Robotics Research Institute. A simplified model is developed and its parameters are identified. It is used to design a proportional controller for stabilizing the attitude and the altitude. Quaternion representation is employed.
The testbed for the experiments consists in a quadrotor platform with on-board sensors and brushless motors, a ground computer and a remote control. The control algorithms are implemented in Simulink on the ground computer and run directly in the Matlab environment in normal or accelerated mode, allowing an instant transition between design and experiments.
|Overall control structure for the quadrotor|
Instead of the joysticks on the remote control, a pilot can use a second quad-rotor electronic board equipped with sensors to control the vehicle in a more intuitive manner. By tilting the board in different directions the pilot gives a vector velocity reference to the quadrotor. The compass is used on both the pilot board and the vehicle board such that independent of the yaw angle, the quadrotor follows the commands given by the pilot in the correct direction in the inertial reference frame. This greatly simplifies the work of the pilot and allows persons that have no previous training to control the vehicle in a natural way.
There is currently a dichotomy between optimal control and adaptive control:
- Adaptive Control algorithms learn online and give controllers with guaranteed performance for unknown systems
- Optimal Control design is performed off line and requires full knowledge of the system dynamics
In this research we designed an Optimal Adaptive Controller, which learns online in real-time and converges to optimal control solutions. For linear time-invariant systems, these controllers solve the Riccati equation online in real-time by using data measured along the system trajectories. These results show how to approximately solve the optimal control problem for nonlinear systems online in real-time, while simultaneously guaranteeing that the closed-loop system is stable, i.e. that the state remains bounded. This solution requires knowledge of the plant dynamics, but in future work it is possible to implement algorithms that only know the structure of the system and not the exact dynamics.
An actor-critic structure is used for implementing efficient reinforcement learning in real-time:
|Generic Approximate Dynamic Programming structure|
The UAVdesign.net blockset contains Simulink blocks that can be used for implementing control algorithms and hardware interfaces for unmanned robots.
|UAVdesign.net Simulink Blockset|
The most important blocks are the following:
- quaternion math
- numeric perturbation methods for Simulink models
- condinuous-discrete Kalman filter
- continuous-discrete integrator that supports quaternions
- Remote Signals blocks that allow Embedded Matlab code to run Simulink subsystems programmatically
- helicopter model
- quadrotor model
- Serial Port (using packets)
- UDP packets
- GigE Camera
All the S-functions have source code that is compatible with both Linux and Windows (32 and 64-bit). The code can be used in Normal mode, Rapid Accelerator mode and External mode.
I have selected a quadrotor as an implementation platform for optimal-adaptive control algorithms. The quadrotor is unstable, and so makes an excellent platform for testing the suitability and effectiveness of control algorithms. Its dynamics are nonlinear, but relatively simple so that nonlinear control schemes can be designed and compared. Yet the quadrotor has enough nonlinearities to pose a meaningful challenge to controller design methods. The quadrotor is highly susceptible to wind gust disturbances, so that disturbance rejection capabilities of proposed controllers can be tested.
The mechanical platform for the quadrotor is custom-built because the commercial versions available at the time were either unreliable or too expensive. The outside perimeter is surrounded by carbon fiber rods to prevent damage to the rotors in case of collisions.
The ground robot platform is actually a four-wheel-drive wheelchair. We wanted a large and reliable mechanical platform that could operate outside. The commercial robots were too expensive so I have decided to buy a wheelchair and replace its electronic system with our own, more advanced custom design. We didn't need the chair, although as a later thought it would have been interesting to let ourselves in the hands of our own control algorithms.
The wheelchair is manufactured by Magic Mobility and can carry a maximum load of 180 kg over a range of 30 km using its two 12V, 74Ah lead-acid batteries. Its length is 1.15 meters. The maximum speed that can be reached is of about 8 km/h. It has passive steering for the front wheels. The heading is changed based on the relative speed of the front wheels without any additional motor for this function. Due to the external forces acting on the wheels, a closed-loop system was necessary to maintain the stability of the heading angle and to prevent the wheels from going the full way towards left or right.
The encoders installed on the wheel shafts are magnetic in order to increase reliability compared to optical solutions. A FPGA based system inside the motor controller converts the pulses into displacement and speed information with increased resolution by measuring also the width of the encoder pulses. This mechanism provides very accurate speed information even at low speeds.
The mechanical platform is a Joker 2 fully aerobatic electric helicopter, manufactured by Minicopter Germany. The main rotor has a Bell-Hiller stabilizer bar, but it can be replaced with a rigid rotor head with no stabilizer bar at all, for improved 3D aerobatic maneuverability.
The choice of an electric helicopter instead of one powered by a combustion engine was due to system identification issues because of the fuel consumption and the change of the helicopter mass, which makes it impossible to obtain consistent measurements at every experiment. It is also easier to work with electric motors instead of combustion engines that have to be periodically tuned and have to be started manually.
Motion path planning is the process of finding a continuous path from an initial position to a prescribed final position (goal) without collision. Artificial potential field methods for obstacle avoidance have gained increased popularity among researchers in the field of mobile robots. It is generally easy to develop centralized algorithms that apply potential field methods for all robots based on complete information about their state variables. For many applications, distributed control algorithms are required to operate on each mobile robot under conditions of restricted communication channels between the robots.
The testbed for the experiments consists in a set of different mobile robot platforms with the model following model but with different parameters that result in different dynamics. Currently there are three types of robots, shown in the figure.
|Communication graph between nodes in the formation|
Each robot has on-board electronics that provides radio communication, controls the linear velocity and the heading rate using PID controllers and measures the linear acceleration, the wheels speed and the heading rate. Each robot can receive the sensor information from any other robot by radio. The same information can optionally be received by a computer that can implement centralized control or can simulate distributed control. The graph structure that describes the communication links between the robots is dictated by the actual communication conditions where some robots are too far away from others and can not maintain a reliable link with all the members of the formation, or do not have the resources to do so. The sample rate is 20 Hz. For ease of implementation and for testing various graph configurations, the formation is controlled by a computer that holds all the state information from all the robots but simulates the local, distributed control algorithms.