
The 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems October 11-15, 2009 St. Louis, USA A Component Based Design Framework for Robot Software Architecture Wei Hongxing1, Duan Xinming1, Li Shiyi1, Tong Guofeng2, Wang Tianmiao1 1. Robotics Institute, Beijing University of Aeronautics and Astronautics Beijing, 100191, China 2. Institute of A.I. and Robotics and Key Laboratory of Integrated Automation of Process Industry, Northeastern University, Shenyang, 110004, China Abstract—Componentization is an important method to are complexity enterprise-class application systems, which improve the reusability of robot software and reduce the makes the robot software architecture huge and occupies difficulty of system design. In this paper, we propose a more system resources. They are not suitable for embedded component based design framework for robot software robot controller system. For these reasons, some companies architecture. First, the robot system is functionally decomposed and research institutes have to build their own robot into reusable components. On this basis, the static model and [3] run-time model of component are established, and a component middleware architectures, such as Open-R , [9] [8] [9] interface definition language based on the model is designed. K-Middleware , ASEBA , MiRPA , etc. Second, a lightweight middleware is proposed according to the Based on the robot software system decomposition and communication mode between robot components, and a component communication mechanism, we present a component development tool and a visual component assembly component-based design framework of robot software environment based on the middleware are designed to facilitate architecture. The software system uses lightweight the developers. Finally, an application based on the framework is introduced to verify the validation of the design framework. component communication mechanism, which is suitable for Keywords: Robot Software Architecture, Robot Middleware, embedded robot controller software applications. Component, IDL The remainder of the paper is organized as follows. Section II presents a component-based frame structure for robot I. INTRODUCTION software architecture and analyzes the static model and ITH the development of robot technology, the run-time model of the components. Section III presents a W complexity of autonomous robot systems has lightweight middleware communication mechanism between increased dramatically. Besides an increased variety of robots, components, and sets up a visual component integrate sensors, actuators, embedded computers; the architecture of environment. Section IV describes a component-based the robot software has gained crucial relevance. Monolithic application example: a visual procedure to track the ball for Programming is used in the traditional robot software design. mobile robot. The last section concludes the paper, and points But a variety of robot systems often use different hardware at the future work. platforms, so the robot system software changes with different hardware platforms and it is difficult to realize the II. FRAME STRUCTURE reusability of robot system software. Modern robot software A. System Decomposition uses multiple functional components. The main aim of the architecture for Robot software is to provide flexible and Generally, a robot system can be divided into the control reliable communication mechanisms for data exchange system and the controlled system. Control system is the robot between the components. For todays robot applications, control software or algorithms, and the controlled system is mostly middleware systems are used to accomplish this the robot hardware. To achieve modular design of robot task.[1,2] system and the reusability of robot software, we present a To solve the heterogeneity between the controller and component-based abstract model to separate the coupling modules in robot system, the hierarchical architectures has between control systems and the controlled system. In Fig.1 been proposed[3], such as NASREM model proposed by (a), robot middleware divide a robot system into two parts: Albus[4-6] and hierarchical intelligent robot software software and hardware systems. The lower layer of robot architecture proposed by Saridis[7]. With the development of middleware is the robot hardware system composed of a Component-Based Software Engineering, software variety of sensors, actuators and other hardware devices. The component technology is quickly applied to the design of upper layer of robot middleware is the robot control software robot software to solve the problem of software reusability, composed of a variety of robot software components, control such as OROCOS[6], Miro[7], RT-Middleware[8], MSRS[9], etc. algorithms and services. Robot middleware hides the These component-based robot software architectures are heterogeneity of lower hardware devices and provides the often built based on the existing network middleware (such as component interface independent to the robot hardware CORBA, DCOM, etc.). However, these network middleware system, for the upper component or application call. 978-1-4244-3804-4/09/$25.00 ©2009 IEEE 3429 Filed Component Application Component Application Component Assembly Software Bus Service Interface Algorithm component Component Middleware Service System Component Decomposition Device Function Decomposition Hardware Atomic Component Hardware Bus Field Decomposition Robot Component Interface (a) Robot System Architecture (b) System Decomposition Fig.1 System framework To improve software reusability, the robot software system • Application component: application components are the is divided a set of different field and different granularity combination of all kinds of atomic components, composite reusable software components. components and algorithm components to complete the In Fig.1 (b), in horizontal direction, the robot system is application functions of the robot system. divided into different functional modules. The designer of In vertical direction decomposition of robot system, each various functional modules can focus on the development of component relies solely on its subordinate components. their own functional modules, and package the functional Subordinate components provide services to superior module into the corresponding components according to the components, and the superior component achieves specific standard. Robot system integrators can rapidly integrate functions with the service of subordinate components. various functional modules and develop robot systems Through the dependence relationship between service according to standard interface, without the need to providers and consumers, various components can be understand the specific implementation details of functional assembled together to form a specific function robot system. modules. B. Component static mode In vertical direction, there are four levels of granularity of the components according to different degree of abstraction After the above decomposition process, component is a and reuse: high cohesion and low coupling software module. • Atomic component: atomic component is the only Component and its subordinate component have a kind of direct interaction with hardware components. It is a particular relations between dependence and are dependent on. They are type of hardware abstraction and provides the unified the service consumer and provider. In this relationship, there interface for the upper component calls. Such as motor are three kinds of communication modes between the control atomic component, various sensors control atomic superior and subordinate component: • components, etc. Command mode: the superior component issues an • Composite component: according to some function order to the subordinate components. Superior components requirement and composite rule, several atomic components issue an order and continue their operation without waiting can be combined into composite components, which provides for results of the implementation of subordinate components; a higher level and bigger granularity components abstract. subordinate components do not direct feedback to the For example, robot chassis consists of several motors and superior components in implementation process. When order sensors. Then, with the corresponding atomic motor execution time is longer or superior components do not care components, we can compose the composite chassis about the implementation results of the case, the command component, which provides the specific service interfaces, mode is suitable. Command mode is mainly used in the such as chassis velocity settings: setVelocity (type left, type condition that superior components allocate task to right). Through this abstraction, whether the chassis are subordinate components and subordinate components decide four-wheel drive or two-wheel drive, the superior the way to complete task. • components can control the robot chassis through the unified Request/response mode: the superior component sends service interface. request to subordinate components, in parallel, and waits for • Algorithm component: Algorithm component is a their return. The type mainly is used in component platform-independent robot algorithms or generic robot pre-operational configuration and the state access. Under control algorithms, for example, path planning and Kalman normal operating conditions, it should be as little as possible filter, etc. to use the mode, which also applies
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages6 Page
-
File Size-