?1Component-Based Design of Embedded Control SystemsLuca DealfaroChamberlain FongTom HenzingerChristopher HylandsJohn KooEdward A. LeeJie LiuXiaojun LiuSteve NeuendorfferSonia SachsShankar SastryWin WilliamsUC BerkeleyHierarchical, Heterogeneous Modeling and DesignA model of computation governs the interaction of components at each level of the hierarchy. A submodel exposes a domain-polymorphic interface that governs the inter-domain semantics.sensorsleaderBrAccBabang-bang PIDfollowercontroller actuatorsS?2Ptolemy IIPtolemy II –– Java based, network integrated– Many domains implemented– Multi-domain modeling– XML syntax for persistent data– Block-diagram GUI– Extensible type system– Code generator on the wayhttp://ptolemy.eecs.berkeley.eduDomains Status? Domains we understand well:– Dataflow– Process networks– CSP– Discrete events– Continuous time– Synchronous reactive– Finite state machines? Domains we are working on:– Publish & subscribe– Time triggeredOur focus is particularly on how these domains support real-time QOS?3Concept Demonstration? Networked sensors and actuators? Multiple, networked controllers, controllees? Hierarchical, heterogeneous design? Domain polymorphic components? Discovery? Mutable systemsExperimental SetupEthernet HubAgilentNCAPTelemonitorTilt sensor1451.2?4Networked Smart SensorsEthernetAgilentNCAPTelemonitorTilt sensor1451.2HTTP interfaceHTTP queriesAbstraction of the Sensoras a Software ComponentEthernetAgilentNCAPTelemonitorTilt sensor1451.2HTTP queries?5Smart Sensor + Ptolemy IITilt sensor connected to a plotter.Issues Raised? Concurrency management with I/O– Separate thread handles communication– Rendezvous with computational thread– How to maintain time consistency?– How to ensure no deadlock??6Planned - DiscoveryEthernetAgilentNCAPTelemonitorTilt sensorHubJINI1451.2Register a ServicePlanned - DiscoveryEthernetAgilentNCAPTelemonitorTilt sensorHubJINI1451.2Discover a Service?7Planned - DiscoveryEthernetAgilentNCAPTelemonitorTilt sensorHubJINI1451.2Download Interface SoftwarePlanned - DiscoveryEthernetAgilentNCAPTelemonitorTilt sensorHubJINI1451.2CommunicateThis would provide a vendor-neutral software component.?8Actuator SetupProxyserial portIR towerLego MindstormLinking the Tilt Sensor and Actuators?9Mutations – Dynamic Structural Changes to the Model? Thread-safe Ptolemy II kernel– Mutual exclusion protocol in the Workspace object.? Domains control when mutations are committed.– Mutations are queued with the Manager object.– Manager executes mutations between iterations.– Meaning of “iteration” is domain-dependent.? In this example:– The event thread in the UI queues mutation requests– The executing model commits the mutations at safe points.Publish and Subscribe? Use Jini to discover the publish/subscribe fabric.– Our current realization returns a JavaSpaces interface.– Future realization will use OCP from Boeing.? Real time– Prioritized delivery, handling– QOS is not part of JavaSpaces.?10Clock Publisher/SubscriberDistributed Lego ControllerTilt sensor data published, controller subscribes.left = 4 * xTilt- 2 * yTiltright = 4 * xTilt+ 2 * yTilt?11Other Examples We Have Implemented? Other Lego models:– Modal controller for navigation– Feedback of sensor data? Hybrid systems:– Car tracking example– Helicopter multi-modal controller? Pioneer robot control– Multi-agent coordination– Jini discovery of robots– Publish-and-subscribe task distributionStyles of Publish and Subscribe Interactions? time stamped events?? globally time stamped?? reliable delivery?? ordered delivery?? signal coordination?? synchronous delivery?? blending of multiple publishers?? dynamic redirection/resourcing?? persistence?? history??12A Key Idea? We need a variety of interaction mechanisms.? In the prototype,– Jini delivers an interaction mechanism service by delivering code that realizes that interaction mechanism.? A "meta OCP (open control platform)" could similarly deliver any of several interaction mechanisms.Example 1? Component says:– "I need a reliable stream-based delivery mechanism to get sampled data from here to there."? Meta-OCP says:– "OK, here's some code for you and the recipient of your data."? Delivered code uses TCP/IP and sockets, bypassing any central infrastructure.– E.g., Transporting audio data.?13Example 2? Component says:– "I need a shared data repository visible to a number of components."? Meta-OCP says:– "OK, here's some code for you and the recipient of your data."? Delivered code interacts with a Linda-style tuple space.– E.g., reading the current temperature from a sensor.Example 3? Component says:– "I need to send time-stamped data that must be delivered and dealt with within 3 msec."? Meta-OCP says:– "OK, here's some code for you and the recipient of your data."? Delivered code interacts with TAO.– E.g., deliver motion control data.?14Next Steps? OCP integration? Define publish and subscribe semantics? Discovery of sensor/actuator services? Abstraction of sensor/actuator services? Real-time QOS? Time-driven domain (Giotto)? Multi-robot coordination? Improved UI (particularly to help debugging)The Demo Builders…? Chamberlain Fong? Christopher Hylands? Jie Liu? Xiaojun Liu? Steve Neuendorffer? Sonia Sachs? Win
or
We will never post anything without your permission.
Don't have an account? Sign up