Paparazzi UAV is one of the most popular open-source UAV platforms in use today. The code base of Paparazzi UAV has served as the basis for both C and Java open-source benchmarks for real- time embedded systems. These benchmarks, Papabench and jPapaBench, respectively, have been widely accepted by their respective communities as they provide a representative and complex workload. Both Papabench and jPapaBench, however, do not utilize a functional simulation in their execution, but rather focus on testing the contention between tasks. jUAV seeks to implement a fully Java version of the Paparazzi code base which will be usable on RTSJ compliant JVMs. This implementation will serve two purposes, the first of which is to provide a more realistic workload for benchmarking purposes by leveraging the wildly used JSBSim physics simulator to introduce real-world stimuli onto the airframe. The second and ultimate goal of this effort would be to provide a means for the widely used Paparazzi to integrate with airframes implemented following the RTSJ standard. In the end the only component of Paparazzi required to be converted to Java is the code that runs on the airframe and the entry point into simulation. All other components can be used as existing in the Paparazzi code base.
To allow for a more direct port of Paparazzi UAV to Java jUAV has provided a approach integrate to a forked version of the Paparazzi (v5.8) code base so that sections of the code can be isolated and validated for correctness by running an simulation. The method used to allow for running the entire system with only a subsection developed is JNI. This required modification to the Paparazzi code base to create the shared libraries for the airframe and addition of the needed hooks to call the sections that are not yet ported. Once all components of the Paparazzi are converted to jUAV the modified version of the Paparazzi code base will no longer be needed. Currently the target for jUAV is Java however once the port is completed it will be transition to RTSJ.
The corresponding code to this effort can be found at:
Modified Paparazzi https://github.com/adamczer/paparazzi-native-jni