{"id":31579189,"url":"https://github.com/divs-spec/skysync","last_synced_at":"2026-04-11T14:02:38.467Z","repository":{"id":316593646,"uuid":"1064032465","full_name":"divs-spec/skysync","owner":"divs-spec","description":"SkySyncSwarm is a unified drone swarm simulation and control platform that merges the best of UAV simulators, swarm coordination libraries, deep learning models, and autonomous mission planning systems into one cohesive project.","archived":false,"fork":false,"pushed_at":"2025-10-05T11:36:21.000Z","size":269,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-05T13:21:48.025Z","etag":null,"topics":["ai-agents","flask","matlab","python3","rrt","scikit-learn","scipy","tcp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/divs-spec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-25T12:56:21.000Z","updated_at":"2025-10-05T11:36:24.000Z","dependencies_parsed_at":"2025-09-26T02:00:39.273Z","dependency_job_id":null,"html_url":"https://github.com/divs-spec/skysync","commit_stats":null,"previous_names":["divs-spec/skysync"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/divs-spec/skysync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/divs-spec%2Fskysync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/divs-spec%2Fskysync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/divs-spec%2Fskysync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/divs-spec%2Fskysync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/divs-spec","download_url":"https://codeload.github.com/divs-spec/skysync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/divs-spec%2Fskysync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31682955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ai-agents","flask","matlab","python3","rrt","scikit-learn","scipy","tcp"],"created_at":"2025-10-05T20:47:50.264Z","updated_at":"2026-04-11T14:02:38.450Z","avatar_url":"https://github.com/divs-spec.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# skysync\n\n**skysyncswarm**— a hybrid Python/MATLAB swarm orchestration stack that turns drone telemetry into coordinated multi-UAV missions using RRT* planning, cooperative tasking, and real-time command delivery.\n\n***skysyncswarm*** is an integrated, research-minded prototype that fuses three core capabilities required for practical multi-UAV systems:\n\nReal-time telemetry \u0026 command exchange (Flask-based server \u0026 client),\n\nTrajectory planning (RRT prototype in Python + MATLAB RRTstar.m reference),\n\nCooperative multiagent behavior (greedy task allocation + APF smoothing inspired by cooperative-attack research).\n\nIt translates streaming telemetry into task assignment and collision-aware waypoint sequences in seconds. The codebase targets reproducible hackathon demos, research validation, and clear migration paths to SITL or field deployments.\n\n----\n\n**🏷️ Problem Statement**\n\nTraditional drone control is single-agent and limited:\n\nManaging multiple drones manually is inefficient.\n\nLack of interoperability between existing swarm simulators, libraries, and AI models.\n\nNo unified platform for simulation → planning → networking → execution.\n\nSkySyncSwarm solves this by providing a plug-and-play ecosystem where swarm behaviors, communication protocols, and mission execution can be developed, tested, and scaled seamlessly.\n\n---\n\n***skysyncswarm*** is a modular swarm orchestration stack that converts real-time drone telemetry into coordinated multi-UAV missions using RRT-style path planning and cooperative allocation. It merges a Flask telemetry hub, a Python RRT planner (plus MATLAB RRTstar.m as a canonical reference), and cooperative guidance ideas (virtual guidance + APF smoothing) into one reproducible demo-ready repository.\n\n----\n\n**Repository Structure**\n\n```\n/comm\n  server.py            # Flask server (endpoints: /update_state, /get_waypoints, /status)\n  client.py            # Example drone client\n/planning\n  rrt.py               # Python RRT (prototype)\n  RRTstar.m            # MATLAB RRT* reference\n/cooperative\n  task_allocator.py    # Greedy nearest/priority assignment\n  apf.py               # Artificial Potential Field smoother\n/control\n  controller.py        # orchestrator_tick(states) -\u003e planned waypoints\n/config\n  drones.json\n  tasks.json\nREADME.md\nrequirements.txt\n\n```\n---\n\n**Prerequisites \u0026 installation**\n\nPython 3.8+\n\n(Optional) MATLAB + MATLAB Engine for Python if you want to call RRTstar.m directly.\n\nRecommended packages (install via pip):\n\n```\npip install -r requirements.txt\n# requirements.txt contains:\n# flask\n# numpy\n# scipy\n# scikit-learn\n# requests\n\n```\n---\n\n**Quickstart — run the demo (Windows / Linux)**\n\nRecommended: run from project root (the folder that contains comm/, control/, etc.)\n\n***Linux / macOS***\n\n```\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\npython -m comm.server            # run server\n# in other terminals:\npython comm/client.py --id drone1\npython comm/client.py --id drone2\n```\n\n***Windows PowerShell***\n\n```\npython -m venv venv\n.\\venv\\Scripts\\Activate.ps1\npip install -r requirements.txt\npython -m comm.server\n# in other PS windows:\npython comm/client.py --id drone1\npython comm/client.py --id drone2\n```\n\nNotes:\n\nIf you run python comm/server.py directly and see ModuleNotFoundError: No module named 'control', either run from project root with python -m comm.server, or use the patched comm/server.py which inserts project root into sys.path.\n\n---\n\n**Concrete outputs (from your run) — verbatim**\n\n***GET /status returned:***\n```\n{\n  \"drone_count\": 1,\n  \"drones\": [\n    \"drone1\"\n  ]\n}\n```\n\n***GET /get_waypoints?id=drone1 returned:***\n```\n{\n  \"waypoints\": [\n    [39.72613775384949, 9.946606646250359, 5.0],\n    [40.52371257406809, 9.075636975967132, 5.0],\n    [40.0, 10.0, 5.0]\n  ]\n}\n```\n---\n\n**Architecture \u0026 module descriptions (technical)**\n\n* comm/server.py\n  \n  * Flask endpoints: ```/update_state```, ```/get_waypoints```, ```/status```.\n  * Maintains in-memory ```DRONE_STATE``` mapping: ```id -\u003e {pos, battery, last_seen}.```\n  * On get_waypoints, snapshots states and calls ```control.controller.orchestrator_tick(states).```\n\n* control/controller.py\n  * orchestrator_tick(states):\n    * Reads tasks (from config or dynamic source).\n    * Calls cooperative.task_allocator.allocate_tasks (greedy nearest + priority).\n    * For each assignment, calls planning.rrt.rrt to compute a path (2D/3D compact RRT).\n    * Applies cooperative.apf.apf_smooth to refine path.\n    * Returns dict[drone_id] -\u003e waypoints.\n\n* planning/rrt.py\n  * Lightweight RRT implementation; parameterizable max_iter, step_size.\n  * Currently basic collision checks are optional — obstacles support can be added.\n\n* cooperative/task_allocator.py\n  * Greedy assignment sorted by (priority desc, distance asc).\n\n* cooperative/apf.py\n  * Artificial Potential Field smoother used to nudge discrete waypoints to smoother, safer paths.\n\n---\n\n**MATLAB integration \u0026 migration path**\n\n* ```planning/RRTstar.m``` is included as the canonical MATLAB research implementation.\n\n* Two integration strategies:\n  * Quick: call RRTstar.m via the MATLAB Engine for Python (matlab.engine).\n\n  * Production: port RRTstar.m to Python/NumPy (or use OMPL bindings) for runtime performance and to remove MATLAB dependency.\n\n---\n\n**Deployment considerations (SITL → real drones)**\n\n* Coordinate transforms: convert local ENU meters → GPS (lat/lon/alt) for MAVLink missions. Consider using geographic libraries (pyproj, geodetic utils).\n\n* Autopilot integration: implement control/drone_interface.py using DroneKit/MAVSDK to upload mission waypoints, or convert list to MAVLink mission items.\n\n* Message bus: for larger swarms, prefer MQTT or ROS2 DDS for multicast instead of HTTP polling.\n\n* Safety: implement geofencing, RTL, battery thresholds, and heartbeat/failsafe logic.\n\n---\n\n**🎯 Use Cases**\n\n- Defense \u0026 Surveillance → Multi-drone patrols with adaptive formations.\n\n- Disaster Response → Swarm search-and-rescue in dynamic terrains.\n\n- Agriculture → Coordinated crop monitoring \u0026 spraying.\n\n- Research \u0026 Academia → Unified platform for swarm robotics studies.\n\n---\n\n**🔑 Unique Selling Points (USP)**\n\n- Unified Framework → Combines simulation, AI, and autonomy in one repo.\n\n- Hackathon-Ready → Ready-to-demo missions with visualizations.\n\n- Scalable \u0026 Modular → Extend with new AI models or swarm algorithms.\n\n- Real-World Applications → Built with real defense and disaster scenarios in mind.\n\n---\n\n**Tech stack**\n\nPython 3, Flask (comms), NumPy/SciPy, scikit-learn (if KMeans used), matplotlib for plotting.\n\nOptional: MATLAB + MATLAB Engine, ROS/ROS2, DroneKit/MAVSDK, Gazebo/SITL.\n\n---\n\n**Contributors**\nDivyani Singh\n\n---\n\n**Contact**\nemail id - ikrakizoi2607@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdivs-spec%2Fskysync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdivs-spec%2Fskysync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdivs-spec%2Fskysync/lists"}