{"id":21424848,"url":"https://github.com/yxiao1996/swarmsim","last_synced_at":"2026-01-03T11:53:00.299Z","repository":{"id":43167060,"uuid":"175124591","full_name":"yxiao1996/SwarmSim","owner":"yxiao1996","description":"Multi-robot control simulation environmrnt build on top on Mobile Robotics Simulation Toolbox, implemented 1)some algorithm for formation control 2)mapping, localization and SLAM based on Kalman filter..","archived":false,"fork":false,"pushed_at":"2020-07-29T08:13:13.000Z","size":32998,"stargazers_count":119,"open_issues_count":1,"forks_count":31,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-23T07:22:12.869Z","etag":null,"topics":["formation-control","robotics-simulation","slam","swarm-robotics"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yxiao1996.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-03-12T03:01:28.000Z","updated_at":"2024-12-29T12:55:15.000Z","dependencies_parsed_at":"2022-08-30T11:11:39.637Z","dependency_job_id":null,"html_url":"https://github.com/yxiao1996/SwarmSim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yxiao1996%2FSwarmSim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yxiao1996%2FSwarmSim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yxiao1996%2FSwarmSim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yxiao1996%2FSwarmSim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yxiao1996","download_url":"https://codeload.github.com/yxiao1996/SwarmSim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243933382,"owners_count":20370989,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["formation-control","robotics-simulation","slam","swarm-robotics"],"created_at":"2024-11-22T21:24:55.425Z","updated_at":"2026-01-03T11:53:00.270Z","avatar_url":"https://github.com/yxiao1996.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"## My Multi-Robot Simulation Environment\n* ME740 Intelligent Mechanics Course Project \n\nThis environment will implment three kinds of multi-robot control strategies on two kinds of dynamics.\nControl strategy: virtual structure, behavior-based control, leader-follower control. \nDynamics: differential drive dynamics, omni-directional dynamics. \n\nTODO:\n\n1.add formation to behavior=-based control; \n2.try reinforcement learning on bahavior-based model;\n\n\n### Introduction\n\nThere are wo theoretical views on the control of multiple robot systems: centralized systems and decentralized systems. \n\nIn a centralized system, a central unit is responsible for making decision for indivisuals and monitoring the accomplishment of the missoin. Communication only happen between central unit and indibisual, not between individuals. \n\nIn a decentralized system, indivisuals can communicate with each other and share information. Each indiviual is responsible for a portion of the global mission. \n\nVirtual structure[2] is an exmample of control strategy for a centralized system, where a central unit is controling the motion of all robots in the system. \n\nBehavior-based strategy[3] is used for decentralized system. Each robot have an inner finite state machine. The states in the fsm correspond to different motor schemas. During running time, the robot switching among different motor schemas(through switching among states) to accomplish its individual goal. \n\nLeader-follower strategy[4][5] is a hybrid of centralized and decentralized systems. The leader is controlled by central unit, while the followers operate on there own using sensor data. \n\n### Information\nprerequisite:\n1. All code wrote and tested with Matlab 2018a\n2. Please install the Mobile Robotics Simulation Toolbox from Matlab before running any simulation.\n\n* MATLAB Libraries already included(huge thanks to authors)\n1. error_ellipse(draw ellipse given mean and covariance)\n2. icp(point set mathcing algorithm)\n3. munkres(hungarian algorithm)\n   \nhow to run the demos\n\n* scripts for running the demo simulations can be found in root folder of this repository. Here is a list of all the demos and their corresponding scripts:\n1. Behavior based control: runBehaviorBased.m\n2. Behavior based control for mapping the environment: runBehaiviorBasedMapping.m\n3. Behavior based swarm mapping in a noisy environment with Kalman filter: runBehaviorBasedNoisyMapping.m\n4. Leader-follower control: runLeaderFollower.m\n5. Leader-follower control with noisy and Kalman filter: runLeaderFollowerNoisy.m\n6. Virtual structure control: runVirtualStructure.m\n7. Extended Kalman filter localization: runEKFLocalization.m\n8. Extended Kalman filter SLAM: runEKFSLAM.m\n\n* To run these scripts, open and run with MATLAB. Don't forget to include the repository in MATLAB search path. \n\nReference:\n1. Mobile Robotics Simulation Toolbox: https://www.mathworks.com/matlabcentral/fileexchange/66586-mobile-robotics-simulation-toolbox\n2. M. Anthony Lewis, Kar-Han Tan. High Precision Formation Control of Mobile Robots Using Virtual Structures. Autonomous Robots, 1997.\n3. Tucker Balch, Ronald C. Arkin. Behavior-Based Formation Control for Multirobot Teams. IEEE Transactions on Robotics and Automation, 1998.\n4. Luca Cosolini, Fabio Morbidi, Domenico Prattichizzo, Mario Tosques. Leader-follower formation control of nonholonomic mobile robots with input constraints.\n5. Jaydev P. Desai, James P. Ostrowski, Vijay Kumar. Modeling and Control of Formations of Nonholonomic Mobile Robot. IEEE Transactions on Robotics and Automation, 2001.\n   \n### DEMOs\n\n1.virtial-structure control with 3 differential drive robots\n\n\u003cimg src=\"imgs/vs_3.webp\" height=400\u003e\n\n2.virtial-structure control with 6 omni-directional drive robots\n\n\u003cimg src=\"imgs/vs_5.webp\" height=400\u003e\n\n3.behavior-based control with 3 differential drive robots(state machine)\n\n\u003cimg src=\"imgs/bb_0.webp\" height=400\u003e\n\n4.behavior-based control with 5 differential drive robots(motor schemas blend)\n\n\u003cimg src=\"imgs/bb_5.webp\" height=400\u003e\n\n5.leader-follower control in V-shape with 3 differential drive robots\n\n\u003cimg src=\"imgs/lf_v.webp\" height=400\u003e\n\n6.leader-follower control in Diamond-shape with 3 differential drive robots\n\n\u003cimg src=\"imgs/lf_d.webp\" height=400\u003e\n\n7.behavior-based mapping with three differential robots\n\n\u003cimg src=\"imgs/behavior-based-mapping.png\" height=400\u003e\n\n8.behavior-based mapping with Gaussian noise added to odometry and robot detectors.\n\n\u003cimg src=\"imgs/noisy-mapping2.PNG\" height=400\u003e\n\n9.behavior-based mapping with Gaussain noise added on odometry. Vanilla Kalman filter is implemented to estimate the real pose from noisy odometry data.\n\n\u003cimg src=\"imgs/noisy-mapping-kf.PNG\" height=400\u003e\n\n10.localization using extended Kalman filter with correspondences of landmarks\n\n\u003cimg src=\"imgs/ekf_local.webp\" height=400\u003e\n\n11.left: Leader-follower formation with additive Gaussian noise. right: Leader-follower with additive Gaussian noise,estimating individual pose using Kalman filter.\n\n\u003cimg src=\"imgs/lf_noise.webp\" height=300\u003e\n\u003cimg src=\"imgs/lf_kal.webp\" height=300\u003e\n\n12EKF SLAM: simutaniously localization and mapping based on extended Kalman filter. \n\n\u003cimg src=\"imgs/ekf_slam.webp\" height=400\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyxiao1996%2Fswarmsim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyxiao1996%2Fswarmsim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyxiao1996%2Fswarmsim/lists"}