Figure: Functional Architecture
(Click on the figure to view a larger image)
The above figure is a flow diagram of the functional architecture of RooBot system broken down into four levels. The top-level functions are the high-level system in which the RooBot system can be divided into. The second-level functions are sub-system to corresponding top-level systems, which describe the control flow of the system as a whole. The third-level functions are functions of the corresponding sub-systems of the second-level i.e., each of the corresponding sub-systems must contain the functionality described in the third-level. The fourth-level functions describe sub-functional breakdown of the corresponding functions in the third-level. The functional architecture of the RooBot has been divided into five mandatory top level functions which include:
0.0 Mechanical
1.0 Mobility
2.0 Control
3.0 User Interface
4.0 Power
An additional top level functional requirement was also defined but currently stands entirely as a desirable:
5.0 Entertainment
Mechanical
The Mechanical System consists of Support Structures (0.1) and Mechanisms (0.2). Within Support Structures are the additional sub functions Fixed Mounting Points (0.1.1) and Rotating Mounting Points (0.1.2). Within the Mechanisms function are two additional sub functions Transmission (0.2.2) and Motion decouple (0.2.1).
Mobility
Within Jump Sequence (1.1) are three additional sub-functions consisting of Charge Energy Storage System (1.1.1), Jump (1.1.2) and Land (1.1.3). Similarly, Change Direction (1.2) has two sub-functions consisting of Clockwise (1.2.1) and Counter-clockwise (1.2.2). These functions are tightly regulated by the function, Control (2.0). Planar Movement (1.3), present as a desirable, is a sub function of Mobility (1.0).
Control
Control (2.0) is comprised of the set of functions that are responsible for controlling the RooBot. This includes Sensing (2.1) and the corresponding distillation of the raw data by Perception (2.2). Processing (2.3) is responsible for monitoring perception of sensory data and for instructing Mobility (1.0) to act based upon the related functions Health Monitoring (2.4) and Error Handling (2.5). The Processing function is also responsible for sending status data to Communications (2.3) to ultimately reach the User Interface (3.0).
Sensing (2.1) sub-system has two basic functions to be carried out. The sensing sub-system has the desirable function Measure Temperature (2.1.1) and mandatory function Measure Jump State (2.1.2). The jump state is further broken down to forth-level functions, which are the desirable function Measure robot’s orientation (2.1.2.1) and the mandatory function Measure energy parameters (2.1.2.2).
The Perception (2.2) sub-system has two main functions described as third-level functions. It should be able to Interpret User Commands (2.2.1) and Interpret Sensing Data (2.2.2), for them to be used in the state machine to actuate the jumping of the system.
Health Monitoring (2.4) is responsible for monitoring proper execution of all other systems (control, mobility and power). Hence, it consists of the functions Measure Correct Launch Actuation (2.4.1), Measure Temperature (2.4.2), and Check Communication Protocol (2.4.3). However, these are each desirable.
User Interface
User Interface (3.0) is comprised of the group of functions which allow the end user to command the RooBot as desired and receive feedback about the state of the system. User Interface contains the sub-function User Commands (3.1) that a user would, via Control, instruct the RooBot’s Mobility System (1.0) to jump, change direction, or exhibit planar movement. These user commands are namely, On/Off (3.1.1), Change Direction (3.1.2), Set Jumping Power (3.1.3), and execute Jump (3.1.4). Set Jump Power (3.1.3) is considered a desirable sub function.
User Interface (3.0) is also responsible for displaying relevant Notifications (3.2) such as Low Battery (3.2.1) and Jumping Acknowledgment (3.2.2). User Interface (3.0) also includes Communication (3.3), which the RooBot employs to transmit the user’s intent and the RooBot’s feedback. The notification sub functions are, however, desirable.
Power
The last mandatory function in the RooBot is Power (4.0) which consists of the sub-functions Power Source (4.1) and Power Distribution (4.2.) The purpose of Power (4.0) is to provide mobile power to RooBot. It is this function that makes the RooBot much more than a strictly mechanical toy, giving it the ability to observe its environment and respond to commands issued by the user.
Entertainment
Entertainment (5.0) is strictly desirable and successful implementation will not impact the RooBot’s ability to pass the validation experiment. It is not tightly integrated but still interacts with the mandatory functions. The two major sub-functions that have been identified are Photo (5.1) and Audio (5.2).
Photo (5.1) is intended to represent the RooBot’s desired functional requirement of taking a photo at some point in the jump sequence for later viewing. Audio (5.2) is intended to be a way for RooBot to audibly communicate feedback to the user from its environment.
The general structure summarized here was finalized after careful consideration of alternative architectures. In our view, these four mandatory top-level systems constitute the simplest and most viable arrangement for the RooBot.