{"id":1109,"date":"2019-11-19T09:15:46","date_gmt":"2019-11-19T09:15:46","guid":{"rendered":"https:\/\/www.cpswarm.eu\/?page_id=1109"},"modified":"2019-11-19T09:56:51","modified_gmt":"2019-11-19T09:56:51","slug":"cpswarm-workbench","status":"publish","type":"page","link":"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/","title":{"rendered":"CPSwarm Workbench"},"content":{"rendered":"<p>The CPSwarm Workbench and associated tools have significantly evolved over the course of the project. The evolutions have resulted in a system with better integration and individual components with high potential for exploitability beyond the CPSwarm project.<br \/>\nThe following summarizes the current state of the components and provides a walkthrough of the CPSwarm system, and the set of libraries provided by the CPswarm project: Modelling and Behavior libraries.<\/p>\n<hr>\n<h1>CPSwarm Workbench and Associated Tools<\/h1>\n<hr>\n<p>Fig. 1 illustrates the final architecture design for the CPSwarm system with the following set of components:<\/p>\n<ol>\n<li>Launcher Service<\/li>\n<li>Modelling Tool<\/li>\n<li>Simulation and Optimization Environment<\/li>\n<li>Code Generator<\/li>\n<li>Deployment Tool<\/li>\n<li>Monitoring &amp; Command Tool<\/li>\n<\/ol>\n<figure><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/CPSwarm-Architecture.jpg\" alt=\"CPSwarm Architecture\"><figcaption><center>Fig.1 &#8211; CPSwarm Architecture.<\/center><\/figcaption><\/figure>\n<p>This design divides the CPSwarm system into two logical groups based on the deployment model. The components that are used during design time are part of the CPSwarm Workbench. On the other hand, the Monitoring &amp; Command Tool and Swarm Member are considered as part of the Runtime Environment.<\/p>\n<p>To leverage all the features provided by the CPSwarm Workbench, the entry point for the user is the Launcher Service. The next section explains all the design and development tasks that the user can execute using the CPSwarm Tools accessibile and configurable through the Launcher Service.<\/p>\n<hr>\n<h2>CPSwarm functionalities<\/h2>\n<hr>\n<p>The Launcher Service is a thin, central component that acts as a portal and starting point of interaction with other components of the system. The Launcher Service manages inputs and outputs of the component and offers a minimalistic user interface to guide the user toward different design steps and to set components configurations for launching different components, see Figure 2.<\/p>\n<figure><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/Swarm-modelling.jpg\" alt=\"CPSwarm Architecture\"><figcaption><center>Fig.2 &#8211; Screenshot of the Launcher.<\/center><\/figcaption><\/figure>\n<p>For more details, please check out <a href=\"https:\/\/github.com\/cpswarm\/launcher\" target=\"_blank\" rel=\"noopener noreferrer\"> the Launcher on GitHub.<\/a> Through the Launcher, the user has access to the following functionalities provided by the CPSwarm tools.<\/p>\n<hr>\n<h3>Swarm Modelling<\/h3>\n<hr>\n<p>During the Swarm Modelling phase, CPSwarm workbench guides the user to define\/model several aspects of CPS swarm. The launcher helps the user to manage its different modelling projects by selecting an existing project or creating a new one and open it.<\/p>\n<figure><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/11\/ModellingTool.jpg\" alt=\"CPSwarm Architecture\"><figcaption><center>Fig.3 &#8211; Screenshot of the Modelling Tool while designing the architecture of a drone.<\/center><\/figcaption><\/figure>\n<p>Once a Modelling project is opened, Figure 3, the user can define or update one of the CPS swarm aspects by using <a href=\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/05\/D5.3-Updated-CPSwarm-Modelling-Tool-v1.0_Final_NoRev.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">CPSwarm Modelling language.<\/a> Among these aspects, the first one can be the swarm behavior which are modelled as UML state machine. For more details, please check out <a href=\"https:\/\/github.com\/cpswarm\/modelio-cpswarm-modeler\" target=\"_blank\" rel=\"noopener noreferrer\">the Swarm Modelling Tool on GitHub.<\/a><\/p>\n<hr>\n<h3>Simulation &amp; Optimization<\/h3>\n<hr>\n<p>The Simulation and Optimization step allows testing the swarm modelled with Modelling Tool. The Launcher can be used to run the Simulation and Optimization Orchestrator (SOO).<\/p>\n<figure><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/11\/OptimizationMonitoring.jpg\" alt=\"CPSwarm Architecture\"><figcaption><center>Fig.4 &#8211; Optimization Monitoring.<\/center><\/figcaption><\/figure>\n<p>The Simulation and Optimization Orchestrator is the centralized component connected, from one side to the Launcher and from the other side to the Optimization Tool (OT) and to a set of distributed Simulation Managers (SM)s using the eXtensible Messaging and Presence Protocol (XMPP) protocol. During the optimization, the process can be monitored using the data provided by the SMs. Figure 4 shows a chart generated by <a href=\"https:\/\/thingsboard.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Thingsboard<\/a> to monitor a running optimization). For more details, please check out the following projects on CPSwarm GitHub and the relative wiki pages:<\/p>\n<p><a href=\"https:\/\/github.com\/cpswarm\/SimulationOrchestrator\" target=\"_blank\" rel=\"noopener noreferrer\">Simulation and Optimization Orchestrator<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/cpswarm\/FREVO\" target=\"_blank\" rel=\"noopener noreferrer\">Optimization Tool<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/cpswarm\/StageSimulationManager\" target=\"_blank\" rel=\"noopener noreferrer\">Simulation Manager for Stage<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/cpswarm\/GazeboSimulationManager\" target=\"_blank\" rel=\"noopener noreferrer\">Simulation Manager for Gazebo<\/a><\/p>\n<hr>\n<h3>Code Generation<\/h3>\n<hr>\n<p>The Code Generator has a central role in driving the flow of the toolchain from the modeling part to the deployment of the code on the actual CPS. Inside the CPSwarm Workbench, the Code Generator is responsible to translate design-level modeled behaviors into concrete and executable code as it is shown in Figure 5.<\/p>\n<figure><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/11\/CodeGenerator.png\" alt=\"CPSwarm Architecture\"><figcaption><center>Fig.5 &#8211; Interconnection between different workbench&#8217;s components.<\/center><\/figcaption><\/figure>\n<p>The first version of the Code Generator supports the generation of code starting from the formal description of a Finite State Machine using the SCXML standard. For more details, please check out <a href=\"https:\/\/github.com\/cpswarm\/code-generator\" target=\"_blank\" rel=\"noopener noreferrer\">the Code Generation Tool on GitHub.<\/a><\/p>\n<hr>\n<h3>Swarm Deployment<\/h3>\n<hr>\n<p>The swarm deployment stage is where the source codes, configuration files, or artifacts are transferred to swarm devices. The source codes are generated codes as well as library files and other handwritten pieces of code. Configuration files are generated after modelling or provided by the software developer or the deployer. Lastly, artifacts are packages that include software or other resources.<\/p>\n<figure><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/11\/DeployTool.jpg\" alt=\"CPSwarm Architecture\"><figcaption><center>Fig.6 &#8211; Deployment Tool\u2019s web interface for viewing the devices and their status.<\/center><\/figcaption><\/figure>\n<p>Once the necessary files are ready for deployment, the user can launch the server component of the Deployment Tool and then open its web interface. Figure 6 is a screenshot of the device management page on the Deployment Tool\u2019s web interface. The web interface of the Deployment Tool enables the user to see available swarm devices or initiate the secure registration of new ones. The user may update the meta-information about the devices, see the current running applications, and monitor the status of the devices in a list or on the map. For more details, please check out <a href=\"https:\/\/github.com\/cpswarm\/deployment-tool-ui\" target=\"_blank\" rel=\"noopener noreferrer\"> the Swarm Deployment Tool on GitHub.<\/a><\/p>\n<hr>\n<h3>Monitoring and Command<\/h3>\n<hr>\n<p>The monitoring and command part of the workflow serves as a mean to support the configuration of the swarm and on the other side to monitor its behavior during operation. The Monitoring and Command Tool is used as part of the Runtime Environment and after the deployment phase. The user may use the Launcher to start the Monitoring and Command Tool\u2019s server and its web-based graphical user interface. The basic user interface is depicted in Figure 7.<\/p>\n<figure><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/11\/MonitorTool.jpg\" alt=\"CPSwarm Architecture\"><figcaption><center>Fig.7 &#8211; Basic Monitoring and Configuration Tool user interface<\/center><\/figcaption><\/figure>\n<p>The user interface enables the user to start a mission, monitor the actual status of the swarm, as well as to send configuration\/reconfiguration commands to modify\/update the swarm behavior, e.g., to abort the mission or to re-purpose part of the swarm members.<\/p>\n<hr>\n<h2>CPSwarm Libraries<\/h2>\n<hr>\n<p>The CPSwarm opensource software includes&nbsp; this set of libraries that can be used to design and develop CPSs swarm applications.<\/p>\n<hr>\n<h3>Modelling Library<\/h3>\n<hr>\n<p>The Modelling Tool, within the CPSwarm project includes the software <a href=\"https:\/\/www.modelio.org\/downloads\/download-modelio.html\" target=\"_blank\" rel=\"noopener noreferrer\"> Modelio<\/a> and its CPSwarm extension. Modelio is a standalone desktop application that provides a UI for user to do generic modelling work. The CPSwarm extension is a plugin of Modelio which provides CPSwarm-related functionality.<\/p>\n<figure><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/ModellingLib.jpg\" alt=\"CPSwarm Architecture\"><figcaption><center>Fig.7 &#8211; Modelling project of the Modelling library.<\/center><\/figcaption><\/figure>\n<p>The modelling library is needed by the Modelio CPSwarm extension, so Modelio CPSwarm extension build includes modelling library release to be deployed and available together with the extension. Figure 7 shows the Modelling Library as part of the Modelling Tool. This model is exported and included during CPS extension build.<\/p>\n<hr>\n<h3>Behavior Library<\/h3>\n<hr>\n<p>The Behavior Library consists of Abstraction Library, Swarm Library, and Communication Library. It is based on the latest ROS long-term support release <a href=\"https:\/\/wiki.ros.org\/kinetic\/\" rel=\"nofollow\">ROS Kinetic Kame<\/a>. Newer versions may also work.<\/p>\n<hr>\n<h4>Abstraction Library<\/h4>\n<hr>\n<div>The CPSwarm Abstraction Library covers two different roles: the former is to provide a set of CPS-specific adaptation libraries in order to access platform-specific information of a robotic system in a standard and coherent way. The latter is to provide support for the development of<\/div>\n<div>algorithms using a Model-Driven approach that can be deployed on CPSs using an automated code generation process.<\/div>\n<div><\/div>\n<div>The abstraction library is subdivided in three main parts:<\/div>\n<ul>\n<li>Hardware functions: The CPSwarm hardware functions library contains all abstraction library functions that implement simple functions required by the behavior algorithms.<\/li>\n<li>Sensing&amp;Actuation: The sensing and actuation library contains all functions for providing sensor information and for controlling the CPSs using their actuators.<\/li>\n<li>Hardware drivers: The CPSwarm hardware drivers library contains the drivers required to access special hardware components of the CPSs.<\/li>\n<\/ul>\n<div><\/div>\n<div>For more information about the components please refer to the documentation in the respective GitHub projects:<\/div>\n<div><\/div>\n<div><a href=\"https:\/\/github.com\/cpswarm\/hardware_functions\">Hardware functions on GitHub<\/a><\/div>\n<div><\/div>\n<div><a href=\"https:\/\/github.com\/cpswarm\/sensing_actuation\">Sensing&amp;Actuation library on GitHub <\/a><\/div>\n<div><\/div>\n<div>Hardware drivers yet to be released<\/div>\n<div><\/div>\n<hr>\n<h4>Swarm Library<\/h4>\n<hr>\n<p>The CPSwarm Swarm Library is the one that is used to store the swarm behaviors.<\/p>\n<p>It is composed by three main components:<\/p>\n<ul>\n<li>Complex Behaviors Library,&nbsp; which contains the swarm behaviors for the cyber-physical systems (CPSs) that are required to perform the use cases of the CPSwarm project. Thanks to the modular design of the CPS behaviors, new swarm behaviors can be added easily. A behavior is based on the Robot Operating System (ROS). It mainly consists of the state machines that perform complex missions using several simpler swarm algorithms from the CPSwarm Swarm Behaviors Library. Additionally, it contains ROS launch files and configuration files that allow to perform real world missions as well as simulations<\/li>\n<li>Swarm behaviors library, which contains all swarm behaviors that implement swarm algorithms. Each swarm behavior consists of a Robot Operating System (ROS) package.<\/li>\n<li>Swarm functions library, which provides simple functionalities that enable swarm algorithms to work. It is part of the swarm library.<\/li>\n<\/ul>\n<div><\/div>\n<div>For more information about the components please refer to the documentation in the respective GitHub projects:<\/div>\n<p><a href=\"https:\/\/github.com\/cpswarm\/complex_behaviors\">Complex Behaviours on GitHub<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/cpswarm\/swarm_behaviors\">Swarm Behaviours on GitHub<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/cpswarm\/swarm_functions\">Swarm functions on GitHub<\/a><\/p>\n<hr>\n<h4>Communication Library<\/h4>\n<hr>\n<p>The Communication Library provides a unified interface tools and swarm members can use to interact with each other. It is the duty of the library to ensure that all communications happen with the desired reliability, security level and latency. After evaluating the requirements established by our core use cases and the design goals of a swarm in general, we concluded that interactions have a well-defined set of primitives and actions:<\/p>\n<ul>\n<li>Swarm members need to be discoverable on the network<\/li>\n<li>Events and commands need to be sent and received<\/li>\n<li>Parameters need to be remotely adjustable<\/li>\n<li>Telemetry needs to be sent back to operators and other subscribers<\/li>\n<\/ul>\n<p>For more details, please check out <a href=\"https:\/\/github.com\/cpswarm\/swarmio\" target=\"_blank\" rel=\"noopener noreferrer\">the Communication Library on GitHub.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The CPSwarm Workbench and associated tools have significantly evolved over the course of the project. The evolutions have resulted in a system with better integration and individual components with high potential for exploitability beyond the CPSwarm project. The following summarizes the current state of the components and provides a walkthrough [\u2026] <\/p>\n<div class=\"clear\"><\/div>\n<p><a class=\"more_link clearfix\" href=\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/\" rel=\"nofollow\">Read More<\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1109","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CPSwarm Workbench - cpswarm.eu<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CPSwarm Workbench - cpswarm.eu\" \/>\n<meta property=\"og:description\" content=\"The CPSwarm Workbench and associated tools have significantly evolved over the course of the project. The evolutions have resulted in a system with better integration and individual components with high potential for exploitability beyond the CPSwarm project. The following summarizes the current state of the components and provides a walkthrough [\u2026] Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/\" \/>\n<meta property=\"og:site_name\" content=\"cpswarm.eu\" \/>\n<meta property=\"article:modified_time\" content=\"2019-11-19T09:56:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/CPSwarm-Architecture.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/\",\"url\":\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/\",\"name\":\"CPSwarm Workbench - cpswarm.eu\",\"isPartOf\":{\"@id\":\"https:\/\/www.cpswarm.eu\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/CPSwarm-Architecture.jpg\",\"datePublished\":\"2019-11-19T09:15:46+00:00\",\"dateModified\":\"2019-11-19T09:56:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/#primaryimage\",\"url\":\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/CPSwarm-Architecture.jpg\",\"contentUrl\":\"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/CPSwarm-Architecture.jpg\",\"width\":1471,\"height\":691},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cpswarm.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CPSwarm Workbench\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cpswarm.eu\/#website\",\"url\":\"https:\/\/www.cpswarm.eu\/\",\"name\":\"cpswarm.eu\",\"description\":\"A Horizon 2020 project on applications of swarm algorithms in Cyber-Physical Systems\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cpswarm.eu\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CPSwarm Workbench - cpswarm.eu","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/","og_locale":"en_US","og_type":"article","og_title":"CPSwarm Workbench - cpswarm.eu","og_description":"The CPSwarm Workbench and associated tools have significantly evolved over the course of the project. The evolutions have resulted in a system with better integration and individual components with high potential for exploitability beyond the CPSwarm project. The following summarizes the current state of the components and provides a walkthrough [\u2026] Read More","og_url":"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/","og_site_name":"cpswarm.eu","article_modified_time":"2019-11-19T09:56:51+00:00","og_image":[{"url":"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/CPSwarm-Architecture.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/","url":"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/","name":"CPSwarm Workbench - cpswarm.eu","isPartOf":{"@id":"https:\/\/www.cpswarm.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/#primaryimage"},"image":{"@id":"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/CPSwarm-Architecture.jpg","datePublished":"2019-11-19T09:15:46+00:00","dateModified":"2019-11-19T09:56:51+00:00","breadcrumb":{"@id":"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/#primaryimage","url":"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/CPSwarm-Architecture.jpg","contentUrl":"https:\/\/www.cpswarm.eu\/wp-content\/uploads\/2019\/10\/CPSwarm-Architecture.jpg","width":1471,"height":691},{"@type":"BreadcrumbList","@id":"https:\/\/www.cpswarm.eu\/index.php\/cpswarm-workbench\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cpswarm.eu\/"},{"@type":"ListItem","position":2,"name":"CPSwarm Workbench"}]},{"@type":"WebSite","@id":"https:\/\/www.cpswarm.eu\/#website","url":"https:\/\/www.cpswarm.eu\/","name":"cpswarm.eu","description":"A Horizon 2020 project on applications of swarm algorithms in Cyber-Physical Systems","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cpswarm.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.cpswarm.eu\/index.php\/wp-json\/wp\/v2\/pages\/1109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cpswarm.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cpswarm.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cpswarm.eu\/index.php\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cpswarm.eu\/index.php\/wp-json\/wp\/v2\/comments?post=1109"}],"version-history":[{"count":59,"href":"https:\/\/www.cpswarm.eu\/index.php\/wp-json\/wp\/v2\/pages\/1109\/revisions"}],"predecessor-version":[{"id":1202,"href":"https:\/\/www.cpswarm.eu\/index.php\/wp-json\/wp\/v2\/pages\/1109\/revisions\/1202"}],"wp:attachment":[{"href":"https:\/\/www.cpswarm.eu\/index.php\/wp-json\/wp\/v2\/media?parent=1109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}