Model-based engineering with application to autonomy
|Title||Model-based engineering with application to autonomy|
|Publication Type||Book Chapter|
|Year of Publication||2019|
|Authors||Bhadani, R, Bunting, M, Sprinkle, J|
|Book Title||Complexity Challenges in Cyber Physical Systems: Using Modeling and Simulation (M&S) to Support Intelligence, Adaptation and Autonomy|
In this chapter we focus on where models fit into the verification and validation design cycle of autonomous cyber-physical systems. These systems typically make decisions through myriad of sensing loops, have implementations in multiple languages, and may have their logic represented in several different kinds of formal models. The use of code generation, along with software-in-the-loop and hardware-in-the-loop simulation (discussed further in Section 4), permits system designers to apply various agile techniques for the validation and verification of systems as requirements are implemented, tested, and demonstrated. The work in this chapter explores such a design cycle with application to autonomous driving. Examples are given for the implementation of various components that describe vehicle dynamics, control models, system identification, sensor/data acquisition, etc., which can be functionally de- scribed in models, and explored in simulation before utilizing code generation to deploy final solutions. The integration of simulation tools during functional design, software-in-the-loop testing, and hardware-in-the-loop testing, permits regression evaluation of use case scenarios. In addition to functional testing, we also describe how high-level domain- specific models can be used to include verification-in-the-loop toolboxes as part of the design cycle. All the examples in this chapter are based on an autonomous Ford Escape, which has a Robotic Operating System (ROS) API for its control and the integration of autonomous components—however, the results are applicable to other event-based and time-triggered middleware platforms. The implementation models in use include Simulink, MATLAB, StateFlow, and other domain-specific languages that specify high-level behaviors.