When porting jPapaBench to RTDroid, we use real-time service and real-time receiver for real-time tasks, and both messaging constructs (Message and Intent) for communication between tasks. There are two main components, one for each control flow shown—(1) the autopilot, which controls UAV flight and is capable of automatic flight in the absence of other control, and (2) the fly-by-wire (FBW), which handles radio commands from a control station and passes information to the autopilot to be integrated into flight control.

jPapaBench is a popular and well-accepted real-time Java benchmark used to evaluate real-time Java systems. It is a real-world application as it is based on the open source UAV autopilot, Paparazzi UAV, that is used to fly UAVs autonomously. UAV autonomy is a representative application with real-time tasks (aerial vehicle control) along with some non-realtime tasks (sensor processing, updating ground station). jPapaBench is a simulates autonomous flight control. It consists of the autopilot control, a fly-by-wire (FBW) module that allows manual control via radio commands, and a simulator that simulates fully 6-DoF physics for realistic flight and sensing. The application consists of many periodic real-time tasks, each with specific periodicity and deadlines. Conceptually, the tasks can be divided into two control flows with the autopilot and simulator working in one control flow, and the fly-by-wire functionality inanother with information exchange between them for control.

Performance Evaluation[edit]

Our application divides the jPapaBench code into two services: (1) an autopilot service that contains simulated sensing tasks and UAV controlling tasks, (2) a fly-by-wire (FWB) service that handles radio commands and performs safety checking. The original communication between them is replaced with Intent broadcast communication. The task we monitor for comparison is the autopilot stabilization task, which runs periodically and needs to finish within 50 ms.

Similar to the cochlear implant application, we collection the task execution duration over 5 execution of jPapabench as well. Fig. 1 shows the aggregated results of the stabilization task between RTDroid and Android, we obverse zero missed deadline release on RTDroid, 4 missed deadline releases on Android. Fig. 2 presents the comparison between the multi-core enabled results and the single-core results.

jPapaBench freq

Fig. 1 Android v.s RTDroid


Fig. 2 Multi-Core Processor v.s Single-core Processor