Presentation is loading. Please wait.

Presentation is loading. Please wait.

Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Fast Data Sharing within a Distributed Multithreaded Control Framework.

Similar presentations


Presentation on theme: "Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Fast Data Sharing within a Distributed Multithreaded Control Framework."— Presentation transcript:

1 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Fast Data Sharing within a Distributed Multithreaded Control Framework for Robot Teams Albert Schoute- Univ. of Twente Remco Seesink- Atos Origin NL Werner Dierssen- TriOpSys NL Niek Kooij- Centric NL

2 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Presentation outline Playing robot soccer Distributed system approach C++ data sharing framework Common data access & exchange Examples of usage Benefits Conclusions

3 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Playing robot soccer (FIRA MiroSot League)

4 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Impression of European Championship 2005 (UT)

5 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Typical application characteristics Shared localization sensor (camera) Highly reactive control Actual state information is essential Globally known, static data structures Robust operation required (despite disturbing events) Flexible configuration (different playing modes)

6 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Design / implementation choices Multi-agent system architecture Distributed system design Posix compliant multithreading (pthreads) C++ programming environment Easy & safe access of shared data Efficient data distribution

7 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Distributed design Many advantages Adaptable computing power Modular / independent development Manageable software Flexible reconfiguration Recoverability …

8 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Distributed design Disadvantage Data sharing / data distribution becomes complicated!

9 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Original MI20 design

10 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands MI20 multi-agent system architecture: simplified view

11 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Distributed design Offered solution: Data distribution framework Fast & safe data sharing and synchronisation Based on some powerful classes in C++ Exchange of entire data structures

12 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Data distribution model Transparent memory access to common variables whether shared in one or multiple programs Multiple programs contain copies of common variables Monitor based synchronized access within any single multithreaded program Socket based communication to exchange common data (as binary chunks) between common variables in different multithreaded programs Automated data proliferation by chains of communication threads

13 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Overview of the framework classes

14 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Safe variable concept Globally declared (structured) data types Defined in multithreaded programs where needed Safe access world_data.lock(); /* now world_data.value can be read or written safely */ /* now world_data.value can be read or written safely */world_data.unlock(); Csafe world_data; Csafe player_data[PLAYERS];

15 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Synchronized access to shared safe variable X ReaderX.lock();X.wait(); /* reading of X.value */ X.unlock();WriterX.lock(); /* writing of X.value */ X.broadcast();X.unlock(); Wait for renewal before reading Signal for renewal after writing

16 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Example of shared-memory distribution: copying images to multiple threads

17 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Distributed data exchange Safe variables of the same type can be defined in different programs (possibly running on different computers) The framework makes distributed access similar to the case of accessing a shared safe variable How?

18 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Automatic synchronized update of distributed safe variables

19 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Controlling two robot teams

20 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Using a robot soccer simulator

21 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Additional implementation features Coupled exclusion : exclusive access to multiple Csafe-variables Pausing and resuming threads : non-running thread instances don’t use system resources Automatic connection recovery : sender threads try to re-establish broken socket connections

22 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Benefits of the distributed system approach Supports multi-agent architecture Modular design & well-defined interfaces Easy multiplication of similar units Independent development and testing Multiplatform interoperability Extendable

23 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Benefits of the data sharing framework Distributed presence of common state information No difference in accessing shared or distributed common data (possibly on different computers) Safe asynchronous reading & writing Robust and automated proliferation of data Signalling of and waiting on renewed data

24 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Conclusions The distributed data framework has been used successfully to “glue” MI20 system parts together The framework functions (since its conception in 2003) as a stable “data sharing backbone” of the robot soccer control system. It makes expansion or re- configuration easy. Distributed access of common state information is made safe and transparent by exploiting current software tools (C++, multithreading, sockets) Distribution of actual common data is possible with limited overhead by transfering entire data structures as “compatible” binary chunks

25 Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Questions ? The framework software (yet unpolished and undocumented) is freely available Thank you for your attention


Download ppt "Communicating Process Architectures, September 18 – 21 th 2005, Eindhoven, Netherlands Fast Data Sharing within a Distributed Multithreaded Control Framework."

Similar presentations


Ads by Google