Concert Framework

= Concert Framework =

Overview
The concert is a multirobot framework running on top of the interactions, appable robot and gateway components that tries enable a centralised workspace on the network (usually LAN) from which to co-ordinate and manage a group of robots, devices involved in some kind of scenario. This can be used standalone, or it can be further developed as a useful bridge to the cloud Some features:


 * Wireless Connectivity : technology for robust handling of wirelessly connected robots.
 * Multi-Service Handling : services as parallelisable orchestration blocks at a higher level
 * Think services running on a web server, but here we have teleop, make a map, annotate a map, foo...
 * Robot Scheduling : expose robots as retaskable resources that can be requested by concert services.
 * Software Sharing : spawn and share access to software instances across concert services.
 * Human Interactions : infrastructure for coercing humans as interactive participants of concert services.

More detailed concept notes can be found if you go walkabout from our Terminology page on the rocon wiki.

https://docs.google.com/drawings/d/1embmVdxk3wqUJENGsKYLnJBs-5gqhWU_mbcmofEw0Y0/pub?w=600&h=350&.png

Features

 * Communications Protocol : the communication protocols and languages for the concert communications layer.
 * Network Robustness : integrating, handling and exposing the latency in the system (esp. wireless and internet connections).
 * Auto-discovery : using zeroconf to enable components on a lan to automagically find each other.
 * Gateway Model : a mechanism for communication interactions between autonomously individual clients (robots).
 * Conductor : a purely mechanical component responsible for gathering and handling the clients in a concert.
 * Interactions Handler : connecting services to human interactive clients and the apps they can run.

= Components =

https://docs.google.com/drawings/d/1f5dqyMMdsXiOS7CWkzpmMNJeJXOnG5xtlHSqLPi7ZyA/pub?w=800&h=400&.png

The Scheduler
The Concert is born to manage collaborations of many different limited resources(e.g robots, devices, and systems) to satisfy various usecase scenarios. For example, food delivery and floor cleaning services should compete each other if there is only one robot to use in the system. The scheduler is designed to mediate these resource allocations among multiple services' resource requests. Please refer Orchestration Section for details.

The concert provides simple compatibility tree based scheduler by default. However, the scheduler design also allows for multiple scheduler implementations. because different system require different scheduling policies.


 * ROS Wiki: http://wiki.ros.org/concert_scheduling
 * Github : https://github.com/utexas-bwi/concert_scheduling

Concert Services
Concert Service is a programmed workflow in a multi-robot-device human ecosystem. It accepts input from users via appropriate interactions, requests robotic resources, or allocate software nodes to provide various experiences to environment. A service can be composed without the language constraints. Currently, it supports to develop services with static link graph, roslaunch, and blockly.

The concert provides the following services by default.

Default Services
 * Concert Administration
 * Indoor 2D Map Preparation
 * Make a Map
 * Map Annotation
 * Teleoperation

Reference


 * ROS Wiki : http://wiki.ros.org/concert_services
 * Github : https://github.com/robotics-in-concert/concert_services

Software Farm
Concert software farm is introduced to manage computing instances being utilised across a multiple services. It includes database management software like world_canvas, service players for BPEL and blockly, and computing modules. In the future, it will manage computing clusters in cloud or remote machines. See Software Farm Section for more details.

The Concert utilises World Canvas as default software to store and serve map and annotation of environment.


 * ROS Wiki : http://wiki.ros.org/concert_software_farm
 * Github : https://github.com/robotics-in-concert/concert_software_farm

Gazebo Concert
Testing the system of A to Z without simulation is high pain if resources are limited and shared with other colleagues. The Concert provides a way to manage spawning and killing of simulated gazebo robots for a concert. It helps to validate and verify the developed services' workflow. It also provides a way to test multi robot collaboration scenario.


 * ROS Wiki : http://wiki.ros.org/concert_service_gazebo
 * Github : https://github.com/robotics-in-concert/concert_services

= Tutorials =