This repository contains the Matlab source codes (to use in Robotarium platform) of various rendezvous controllers for consensus control in a multi-agent / multi-robot system.
This repository contains the Matlab source codes (to use in Robotarium platform) of various rendezvous controllers from the state-of-the-art of consensus control in a multi-agent / multi-robot system. In addition, we propose a consensus controller using wireless netowrk measurements which uses the Received Signal Strength (RSS) measurements and the Direction of Arrival (DOA) of wireless signals estimated using the RSS measurements.
Robotarium is a remotely accessible multi-robot experiment testbed provided by the Georgia Tech. https://www.robotarium.gatech.edu/
We have implemented the following consensus control algorithms.
coordinates_based_rendezvous: (Baseline) It relies on the full coordinates (relative positions) of neighbor robots. This is the standard rendezvous algorithm. See https://www.robotarium.gatech.edu/examples/rendezvous for more information on this algorithm.
coordinates_based_connectivity_preserving_rendezvous: It is similar to the above but uses weights (artificial potential fields)
coordinates_based_rendezvous_circumcenter: It relies on the circumcenter of all coordinates (relative positions) of neighbor robots
bearing_only_rendezvous_using_all_bearings: It uses bearing measurements of all neighbor robots from each robot
bearing_only_rendezvous_using_min_and_max_bearings: It uses only the min and max bearings of neighbors from each robot
bearing_only_rendezvous_using_enclosing_circles: It uses bearing measurmeents and enclosing circles algorithm
bearing_only_rendezvous_using_average_bearing: It uses mean of neighbor bearings from each robot
coordinates_based_rendezvous_with_mean_velocity: It uses mean of all neighbor directions
coordinates_based_rendezvous_with_max_velocity: It uses the coordinate of farthest neighbor
coordinates_based_rendezvous_with_min_velocity: It uses the coordinate of the nearest neighbor
We have provided the following utility functions to use it in the experiments. They can also be used as a standalone function.
GetConnectedGraph: This functions provides a connected graph given the coordinates of the agents and a common sensing range.
initialize_robot_positions: This function repositions the randomly positioned robots in the Robotarium simulator to the initial positions supplied as input to the function.
minboundcircle: This is a third-party function that provides a smallest enclosing circle given a set of points. Available in Mathworks File Exchange provided by John D'Errico as "A suite of minimal bounding objects" (v1.2). https://www.mathworks.com/matlabcentral/fileexchange/34767-a-suite-of-minimal-bounding-objects?focused=3820668&tab=function
minboundsemicircle: This is a third-party function that provide a smallest enclosing semicircle given a set of points. (same reference as the previous function).
If you find this work useful, please cite the below paper.
Parasuraman, R. and Min, B.C., 2019. Consensus control of distributed robots using direction of arrival of wireless signals. In Distributed Autonomous Robotic Systems (pp. 17-34). Springer, Cham.
Paper link: https://link.springer.com/chapter/10.1007/978-3-030-05816-6_2 Preprint link: http://www.smart-laboratory.org/publications/ParasuramanDARS2018.pdf
For any queries, issues, and questions with the code, please contact Ramviyas Parasuraman (ramviyas at uga dot edu).
Ramviyas Parasuraman (ramviyas at uga dot edu): http://cobweb.cs.uga.edu/~ramviyas/
Byung-Cheol Min (minb at purdue dot edu): http://web.ics.purdue.edu/~minb/
SMART Lab - Purdue University: http://www.smart-laboratory.org/