SlideShare a Scribd company logo
1 of 53
Download to read offline
CoolBOT.
                        Overview
                           Antonio Carlos Domínguez Brito
                    Inst. Univ. SIANI/Dpto. Informática y Sistemas
        [1]          Universidad de Las Palmas de Gran Canaria
[www.coolbotproject.org]                Spain
CoolBOT
           Overview




                             CoolBOT is a
                              distributed
                                 CBSE
                             (Component
                            Based Software
                           Engineering) C++
         [2]                 programming
[www.coolbotproject.org]      framework
CoolBOT
           Overview




                           CoolBOT's design principles:
                           1. Component based → easy
                           software integration.
                           2. Take advantage of
                           multithreading/multicores OSs.
                           3. System control & monitoring.
                           4. Transparent distributed
         [3]
                           computing.
[www.coolbotproject.org]
CoolBOT
           Overview




                              A system is
                             composed by
                           integrations and
                               software
                             components
         [4]
[www.coolbotproject.org]
CoolBOT
           Overview




                            There are three
                           kinds of software
                             components:
                             components,
                              views and
                               probes
         [5]
[www.coolbotproject.org]
CoolBOT
           Overview




       Integrations are
       processes in the
        underlying OS.
         They contain
         components

         [6]
[www.coolbotproject.org]
CoolBOT
           Overview




                      Integrations also may
                       contain views, and a
                         machine can host
                        several integrations




         [7]
[www.coolbotproject.org]
CoolBOT
           Overview




                            probes are software
                           components to interface
                           non CoolBOT software
                           with CoolBOT systems,
                                and viceversa




         [8]
[www.coolbotproject.org]
CoolBOT
                           Overview




         [9]
[www.coolbotproject.org]
CoolBOT
                           Overview




       CoolBOT users
      program at system
            level




        [10]
[www.coolbotproject.org]
CoolBOT     CoolBOT runtime
                                         infrastructure
                           Overview
                                      supports system level
                                        abstractions and
                                            execution




        [11]
[www.coolbotproject.org]
CoolBOT
                           Overview



        CoolBOT runtime
         infrastructure is
       supported by the OS
         API and the ACE
        library for network
          communications




        [12]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Components




        [13]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Components
                                    CoolBOT components are port automata
                                    (input port data packets receptions trigger
                                              automaton transitions)




        [14]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Components
                                             Meta state running
                                          implements component's
                                            functionality. It is user
                                                   defined




        [15]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Components




                                     Components' input and output
                                       ports constitute its external
        [16]
                                      interface. Through them they
[www.coolbotproject.org]
                                     receive and send port packets
                                              (data packets)
CoolBOT
                           CoolBOT Port Connections

                  Port connections are
              unidirectional (from input port
               to output port), and follow a
                   publish/subscribe
                communication pattern

                one publisher,
              multiple subscribers




        [17]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Port Connections
                                                     Port connections are
                                                 unidirectional (from input port
                                                  to output port), and follow a
                                                      publish/subscribe
                                                   communication pattern

                                                          multiple publishers,
                                                           one subscriber




        [18]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Port Connections




  Components interact
      using only port
  connections. Thus, a
  system can be seem
     as a network of
      components
   interchanging port
 packets and running as
 data driven machines

        [19]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Port Connections




         There are different
      typologies for input and
    output ports for establishing
        port connections with
     different communication
    patterns: fifo on input port,
      “blackboard” on output
       port and multipacket.

        [20]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Port Connections

                                          Port Connections Typologies
                                      Active Publisher/Passive Subscriber (AP/PS)
                           Output Port             Input Port          Port Connection Type
                         tick
         There are different                 tick                tick connections
      typologies for input and               last                last connections
    output ports for establishing
                       generic                fifo                fifo connections
        port connections with
                                            ufifo         unbounded fifo connections
     different communication
                     multipacket
    patterns: fifo on input port,        multipacket         multipacket connections
      “blackboard” on output
                   lazymultipacket
       port and multipacket.Active Publisher/Passive Subscriber (PP/AS)
                             poster                 poster              poster connections
        [21]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Port Connections




    A port connection can be
      established when the
     typologies of the ports
    involved are compatible,
       and the type of port
    packets they transport are
            the same

        [22]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Port Connections

           Integrations are CoolBOT
               processes hosting
            component instances at
                    runtime

                Port connections
              established between
               components (local
           components) in the same
           integration are supported
              transparently by the
            underlying OS thread API


        [23]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Port Connections

           Integrations are CoolBOT
               processes hosting
            component instances at
                    runtime

          Port connections between
           components in different
               integrations are
           multiplexed over TCP/IP
                 connections




        [24]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Views

      The second type of
     software component
     available in CoolBOT
           are views

   CoolBOT views expand
   component interfaces to
   decouple and separate
    system computation
      and control from
    graphical interfaces
     for monitoring and
          control

        [25]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Views


    Likewise components,
       views have also an
      external interface of
     input and output ports




        [26]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Views

         CoolBOT integrations
         may contain indistinctly
        components and views


        As software components
          views may establish
         port connections with
        any other component or
        view (local or remote) in
                a system



        [27]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Views

         CoolBOT integrations
         may contain indistinctly
        components and views


        As software components
          views may establish
         port connections with
        any other component or
        view (local or remote) in
                a system



        [28]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Probes


      The third type of software
   component available in CoolBOT
             are probes

        Expanding even more the
     concept of component interface
   probes implement interfaces of
    input and output ports in order
   to allow non CoolBoT software to
    intercommunicate with CoolBoT
              components


        [29]
[www.coolbotproject.org]
CoolBOT
                           CoolBOT Probes


      The third type of software
   component available in CoolBOT
             are probes

      CoolBOT probes implement
    interfaces of input and output
       ports in order to allow non
          CoolBoT software to
    intercommunicate with CoolBoT
              components



        [30]
[www.coolbotproject.org]
CoolBOT             CoolBOT provides two tools for
                                               developing CoolBOT software:
                           Development Tools   coolbot-bundle and coolbot-c




        [31]
[www.coolbotproject.org]
CoolBOT               CoolBOT provides two tools for
                                                 developing CoolBOT software:
                           Development Tools     coolbot-bundle and coolbot-c




                                         coolbot-bundle creates
        [32]                            workspaces for developing
[www.coolbotproject.org]                components, views, port
                                        packets and integrations
CoolBOT             CoolBOT provides two tools for
                                               developing CoolBOT software:
                           Development Tools   coolbot-bundle and coolbot-c




                                                    coolbot-c is the CoolBOT
                                                 compiler. We can generate C++
                                                   skeletons for components,
                                                  probes, views, port packets
        [33]                                            and integrations
[www.coolbotproject.org]
CoolBOT             CoolBOT provides two tools for
                                               developing CoolBOT software:
                           Development Tools   coolbot-bundle and coolbot-c




     coolbot-c is the CoolBOT
  compiler. We can generate C++
    skeletons for components,
   probes, views, port packets
         and integrations

        [34]
[www.coolbotproject.org]
CoolBOT                CoolBOT provides two tools for
                                                  developing CoolBOT software:
                           Development Tools      coolbot-bundle and coolbot-c




                         coolbot-c is the CoolBOT
                      compiler. We can generate C++
                        skeletons for components,
                       probes, views, port packets
                             and integrations
        [35]
[www.coolbotproject.org]
CoolBOT                CoolBOT provides two tools for
                                                  developing CoolBOT software:
                           Development Tools      coolbot-bundle and coolbot-c




                                     coolbot-c is the CoolBOT
                                  compiler. We can generate C++
                                    skeletons for components,
                                   probes, views, port packets
        [36]                             and integrations
[www.coolbotproject.org]
CoolBOT
         An Example: A Secure
            Navigation System




                                    This is an
                                   integration
                                implementing a
                                     Secure
                                  Navigation
                                System (SNS)
                                 for a mobile
                                     robot,
                                  concretely a
        [37]                     Pioneer 3 DX
[www.coolbotproject.org]
CoolBOT
         An Example: A Secure
            Navigation System


                                     It uses
                                  Player/Stage
                                 for abstracting
                                    the robot
                                  hardware, a
                                   Global ND+
                                    algorithm
                                implementation,
                                 in combination
                                with the MbICP
                                  algorithm for
        [38]                     scan matching
[www.coolbotproject.org]
CoolBOT
                                  An Example: A Secure




                           [39]
                                     Navigation System




[www.coolbotproject.org]
CoolBOT
         An Example: A Secure
            Navigation System




                                  Component
                                 PlayerRobot
                                  abstracts the
        [40]                    robot hardware
[www.coolbotproject.org]
                                     using
                                 Player/Stage
CoolBOT
         An Example: A Secure
            Navigation System



                                   Component
                                MbICPCorrector
                                 implement the
                                  MbICP scan
                                    matching
                                   algorithm to
                                reduce odometry
                                      errors



        [41]
[www.coolbotproject.org]
CoolBOT
         An Example: A Secure
            Navigation System

                                    Component
                                     GridMap
                                  registers range
                                laser sensor data
                                in a grid while the
                                 robot navigates




        [42]
[www.coolbotproject.org]
CoolBOT
         An Example: A Secure
            Navigation System




                                Component ND
                                makes the robot
                                navigates while
                                   avoiding
                                obstacles using
                                 ND+ algorithm

        [43]
[www.coolbotproject.org]
CoolBOT
         An Example: A Secure
            Navigation System


                                    Component
                                  Planner plans
                                which way to get to
                                arrive to a specific
                                point using the grid
                                built by component
                                    GridMap. It
                                      provides
                                  component ND
                                 with subobjetives
                                 while navigating
        [44]
[www.coolbotproject.org]
CoolBOT
                                  An Example: A Secure




                           [45]
                                     Navigation System




[www.coolbotproject.org]
CoolBOT
                                  An Example: A Secure




                           [46]
                                     Navigation System




[www.coolbotproject.org]
CoolBOT
                                  An Example: A Secure




                           [47]
                                     Navigation System




[www.coolbotproject.org]
CoolBOT
                                  An Example: A Secure




                           [48]
                                     Navigation System




[www.coolbotproject.org]
CoolBOT
                                  An Example: A Secure




                           [49]
                                     Navigation System




[www.coolbotproject.org]
CoolBOT
                                  An Example: A Secure




                           [50]
                                     Navigation System




[www.coolbotproject.org]
CoolBOT
                           Conclusions and Future Work

                           ∙ In CoolBOT, decoupling interfaces makes
                           software components deployable and integrable
                           wherever we want, no matter its functionality, or
                           which grade of granularity they have.

                              ▸ Components (implement generic algorithms)
                              ▸ Views (implement graphical interfaces)
                              ▸ Probes (implement generic interfaces)

                           ∙ CoolBOT is an open source project available at:
        [51]
[www.coolbotproject.org]             www.coolbotproject.org
CoolBOT
                           Conclusions and Future Work

                           ●
                               Ongoing/Future work:


                                 1. Documentation.
                                 2. Integration with ROS.
                                 3. Runtime interpret for integrations.
                                    3.1. Component Name Service.
                                    3.2. Remote instantiation Service.
        [52]
[www.coolbotproject.org]
THAT'S ALL!
                           THAT'S ALL!
                               More info in
                           www.coolbotproject.org
        [53]
[www.coolbotproject.org]

More Related Content

Similar to Coolbot. Overview

Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerSherif Mousa
 
Optimize Your Enterprise Git Webinar
Optimize Your Enterprise Git WebinarOptimize Your Enterprise Git Webinar
Optimize Your Enterprise Git WebinarCollabNet
 
Rhel8 Beta - Halifax RHUG
Rhel8 Beta - Halifax RHUGRhel8 Beta - Halifax RHUG
Rhel8 Beta - Halifax RHUGNicole Maselli
 
Odo improving the developer experience on OpenShift - hack & sangria
Odo   improving the developer experience on OpenShift - hack & sangriaOdo   improving the developer experience on OpenShift - hack & sangria
Odo improving the developer experience on OpenShift - hack & sangriaJorge Morales
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Peter R. Egli
 
BruCon (Brussels 2011) Hacking Conference - Botnets and Browsers (Brothers in...
BruCon (Brussels 2011) Hacking Conference - Botnets and Browsers (Brothers in...BruCon (Brussels 2011) Hacking Conference - Botnets and Browsers (Brothers in...
BruCon (Brussels 2011) Hacking Conference - Botnets and Browsers (Brothers in...Aditya K Sood
 
GateIn Introduction
GateIn IntroductionGateIn Introduction
GateIn IntroductionMiro Cupak
 
Mainframe DevOps: A Zowe CLI-enabled Roadmap
Mainframe DevOps: A Zowe CLI-enabled RoadmapMainframe DevOps: A Zowe CLI-enabled Roadmap
Mainframe DevOps: A Zowe CLI-enabled RoadmapDevOps.com
 
Ichiba Bamboo Users Meetng #1
Ichiba Bamboo Users Meetng #1Ichiba Bamboo Users Meetng #1
Ichiba Bamboo Users Meetng #1Takahiro Yamaki
 
Mobile Programming - 2 Jetpack Compose
Mobile Programming - 2 Jetpack ComposeMobile Programming - 2 Jetpack Compose
Mobile Programming - 2 Jetpack ComposeAndiNurkholis1
 
Logging & Metrics with Docker
Logging & Metrics with DockerLogging & Metrics with Docker
Logging & Metrics with DockerStefan Zier
 
verilog basics.ppt
verilog basics.pptverilog basics.ppt
verilog basics.ppt8885684828
 
Ekon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side NotificationsEkon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side NotificationsArnaud Bouchez
 
Introduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay PortalIntroduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay Portalrivetlogic
 
Eclipse IDE Yocto Plugin
Eclipse IDE Yocto PluginEclipse IDE Yocto Plugin
Eclipse IDE Yocto Plugincudma
 
Portlet Bridge
Portlet BridgePortlet Bridge
Portlet BridgeMiro Cupak
 
eXoer on the grill: eXo Add-ons factory using Docker and Codenvy
eXoer on the grill: eXo Add-ons factory using Docker and CodenvyeXoer on the grill: eXo Add-ons factory using Docker and Codenvy
eXoer on the grill: eXo Add-ons factory using Docker and CodenvyeXo Platform
 
Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Nilay Binjola
 

Similar to Coolbot. Overview (20)

Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
 
Optimize Your Enterprise Git Webinar
Optimize Your Enterprise Git WebinarOptimize Your Enterprise Git Webinar
Optimize Your Enterprise Git Webinar
 
Rhel8 Beta - Halifax RHUG
Rhel8 Beta - Halifax RHUGRhel8 Beta - Halifax RHUG
Rhel8 Beta - Halifax RHUG
 
Giddy Up on GitHub
Giddy Up on GitHubGiddy Up on GitHub
Giddy Up on GitHub
 
Odo improving the developer experience on OpenShift - hack & sangria
Odo   improving the developer experience on OpenShift - hack & sangriaOdo   improving the developer experience on OpenShift - hack & sangria
Odo improving the developer experience on OpenShift - hack & sangria
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
BruCon (Brussels 2011) Hacking Conference - Botnets and Browsers (Brothers in...
BruCon (Brussels 2011) Hacking Conference - Botnets and Browsers (Brothers in...BruCon (Brussels 2011) Hacking Conference - Botnets and Browsers (Brothers in...
BruCon (Brussels 2011) Hacking Conference - Botnets and Browsers (Brothers in...
 
GateIn Introduction
GateIn IntroductionGateIn Introduction
GateIn Introduction
 
Mainframe DevOps: A Zowe CLI-enabled Roadmap
Mainframe DevOps: A Zowe CLI-enabled RoadmapMainframe DevOps: A Zowe CLI-enabled Roadmap
Mainframe DevOps: A Zowe CLI-enabled Roadmap
 
Ichiba Bamboo Users Meetng #1
Ichiba Bamboo Users Meetng #1Ichiba Bamboo Users Meetng #1
Ichiba Bamboo Users Meetng #1
 
Mobile Programming - 2 Jetpack Compose
Mobile Programming - 2 Jetpack ComposeMobile Programming - 2 Jetpack Compose
Mobile Programming - 2 Jetpack Compose
 
Logging & Metrics with Docker
Logging & Metrics with DockerLogging & Metrics with Docker
Logging & Metrics with Docker
 
verilog basics.ppt
verilog basics.pptverilog basics.ppt
verilog basics.ppt
 
Ekon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side NotificationsEkon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side Notifications
 
Introduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay PortalIntroduction to Portlets Using Liferay Portal
Introduction to Portlets Using Liferay Portal
 
Eclipse IDE Yocto Plugin
Eclipse IDE Yocto PluginEclipse IDE Yocto Plugin
Eclipse IDE Yocto Plugin
 
Portlet Bridge
Portlet BridgePortlet Bridge
Portlet Bridge
 
eXoer on the grill: eXo Add-ons factory using Docker and Codenvy
eXoer on the grill: eXo Add-ons factory using Docker and CodenvyeXoer on the grill: eXo Add-ons factory using Docker and Codenvy
eXoer on the grill: eXo Add-ons factory using Docker and Codenvy
 
Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 

Recently uploaded

The Art of Decision-Making: Navigating Complexity and Uncertainty
The Art of Decision-Making: Navigating Complexity and UncertaintyThe Art of Decision-Making: Navigating Complexity and Uncertainty
The Art of Decision-Making: Navigating Complexity and Uncertaintycapivisgroup
 
Pay after result spell caster (,$+27834335081)@ bring back lost lover same da...
Pay after result spell caster (,$+27834335081)@ bring back lost lover same da...Pay after result spell caster (,$+27834335081)@ bring back lost lover same da...
Pay after result spell caster (,$+27834335081)@ bring back lost lover same da...BabaJohn3
 
MichaelStarkes_UncutGemsProjectSummary.pdf
MichaelStarkes_UncutGemsProjectSummary.pdfMichaelStarkes_UncutGemsProjectSummary.pdf
MichaelStarkes_UncutGemsProjectSummary.pdfmstarkes24
 
How Bookkeeping helps you in Cost Saving, Tax Saving and Smooth Business Runn...
How Bookkeeping helps you in Cost Saving, Tax Saving and Smooth Business Runn...How Bookkeeping helps you in Cost Saving, Tax Saving and Smooth Business Runn...
How Bookkeeping helps you in Cost Saving, Tax Saving and Smooth Business Runn...YourLegal Accounting
 
Space Tech Expo Exhibitor List 2024 - Exhibitors Data
Space Tech Expo Exhibitor List 2024 - Exhibitors DataSpace Tech Expo Exhibitor List 2024 - Exhibitors Data
Space Tech Expo Exhibitor List 2024 - Exhibitors DataExhibitors Data
 
Sex service available my WhatsApp number 7374088497
Sex service available my WhatsApp number 7374088497Sex service available my WhatsApp number 7374088497
Sex service available my WhatsApp number 7374088497dipikakk482
 
Abortion pills in Muscut<Oman(+27737758557) Cytotec available.inn Kuwait City.
Abortion pills in Muscut<Oman(+27737758557) Cytotec available.inn Kuwait City.Abortion pills in Muscut<Oman(+27737758557) Cytotec available.inn Kuwait City.
Abortion pills in Muscut<Oman(+27737758557) Cytotec available.inn Kuwait City.daisycvs
 
Toyota Kata Coaching for Agile Teams & Transformations
Toyota Kata Coaching for Agile Teams & TransformationsToyota Kata Coaching for Agile Teams & Transformations
Toyota Kata Coaching for Agile Teams & TransformationsStefan Wolpers
 
Mastering The Art Of 'Closing The Sale'.
Mastering The Art Of 'Closing The Sale'.Mastering The Art Of 'Closing The Sale'.
Mastering The Art Of 'Closing The Sale'.SNSW group8
 
HAL Financial Performance Analysis and Future Prospects
HAL Financial Performance Analysis and Future ProspectsHAL Financial Performance Analysis and Future Prospects
HAL Financial Performance Analysis and Future ProspectsRajesh Gupta
 
NewBase 17 May 2024 Energy News issue - 1725 by Khaled Al Awadi_compresse...
NewBase   17 May  2024  Energy News issue - 1725 by Khaled Al Awadi_compresse...NewBase   17 May  2024  Energy News issue - 1725 by Khaled Al Awadi_compresse...
NewBase 17 May 2024 Energy News issue - 1725 by Khaled Al Awadi_compresse...Khaled Al Awadi
 
obat aborsi jakarta wa 081336238223 jual obat aborsi cytotec asli di jakarta9...
obat aborsi jakarta wa 081336238223 jual obat aborsi cytotec asli di jakarta9...obat aborsi jakarta wa 081336238223 jual obat aborsi cytotec asli di jakarta9...
obat aborsi jakarta wa 081336238223 jual obat aborsi cytotec asli di jakarta9...yulianti213969
 
Beyond Numbers A Holistic Approach to Forensic Accounting
Beyond Numbers A Holistic Approach to Forensic AccountingBeyond Numbers A Holistic Approach to Forensic Accounting
Beyond Numbers A Holistic Approach to Forensic AccountingYourLegal Accounting
 
Unlocking Growth The Power of Outsourcing for CPA Firms
Unlocking Growth The Power of Outsourcing for CPA FirmsUnlocking Growth The Power of Outsourcing for CPA Firms
Unlocking Growth The Power of Outsourcing for CPA FirmsYourLegal Accounting
 
First Time Home Buyer's Guide - KM Realty Group LLC
First Time Home Buyer's Guide - KM Realty Group LLCFirst Time Home Buyer's Guide - KM Realty Group LLC
First Time Home Buyer's Guide - KM Realty Group LLCTammy Jackson
 
hyundai capital 2023 consolidated financial statements
hyundai capital 2023 consolidated financial statementshyundai capital 2023 consolidated financial statements
hyundai capital 2023 consolidated financial statementsirhcs
 
What are the differences between an international company, a global company, ...
What are the differences between an international company, a global company, ...What are the differences between an international company, a global company, ...
What are the differences between an international company, a global company, ...AbhishekSharma823325
 

Recently uploaded (20)

The Art of Decision-Making: Navigating Complexity and Uncertainty
The Art of Decision-Making: Navigating Complexity and UncertaintyThe Art of Decision-Making: Navigating Complexity and Uncertainty
The Art of Decision-Making: Navigating Complexity and Uncertainty
 
Pay after result spell caster (,$+27834335081)@ bring back lost lover same da...
Pay after result spell caster (,$+27834335081)@ bring back lost lover same da...Pay after result spell caster (,$+27834335081)@ bring back lost lover same da...
Pay after result spell caster (,$+27834335081)@ bring back lost lover same da...
 
MichaelStarkes_UncutGemsProjectSummary.pdf
MichaelStarkes_UncutGemsProjectSummary.pdfMichaelStarkes_UncutGemsProjectSummary.pdf
MichaelStarkes_UncutGemsProjectSummary.pdf
 
How Bookkeeping helps you in Cost Saving, Tax Saving and Smooth Business Runn...
How Bookkeeping helps you in Cost Saving, Tax Saving and Smooth Business Runn...How Bookkeeping helps you in Cost Saving, Tax Saving and Smooth Business Runn...
How Bookkeeping helps you in Cost Saving, Tax Saving and Smooth Business Runn...
 
WAM Corporate Presentation May 2024_w.pdf
WAM Corporate Presentation May 2024_w.pdfWAM Corporate Presentation May 2024_w.pdf
WAM Corporate Presentation May 2024_w.pdf
 
Space Tech Expo Exhibitor List 2024 - Exhibitors Data
Space Tech Expo Exhibitor List 2024 - Exhibitors DataSpace Tech Expo Exhibitor List 2024 - Exhibitors Data
Space Tech Expo Exhibitor List 2024 - Exhibitors Data
 
Sex service available my WhatsApp number 7374088497
Sex service available my WhatsApp number 7374088497Sex service available my WhatsApp number 7374088497
Sex service available my WhatsApp number 7374088497
 
Abortion pills in Muscut<Oman(+27737758557) Cytotec available.inn Kuwait City.
Abortion pills in Muscut<Oman(+27737758557) Cytotec available.inn Kuwait City.Abortion pills in Muscut<Oman(+27737758557) Cytotec available.inn Kuwait City.
Abortion pills in Muscut<Oman(+27737758557) Cytotec available.inn Kuwait City.
 
Toyota Kata Coaching for Agile Teams & Transformations
Toyota Kata Coaching for Agile Teams & TransformationsToyota Kata Coaching for Agile Teams & Transformations
Toyota Kata Coaching for Agile Teams & Transformations
 
Mastering The Art Of 'Closing The Sale'.
Mastering The Art Of 'Closing The Sale'.Mastering The Art Of 'Closing The Sale'.
Mastering The Art Of 'Closing The Sale'.
 
HAL Financial Performance Analysis and Future Prospects
HAL Financial Performance Analysis and Future ProspectsHAL Financial Performance Analysis and Future Prospects
HAL Financial Performance Analysis and Future Prospects
 
NewBase 17 May 2024 Energy News issue - 1725 by Khaled Al Awadi_compresse...
NewBase   17 May  2024  Energy News issue - 1725 by Khaled Al Awadi_compresse...NewBase   17 May  2024  Energy News issue - 1725 by Khaled Al Awadi_compresse...
NewBase 17 May 2024 Energy News issue - 1725 by Khaled Al Awadi_compresse...
 
Contact +971581248768 for 100% original and safe abortion pills available for...
Contact +971581248768 for 100% original and safe abortion pills available for...Contact +971581248768 for 100% original and safe abortion pills available for...
Contact +971581248768 for 100% original and safe abortion pills available for...
 
obat aborsi jakarta wa 081336238223 jual obat aborsi cytotec asli di jakarta9...
obat aborsi jakarta wa 081336238223 jual obat aborsi cytotec asli di jakarta9...obat aborsi jakarta wa 081336238223 jual obat aborsi cytotec asli di jakarta9...
obat aborsi jakarta wa 081336238223 jual obat aborsi cytotec asli di jakarta9...
 
Beyond Numbers A Holistic Approach to Forensic Accounting
Beyond Numbers A Holistic Approach to Forensic AccountingBeyond Numbers A Holistic Approach to Forensic Accounting
Beyond Numbers A Holistic Approach to Forensic Accounting
 
Unlocking Growth The Power of Outsourcing for CPA Firms
Unlocking Growth The Power of Outsourcing for CPA FirmsUnlocking Growth The Power of Outsourcing for CPA Firms
Unlocking Growth The Power of Outsourcing for CPA Firms
 
Obat Aborsi Malang 0851\7696\3835 Jual Obat Cytotec Di Malang
Obat Aborsi Malang 0851\7696\3835 Jual Obat Cytotec Di MalangObat Aborsi Malang 0851\7696\3835 Jual Obat Cytotec Di Malang
Obat Aborsi Malang 0851\7696\3835 Jual Obat Cytotec Di Malang
 
First Time Home Buyer's Guide - KM Realty Group LLC
First Time Home Buyer's Guide - KM Realty Group LLCFirst Time Home Buyer's Guide - KM Realty Group LLC
First Time Home Buyer's Guide - KM Realty Group LLC
 
hyundai capital 2023 consolidated financial statements
hyundai capital 2023 consolidated financial statementshyundai capital 2023 consolidated financial statements
hyundai capital 2023 consolidated financial statements
 
What are the differences between an international company, a global company, ...
What are the differences between an international company, a global company, ...What are the differences between an international company, a global company, ...
What are the differences between an international company, a global company, ...
 

Coolbot. Overview

  • 1. CoolBOT. Overview Antonio Carlos Domínguez Brito Inst. Univ. SIANI/Dpto. Informática y Sistemas [1] Universidad de Las Palmas de Gran Canaria [www.coolbotproject.org] Spain
  • 2. CoolBOT Overview CoolBOT is a distributed CBSE (Component Based Software Engineering) C++ [2] programming [www.coolbotproject.org] framework
  • 3. CoolBOT Overview CoolBOT's design principles: 1. Component based → easy software integration. 2. Take advantage of multithreading/multicores OSs. 3. System control & monitoring. 4. Transparent distributed [3] computing. [www.coolbotproject.org]
  • 4. CoolBOT Overview A system is composed by integrations and software components [4] [www.coolbotproject.org]
  • 5. CoolBOT Overview There are three kinds of software components: components, views and probes [5] [www.coolbotproject.org]
  • 6. CoolBOT Overview Integrations are processes in the underlying OS. They contain components [6] [www.coolbotproject.org]
  • 7. CoolBOT Overview Integrations also may contain views, and a machine can host several integrations [7] [www.coolbotproject.org]
  • 8. CoolBOT Overview probes are software components to interface non CoolBOT software with CoolBOT systems, and viceversa [8] [www.coolbotproject.org]
  • 9. CoolBOT Overview [9] [www.coolbotproject.org]
  • 10. CoolBOT Overview CoolBOT users program at system level [10] [www.coolbotproject.org]
  • 11. CoolBOT CoolBOT runtime infrastructure Overview supports system level abstractions and execution [11] [www.coolbotproject.org]
  • 12. CoolBOT Overview CoolBOT runtime infrastructure is supported by the OS API and the ACE library for network communications [12] [www.coolbotproject.org]
  • 13. CoolBOT CoolBOT Components [13] [www.coolbotproject.org]
  • 14. CoolBOT CoolBOT Components CoolBOT components are port automata (input port data packets receptions trigger automaton transitions) [14] [www.coolbotproject.org]
  • 15. CoolBOT CoolBOT Components Meta state running implements component's functionality. It is user defined [15] [www.coolbotproject.org]
  • 16. CoolBOT CoolBOT Components Components' input and output ports constitute its external [16] interface. Through them they [www.coolbotproject.org] receive and send port packets (data packets)
  • 17. CoolBOT CoolBOT Port Connections Port connections are unidirectional (from input port to output port), and follow a publish/subscribe communication pattern one publisher, multiple subscribers [17] [www.coolbotproject.org]
  • 18. CoolBOT CoolBOT Port Connections Port connections are unidirectional (from input port to output port), and follow a publish/subscribe communication pattern multiple publishers, one subscriber [18] [www.coolbotproject.org]
  • 19. CoolBOT CoolBOT Port Connections Components interact using only port connections. Thus, a system can be seem as a network of components interchanging port packets and running as data driven machines [19] [www.coolbotproject.org]
  • 20. CoolBOT CoolBOT Port Connections There are different typologies for input and output ports for establishing port connections with different communication patterns: fifo on input port, “blackboard” on output port and multipacket. [20] [www.coolbotproject.org]
  • 21. CoolBOT CoolBOT Port Connections Port Connections Typologies Active Publisher/Passive Subscriber (AP/PS) Output Port Input Port Port Connection Type tick There are different tick tick connections typologies for input and last last connections output ports for establishing generic fifo fifo connections port connections with ufifo unbounded fifo connections different communication multipacket patterns: fifo on input port, multipacket multipacket connections “blackboard” on output lazymultipacket port and multipacket.Active Publisher/Passive Subscriber (PP/AS) poster poster poster connections [21] [www.coolbotproject.org]
  • 22. CoolBOT CoolBOT Port Connections A port connection can be established when the typologies of the ports involved are compatible, and the type of port packets they transport are the same [22] [www.coolbotproject.org]
  • 23. CoolBOT CoolBOT Port Connections Integrations are CoolBOT processes hosting component instances at runtime Port connections established between components (local components) in the same integration are supported transparently by the underlying OS thread API [23] [www.coolbotproject.org]
  • 24. CoolBOT CoolBOT Port Connections Integrations are CoolBOT processes hosting component instances at runtime Port connections between components in different integrations are multiplexed over TCP/IP connections [24] [www.coolbotproject.org]
  • 25. CoolBOT CoolBOT Views The second type of software component available in CoolBOT are views CoolBOT views expand component interfaces to decouple and separate system computation and control from graphical interfaces for monitoring and control [25] [www.coolbotproject.org]
  • 26. CoolBOT CoolBOT Views Likewise components, views have also an external interface of input and output ports [26] [www.coolbotproject.org]
  • 27. CoolBOT CoolBOT Views CoolBOT integrations may contain indistinctly components and views As software components views may establish port connections with any other component or view (local or remote) in a system [27] [www.coolbotproject.org]
  • 28. CoolBOT CoolBOT Views CoolBOT integrations may contain indistinctly components and views As software components views may establish port connections with any other component or view (local or remote) in a system [28] [www.coolbotproject.org]
  • 29. CoolBOT CoolBOT Probes The third type of software component available in CoolBOT are probes Expanding even more the concept of component interface probes implement interfaces of input and output ports in order to allow non CoolBoT software to intercommunicate with CoolBoT components [29] [www.coolbotproject.org]
  • 30. CoolBOT CoolBOT Probes The third type of software component available in CoolBOT are probes CoolBOT probes implement interfaces of input and output ports in order to allow non CoolBoT software to intercommunicate with CoolBoT components [30] [www.coolbotproject.org]
  • 31. CoolBOT CoolBOT provides two tools for developing CoolBOT software: Development Tools coolbot-bundle and coolbot-c [31] [www.coolbotproject.org]
  • 32. CoolBOT CoolBOT provides two tools for developing CoolBOT software: Development Tools coolbot-bundle and coolbot-c coolbot-bundle creates [32] workspaces for developing [www.coolbotproject.org] components, views, port packets and integrations
  • 33. CoolBOT CoolBOT provides two tools for developing CoolBOT software: Development Tools coolbot-bundle and coolbot-c coolbot-c is the CoolBOT compiler. We can generate C++ skeletons for components, probes, views, port packets [33] and integrations [www.coolbotproject.org]
  • 34. CoolBOT CoolBOT provides two tools for developing CoolBOT software: Development Tools coolbot-bundle and coolbot-c coolbot-c is the CoolBOT compiler. We can generate C++ skeletons for components, probes, views, port packets and integrations [34] [www.coolbotproject.org]
  • 35. CoolBOT CoolBOT provides two tools for developing CoolBOT software: Development Tools coolbot-bundle and coolbot-c coolbot-c is the CoolBOT compiler. We can generate C++ skeletons for components, probes, views, port packets and integrations [35] [www.coolbotproject.org]
  • 36. CoolBOT CoolBOT provides two tools for developing CoolBOT software: Development Tools coolbot-bundle and coolbot-c coolbot-c is the CoolBOT compiler. We can generate C++ skeletons for components, probes, views, port packets [36] and integrations [www.coolbotproject.org]
  • 37. CoolBOT An Example: A Secure Navigation System This is an integration implementing a Secure Navigation System (SNS) for a mobile robot, concretely a [37] Pioneer 3 DX [www.coolbotproject.org]
  • 38. CoolBOT An Example: A Secure Navigation System It uses Player/Stage for abstracting the robot hardware, a Global ND+ algorithm implementation, in combination with the MbICP algorithm for [38] scan matching [www.coolbotproject.org]
  • 39. CoolBOT An Example: A Secure [39] Navigation System [www.coolbotproject.org]
  • 40. CoolBOT An Example: A Secure Navigation System Component PlayerRobot abstracts the [40] robot hardware [www.coolbotproject.org] using Player/Stage
  • 41. CoolBOT An Example: A Secure Navigation System Component MbICPCorrector implement the MbICP scan matching algorithm to reduce odometry errors [41] [www.coolbotproject.org]
  • 42. CoolBOT An Example: A Secure Navigation System Component GridMap registers range laser sensor data in a grid while the robot navigates [42] [www.coolbotproject.org]
  • 43. CoolBOT An Example: A Secure Navigation System Component ND makes the robot navigates while avoiding obstacles using ND+ algorithm [43] [www.coolbotproject.org]
  • 44. CoolBOT An Example: A Secure Navigation System Component Planner plans which way to get to arrive to a specific point using the grid built by component GridMap. It provides component ND with subobjetives while navigating [44] [www.coolbotproject.org]
  • 45. CoolBOT An Example: A Secure [45] Navigation System [www.coolbotproject.org]
  • 46. CoolBOT An Example: A Secure [46] Navigation System [www.coolbotproject.org]
  • 47. CoolBOT An Example: A Secure [47] Navigation System [www.coolbotproject.org]
  • 48. CoolBOT An Example: A Secure [48] Navigation System [www.coolbotproject.org]
  • 49. CoolBOT An Example: A Secure [49] Navigation System [www.coolbotproject.org]
  • 50. CoolBOT An Example: A Secure [50] Navigation System [www.coolbotproject.org]
  • 51. CoolBOT Conclusions and Future Work ∙ In CoolBOT, decoupling interfaces makes software components deployable and integrable wherever we want, no matter its functionality, or which grade of granularity they have. ▸ Components (implement generic algorithms) ▸ Views (implement graphical interfaces) ▸ Probes (implement generic interfaces) ∙ CoolBOT is an open source project available at: [51] [www.coolbotproject.org] www.coolbotproject.org
  • 52. CoolBOT Conclusions and Future Work ● Ongoing/Future work: 1. Documentation. 2. Integration with ROS. 3. Runtime interpret for integrations. 3.1. Component Name Service. 3.2. Remote instantiation Service. [52] [www.coolbotproject.org]
  • 53. THAT'S ALL! THAT'S ALL! More info in www.coolbotproject.org [53] [www.coolbotproject.org]