On the Development of Tethra Submersible Vehicle for Autonomous and Remotely Operated Modes L MOLNAR, E OMERDIC, P VAN DE VEN, D TOAL, C FLANAGAN Electronics and Computer Engineering Department University of Limerick Limerick, IRELAND Abstract: - Tethra is a prototype autonomous underwater vehicle (AUV), designed at the University of Limerick, to carry out research in underwater robotics and control. The vehicle adopts a behaviour-based control paradigm. In this paper we report on the design of the Tethra test platform and the embedded controller development for investigating classical and more advanced control approaches. The Tethra test platform includes the development of AUV simulator, which is used as a foundation for off-line controller tuning and testing. Key-Words: - Autonomous Underwater Vehicle, Embedded Controller, Behaviour Based Control Architectures, AUV Simulator 1 Introduction The Tethra robot platform provides a means to evaluate different combinations of sensors, actuators and controller configurations. For the Tethra AUV, an open frame multiple thrusters design has been adopted to meet vehicle manoeuvrability requirements for target applications such as transect tracking during marine surveys and underwater filming following benthic contours or bottom following. This paper considers the effectiveness of a suite of behaviours within a subsumption control architecture on the Tethra AUV using real test data. Embedded system and control architecture development is reported here, including integration of sensors. Our goal is to make the robot fully autonomous through the integration of a range of sensory input systems and robot actuators to an onboard controller. A control architecture based on a modified version of the subsumption control, developed by Brooks (1986) at MIT has been adopted for use in the control of the Tethra AUV [1]. 2 Tethra Test Platform Architecture The overall architecture of the Tethra test platform is shown in Fig. 1. Test platform consists of a craft and a surface unit, which are described in the following in more details. 2.1 Surface unit The Surface unit includes laptop, joystick and radio control unit. The laptop is running the LabVIEW Graphical User Interface (GUI) application to control the vehicle in pre-autonomous mode using a joystick as input device. In addition to joystick, the vehicle can be controlled by remote radio control (R/C) unit. The radio link is intended for use solely when the craft is on the surface for launch and retrieval of the vehicle and to facilitate a manual trim of craft buoyancy to a slightly positively buoyant state prior to switching to autonomous control [2]. A bidirectional serial data communication between Tethra’s onboard Pentium processor board and LabVIEW GUI application has been established through an RS232 serial link. Sensor measurements are packed into a data string and transmitted from Tethra to the GUI application. At the same time, parameters of low-level controllers and commanded inputs are packed into a control string and transmitted from GUI application to Tethra. The same GUI application is used to drive Tethra model in a virtual pool using AUV simulator. The AUV simulator is connected with the GUI application through TCP/IP connection and can be started on the same or different PC. Features of the LabVIEW GUI application are: on-line sensor data retrieval and display, actuation of the vehicle with different command inputs for identification purpose, on-line visualisation of feasible region, on-line tuning of low-level controllers, data storage for off-line analysis and exploration. The surface PC also hosts a Kermit client to allow terminal emulation and file transfer with the craft’s onboard embedded computer. 2.2 Craft equipment 2.2.1 Embedded controller The main onboard computer is a CM/P5e embedded 166 MHz Pentium CPU module with 32 Mbytes of RAM and 8 Mbytes of “disk on chip” flash memory. The module conforms to the PC104 standard, Inertial Measurement Unit (IMU). Having a second CPU module allows greater flexibility in the future for further sensor/actuator or control interface development and testing. Scanning or profiling Fig. 1 Overall architecture of Tethra test platform allowing a range of useful I/O expansion boards to be mapped into its memory space. Tethra has currently three I/O coprocessor boards based on the 16C74 PIC micro controller to interface sensors and actuators to the onboard computer. The first I/O coprocessor board is responsible for sensor data acquisition; sensors such as the electronic magnetometer, pressure/depth and ballast transducers, and the six Tritech precision altimeters are interfaced to this board. The second coprocessor board is closing the control loop between the current transducers and PIC microcontroller based board and also generates the required PWM control signals. The third board is responsible for variable buoyancy control by actuating the ballast tanks’ valves and it also hosts the failsafe behaviour which will determine the craft to drive up to the surface in case of an emergency by blowing the ballast tanks with air [2]. The second onboard computer being used is an embedded 300 MHz Geode CPU module with 128 Mbytes of RAM and 2 Gigabytes of IDE flash-drive. This board is used as interface to accommodate sonar sensors can be integrated at a later stage and used by higher-level behaviour based competencies to allow the robot to map out its immediate environment in more detail; or Doppler velocity log could be added as external sensor reference to a custom Kalman filter implementation for navigational aiding. 2.2.2 Sensor integration The embedded on-board controller relies on sensory input from a range of sensors in order to exhibit an awareness of its environment and to deliver decisive control for the actuators. A suite of sensors such as the Vector2XG electronic magnetometer/compass, pressure/depth and ballast transducers, the Xsens MT9 IMU and six Tritech precision altimeters have been already integrated to the craft’s onboard computers and thoroughly tested. For a more detailed description of these sensors the reader should refer to [3] and [4]. The latest additions to Tethra’s sensor system include four LAS50-TP Hall Effect based current transducers for thrusters drawn current measurement. Tethra employs electric outboard trolling motors. Thruster control loop is open, that is, there is not velocity or current feedback for control purpose, as would be typical on commercial submersible robot board will fully support both hardware and software interfacing requirements of these sensors. Display (Heading, Depth, etc.) On-board camera Monitor ROV pilot Hand Control Unit Signal Conditionin g ROV mode τd Control allocator u Actuators τ ROV/ AUV AUV mode Low-level Controllers Navigatio n (Sensors, IMU, ...) Mission Planning Guidance Fig. 2 Tethra control architecture thrusters. To alleviate this drawback, low-level torque controllers are intended to be developed by closing the thrusters control loop using the LAS50TP current transducers. The current transducers will be interfaced to the PIC coprocessor board, responsible for the motors PWM control. 2.2.3 Embedded control software The control software for the main embedded CPU board is developed in Borland C, and runs under the pre-emptive, real-time multitasking operating system MicroC/OS-II. Visual C++ is used to develop the control software for the Geode processor based embedded CPU board. The MT9 IMU capabilities are integrated in software application by using the MT9 Software Development Kit, which incorporates the IMU as a COM object. A custom Discrete Kalman Filter was designed in Matlab to improve the estimation of yaw (heading) and yaw rate. Matlab COM builder was used to create the DKF COM object (.dll file), which is easy integrated to control software developed in Visual C++. In the near future integration of the state-of-theart navigational sensors is envisaged such as the RDI Workhorse Navigator DVL and the IXSEA UPHINS Inertial Navigation System. The Geode CPU board and the afferent serial port expansion 3 Control Architecture 3.1 Overview Tethra’s control architecture is shown in Fig. 2. In ROV mode, an ROV pilot uses Hand Control Unit (HCU) and information from sensors and realtime video from the on-board camera to generate commands, which cause the vehicle to follow the desired trajectory according to the mission objective. These commands can be interpreted as a desired forces and moments among axes in the body-fixed frame. Raw signals from the HCU pass through the Signal Conditioning block (including low-pass prefilter) to smooth out the commanded input, in order to prevent abrupt changes in set points and to protect the thrusters from damage. The output of the Signal Conditioning block is the vector of desired forces and moments (virtual control input) τ d . The task of the control allocator is to find control settings for individual actuators (true control input) u such that τ τ d , where τ is vector of propulsion forces and moments, exerted by the actuators after actuation with the control vector u . In contrast to ROV mode, an ROV pilot is excluded from the control loop in AUV mode. In order to achieve mission objective, the guidance module uses actual knowledge about the environment and sensors’ measurements to find a reference inputs for a set of low-level controllers (heading controller, depth controller, etc.). The core of a guidance module is a reactive, behaviour-based controller, which takes care of the real time issues related to the interactions with the environment. The outputs of the low-level controllers are integrated into a vector that is similar to the output of the HCU in ROV mode. The control allocator performs in exactly the same way as in the previous case. Hence, from the control allocator point of view, it does not matter how the virtual control input τ d is generated (by the ROV pilot or the control law). The control allocation algorithm is the same for both structures. The task of the control allocator in both cases is to determine appropriate control settings for individual actuators, which produce the desired set of forces and moments [5]. 3.2 Simple heading, depth and altitude behaviours In early design, Proportional plus Integral (PI) controllers have been developed for heading, depth and altitude control. With these simple controllers, ‘Maintain Heading’, ‘Maintain Depth’ and ‘Maintain Altitude’ behaviours have been developed which have been tested with the vehicle in place or station keeping. In the case of the downward pointing altimeter sonar, with a minimum range is 1m, an interesting test result came to light. When testing the maintain altitude behaviour the expected results are realised with altitudes above 1m. When the vehicle is disturbed by an external force (e.g. pushed downwards with a stick) the behaviour restores the vehicle to the desired altitude. However, for situations where the altitude set point is close to the minimum 1m range reading for the sonar off the bottom, an undesirable result is realised in some tests. If the vehicle is disturbed downwards below the 1m minimum range the sensor gives spurious noisy output. The effect of this noisy reading is that the behaviour drives the vehicle downwards as the average altimeter sensor output is greater than the set point reading. This is the reverse of the desired result and must be guarded against with appropriates signal conditioning in collision avoidance behaviours. A simple test has been performed with both an obstacle avoidance and a cruise behaviour active. Tethra was programmed to maintain speed, a heading perpendicular to the pool sides and a simple reverse thrust behaviour was programmed when the forward looking sonars came within 1m of the pool sides (min range for the higher frequency horizontal pointing sonars is 0.1m) The thruster were commanded with 20% PWM duty cycle. The vehicle went to and from between the sides until the lateral accumulated drift brought the vehicle close to the pool end. On detection of the pool edge within 1m and reversing the thrusters the vehicle progressed a further 0.5 m approximately before forward motion was arrested. 3.3 Low-level controllers Simple controllers, described in previous section, were used as a foundation for building of a set of proportional plus integral low-level controllers, such as Surge-Rate controller, Heave controller, DepthRate, Auto-Depth, Altitude-Rate, Auto-Altitude, Heading-Rate and Auto-Heading controller. These controllers are designed and tested in the Matlab/Simulink Virtual Reality simulation environment. Fine tuning of these controllers in the diving pool is ongoing activity. The pressure/depth transducer provides feedback for the Depth Rate and Auto Depth controller. The downward looking sonar provides feedback for the Altitude Rate and Auto Altitude controller. Absolute orientation in the earth-fixed reference coordinate system, provided by the MT9 IMU, is used as feedback for the Auto Heading and Heading Rate controller. The Workhorse Navigator DVL provided bottom track velocity will serve as input for the surge-rate / forward speed controller. A more detailed description of the low-level controllers will be provided in a future paper. 3.4 Neural network controller development In parallel to the before mentioned development of classical controllers, work on the use of neural networks for the control of underwater vehicles is currently under investigation at the University of Limerick. Neural networks can be used in several ways. Most notably are the use of a neural network directly as a controller and the use of neural networks to model the entire dynamics or certain parameters of the vehicle's dynamical model. The identified dynamical model can consecutively be used in, e.g. a model reference control scheme or for the synthesis of a (Neural Network) controller. For a more detailed overview of the use of neural networks for the control of underwater vehicles, the reader is referred to [6]. Currently at the University of Limerick use of neural networks for the identification of individual model parameters is being investigated. Several parameters, such as mass matrix and damping matrix, are identified offline after which this process is continued online, thus accounting for changing circumstances or payloads. In [7] the above-described strategy is applied to the identification of the damping matrix. 3.5 Behaviour based control For AUV mode a set of ‘strategic’ behaviours is being developed inside the Guidance block. Tethra has a reactive control architecture comprised of a suite of behaviours [1]. These behaviours are of varying levels of complexity. All behaviours are prioritised in a subsumption like scheme, which uses a variant of the prioritisation used by Brooks (1986). Brook’s ‘subsumption’ approach tackles the control problem as a number of horizontally arranged layers, each layer implementing a “behaviour”, i.e., the ability to perform a certain task. The name ‘subsumption’ arises from the coordination process used between the layered behaviours within the architecture. In the subsumption architecture complex actions subsume simpler behaviours [8]. A priority hierarchy fixes the topology. (a) Real-world experiment (c) Earth-fixed viewpoint (edge of the pool) be functional; as well it is demanded the base robot behaviour control functionality to be working and tested, before progressing to integrating with mission planning and control. Behaviours to be employed for trials in controlled environment the diving pool, are: maintain altitude, maintain depth, follow outlines of the environment (edge or bottom), obstacle avoidance, mapping, navigation and localization. The horizontal arrangement of the six precision altimeters with their distance measurement range of 10 centimeters to 10 meters will allow for Tethra to be developed a grid map based localization and navigation while the craft is being tested in the 10.13m length by 8.40m width by 3.87m depth diving pool. Behaviours implemented on the vehicle for open water testing will include obstacle avoidance behaviours, transect/trajectory following, height off bottom control, depth control, diving and surfacing behaviours along with emergency ballast control (b) Earth-fixed viewpoint (corner of the pool) (d) Body-fixed viewpoint (on-board camera) Fig.3 Tethra in a real pool (a) and virtual pool (b), (c), (d) Several development stages are required to progress through in the pursuit of a fully functional and reliable control architecture implementation; i.e. to obtain the behaviour level control working necessitates the underlying embedded controllers to behaviours. For autonomous underwater applications such as marine survey and navigation, development of waypoint homing behaviour is necessary. The transect following behaviour will require sensor input for heading, depth and vehicle position along a transect, e.g. from Doppler Velocity Log and Inertial Navigation System. Particular scenarios shall be dictated depending on the specific mission objective for a marine survey, such as: following transect in lawnmower fashion while maintaining height of bottom for bottom filming or bottom search, or to maintain depth to carry out a sonar survey while avoiding obstacles. The contour following behaviour will require to maintain depth and altitude while heading is varied to follow constant depth contour (e.g. for habitat survey). critical behaviours or other higher importance behaviours such as the obstacle avoidance are not active. 5 Conclusions The paper has described the current stage of development for the Tethra prototype submersible vehicle. Evolvement and testing of the Tethra vehicle, integration of extra sensors and development of a comprehensive suite of behaviours for potential missions such as seabed survey and filming is ongoing. 4 Future work Further evolvement of the Tethra test platform will progress in the areas of controller enhancement for full dynamic operation, neural network controller development, additional behaviour based control development, and mission control development. Our aim is to perform an assessment on the effectiveness of different behaviour-based control techniques (e.g. subsumption control, schema-based architecture, etc.) within a purely reactive architecture with no high-level mission control planner added. This study is intended to be carried out first in the simulation environment described in the previous sections. The Tethra vehicle modelled in the simulation environment is shown in figure 3, along with the real Tethra during testing in the diving pool. The comparative analysis of the different behaviour-based control architectures will culminate in testing with real trials in a controlled environment. The either collaborative/cooperative or competitive arbitration algorithms will be implemented as a unique task in our real-time multitasking operating system. In order to endow the craft with autonomous mission level capabilities the control architecture needs to be hybridized. Hybrid architectures take advantage of the hierarchical planning aspects of traditional AI and the reactive and real time aspects of behavioural approaches. A high level mission planner is intended to be developed on top of the functional behavioural level and the underlying embedded controllers to offline pre-program and/or to online elaborate a plan for the autonomous underwater vehicle. The mission planner could determine a sequenced list of way-points and speeds of travel for a given mission, or it could be implemented as a state machine. For mission level programming it is expected that the cruise behaviour will be the main interface between a mission planning layer and the behaviour based layer in a hybrid architecture. In this scenario the cruise behaviour would operate as long as safety References [1] D Toal, C Flanagan, L Molnar, and G Hanrahan, Autonomous Submersible Development for Underwater Filming Employing Adaptive Artificial Intelligence, Proceedings of Sensors and Their Applications XI, 2001, pp. 163-168. [2] T Love, D Toal, C Flanagan, Buoyancy Control for an Autonomous Underwater Vehicle, Proceedings of the IFAC Workshop - Guidance and Control of Underwater Vehicles, 2003, pp. 203-208. [3] S Nolan, L Molnar, D Toal and C Flanagan, Implementing a layered control architecture on an open framed AUV, Proceedings of the IFAC Workshop - Guidance and Control of Underwater Vehicles, 2003, pp. 65-70. [4] L Molnar, D Toal, C Flanagan and M Hayes, The Tethra Autonomous Underwater Vehicle Platform: System Description and Controller Development, Proceedings of the Advances in Technology for Underwater Vehicles, 2004, pp. 82-88. [5] E Omerdic, Thruster Fault Diagnosis and Accomodation for Overactuated Open-frame Underwater Vehicles, PhD Thesis, University of Wales College Newport, UK, 2004. [6] P Van de Ven, C Flanagan, D Toal, Artificial Intelligence for the Control of Underwater Vehicles, Proceedings of the Artificial Neural Networks in Engineering Conference, 2003, pp 59-64. [7] P Van de Ven, T A Johansen, A J Sorensen, C Flanagan, D Toal, Neural Network Augmented Identification of Underwater Vehicle Models, Proceedings of the IFAC Conference on Control Applications in Marine Systems, 2004, 263-269. [8] R A Brooks, A robust layered control systemfor amobile robot, IEEE Journal of Robotics and Automation 2(1), 1986, pp 14-23.