🤖 AI Summary
Existing CPS co-simulation tools suffer from limited portability, modularity, and automation. To address these limitations, this paper proposes a Python-based programmable co-simulation framework. The framework enables declarative orchestration and runtime dynamic substitution of multi-fidelity heterogeneous components—breaking away from conventional static configuration paradigms. It adopts a componentized architecture, supports distributed communication via ZeroMQ and ROS, and provides standardized adaptation interfaces for third-party platforms (e.g., PX4), thereby enabling cross-platform, reconfigurable co-simulation. Its core innovation is the first-ever declarative component orchestration mechanism, which significantly enhances simulation system reusability, reproducibility, and development efficiency. The framework is validated through co-simulation of unmanned aerial vehicles and autonomous controllers, demonstrating its flexibility and practicality. This work establishes a novel paradigm for CPS benchmark construction and automated evaluation.
📝 Abstract
Simulation is a foundational tool for the analysis and testing of cyber-physical systems (CPS), underpinning activities such as algorithm development, runtime monitoring, and system verification. As CPS grow in complexity and scale, particularly in safety-critical and learning-enabled settings, accurate analysis and synthesis increasingly rely on the rapid use of simulation experiments. Because CPS inherently integrate hardware, software, and physical processes, simulation platforms must support co-simulation of heterogeneous components at varying levels of fidelity. Despite recent advances in high-fidelity modeling of hardware, firmware, and physics, co-simulation in diverse environments remains challenging. These limitations hinder the development of reusable benchmarks and impede the use of simulation for automated and comparative evaluation. Existing simulation tools often rely on rigid configurations, lack automation support, and present obstacles to portability and modularity. Many are configured through static text files or impose constraints on how simulation components are represented and connected, making it difficult to flexibly compose systems or integrate components across platforms. To address these challenges, we introduce MultiCoSim, a Python-based simulation framework that enables users to define, compose, and configure simulation components programmatically. MultiCoSim supports distributed, component-based co-simulation and allows seamless substitution and reconfiguration of components. We demonstrate the flexibility of MultiCoSim through case studies that include co-simulations involving custom automaton-based controllers, as well as integration with off-the-shelf platforms like the PX4 autopilot for aerial robotics. These examples highlight MultiCoSim's capability to streamline CPS simulation pipelines for research and development.