On the Mitigation of MultiCore-Induced Behavioral Deviations of an Autonomous Ground Vehicle

Complex systems such as autonomous vehicles frequently utilize a distributed network of computers for sensing, control, and supervisory tasks. A common way to abstract the deployment of the computational nodes that implement the system's behavior is through the utilization of middleware, which treats each atomic processing element as a component. Multiple components may execute on a single node, and nodes are typically heterogeneous in their processing power. For component implementations that use an event-driven model of computation, however, significant behavioral deviations may occur when a single-core computational node is replaced with a multicore node, especially if that computational node is running more than one component. This paper discusses the observed behavioral deviations through a series of simulations with identical initial conditions, performed on various single core and multicore processing platforms. In addition to the empirical demonstration, the paper provides a technique to mitigate the behavioral deviations by inserting a time-triggered buffer between a key set of components, enforcing a loosely time-triggered execution even though the system is still defined through event-triggered components. This preserves existing legacy code, but provides a time-triggered execution.

[1]  A. Elfes,et al.  Occupancy Grids: A Stochastic Spatial Representation for Active Robot Perception , 2013, ArXiv.

[2]  Michi Henning,et al.  A new approach to object-oriented middleware , 2004, IEEE Internet Computing.

[3]  Christoph M. Kirsch,et al.  Giotto: a time-triggered language for embedded programming , 2003 .

[4]  Douglas C. Schmidt,et al.  Flexible and Adaptive QoS Control for Distributed Real-Time and Embedded Middleware , 2003, Middleware.

[5]  J. Sprinkle,et al.  Encoding aerial pursuit/evasion games with fixed wing aircraft into a nonlinear model predictive tracking controller , 2004, 2004 43rd IEEE Conference on Decision and Control (CDC) (IEEE Cat. No.04CH37601).

[6]  Roger Riggs,et al.  A Distributed Object Model for the Java System , 1996, Comput. Syst..

[7]  Thomas A. Henzinger,et al.  Composable code generation for distributed giotto , 2005, LCTES '05.

[8]  Jonathan Sprinkle,et al.  Time-triggered buffers for event-based middleware systems , 2011, Innovations in Systems and Software Engineering.

[9]  Nils J. Nilsson,et al.  A Formal Basis for the Heuristic Determination of Minimum Cost Paths , 1968, IEEE Trans. Syst. Sci. Cybern..

[10]  Aniruddha S. Gokhale,et al.  Using principle patterns to optimize real-time ORBs , 2000, IEEE Concurr..

[11]  Carlo Rossi,et al.  Giotto a time-triggered language for embedded programming , 2011 .

[12]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.

[13]  Edward A. Lee,et al.  Heterogeneous composition of models of computation , 2009, Future Gener. Comput. Syst..

[14]  Douglas C. Schmidt,et al.  Techniques for enhancing real-time CORBA quality of service , 2003, Proc. IEEE.

[15]  Alexei Makarenko,et al.  DARPA Urban Challenge Technical Paper ‡ : Sydney-Berkeley Driving Team , 2007 .

[16]  Alexei Makarenko,et al.  Empirical Evaluation of an Autonomous Vehicle in an Urban Environment , 2007, J. Aerosp. Comput. Inf. Commun..

[17]  Paulo Tabuada,et al.  Bisimulation relations for dynamical, control, and hybrid systems , 2005, Theor. Comput. Sci..

[18]  Frank Allgöwer,et al.  Nonlinear Model Predictive Control , 2007 .

[19]  Douglas C. Schmidt,et al.  The design of the TAO real-time object request broker , 1998, Comput. Commun..

[20]  Jeff Prosise Programming Microsoft .NET , 2002 .