{"id":20154687,"url":"https://github.com/sebastianbrzustowicz/quadcontrol","last_synced_at":"2026-05-30T20:31:36.677Z","repository":{"id":219056677,"uuid":"725433478","full_name":"sebastianbrzustowicz/QuadControl","owner":"sebastianbrzustowicz","description":"Java + JUnit. Quadcopter control software for RaspberryPi 4 with remote client communication via API.","archived":false,"fork":false,"pushed_at":"2024-03-07T20:35:30.000Z","size":2030,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T01:31:59.456Z","etag":null,"topics":["api","concurrency","control","control-systems","java","junit","quadcopter","raspberrypi4","raspbian","real-time","remote","remote-control","respberry-pi","rpi4","threading","threads","websocket"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sebastianbrzustowicz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2023-11-30T06:05:11.000Z","updated_at":"2024-01-25T07:26:14.000Z","dependencies_parsed_at":"2024-01-25T08:25:56.143Z","dependency_job_id":"c9f5aabb-2a91-4313-b06c-960fc60bb0f0","html_url":"https://github.com/sebastianbrzustowicz/QuadControl","commit_stats":{"total_commits":33,"total_committers":1,"mean_commits":33.0,"dds":0.0,"last_synced_commit":"ff27f9adbfb0dac9cbf5a0caeca6820ab16e6bba"},"previous_names":["sebastianbrzustowicz/quadcontrol"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sebastianbrzustowicz/QuadControl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianbrzustowicz%2FQuadControl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianbrzustowicz%2FQuadControl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianbrzustowicz%2FQuadControl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianbrzustowicz%2FQuadControl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebastianbrzustowicz","download_url":"https://codeload.github.com/sebastianbrzustowicz/QuadControl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebastianbrzustowicz%2FQuadControl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33709269,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["api","concurrency","control","control-systems","java","junit","quadcopter","raspberrypi4","raspbian","real-time","remote","remote-control","respberry-pi","rpi4","threading","threads","websocket"],"created_at":"2024-11-13T23:28:05.635Z","updated_at":"2026-05-30T20:31:36.658Z","avatar_url":"https://github.com/sebastianbrzustowicz.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## QuadControl\n\nQuadControl is a Java-based embedded application for compatible communication with a dedicated API.  \t    \nA large part of this application is inner loop thrust control of the rotors based on a sensor data.      \nApp was created especially for Raspberry Pi 4 with Raspberry Pi OS, because dedicated libraries for RPi 4 were used.\t\t    \nCompatible API which this embedded app is communicating with is shared [here](https://github.com/sebastianbrzustowicz/Robot-tasker-API).     \nYou need to run the code on the Raspberry Pi 4 to be sure that the program works correctly.    \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/sebastianbrzustowicz/QuadControl/assets/66909222/b6c7f220-a283-405c-b590-1ca32ed11348\" width=\"390\" /\u003e\n  \u003cimg src=\"https://github.com/sebastianbrzustowicz/QuadControl/assets/66909222/b6256ff8-bd4b-4982-90d3-1922e3322412\" width=\"390\" /\u003e\n\u003c/p\u003e\n\n### Disclaimer\nComplete version which guarantee best performance is not available publicly.\t\t  \nOnly alpha version of app with license restrictions is available.\t\t  \nPlease contact me if you are interested in cooperation.\t\t  \nI am willing to help. \t\n\n## Transferred data\n\nThe data retrieved from the API have to be the same in client and vehicle.      \nHandshake should be established between server and client according to data order.    \nThe software provides cyclic data exchange with frequency specified in main file.    \nThe data is sent and received in raw string format and its values stands for variables below.    \n\nFrame sent to API with sensors data:\n```\nVEHICLE                                 // \u003c- fixed prefix for vehicle message\n0                                       // \u003c- actual roll from sensor\n0                                       // \u003c- actual pitch from sensor\n0                                       // \u003c- actual yaw from sensor\n0                                       // \u003c- actual altitude from sensor\n0                                       // \u003c- actual isClamp\nEND                                     // \u003c- fixed ending statement of message\n```\n\nFrame received from API with desired values data:\n```\nCLIENT                                  // \u003c- fixed prefix for client message\n1                                       // \u003c- mode\n0                                       // \u003c- vtol\n0                                       // \u003c- pitchd\n0                                       // \u003c- rolld\n0                                       // \u003c- altituded\n0                                       // \u003c- yawd\nfalse                                   // \u003c- camTrig\nfalse                                   // \u003c- camTog\n0                                       // \u003c- camPitch\nfalse                                   // \u003c- clamp\nEND                                     // \u003c- fixed ending statement of message\n```\n\n## Tests\n\nSome simple JUnit tests have been implemented:\n```java\ntestUpdateControlData()\ntestCollisionDetection()\ntestExecutionTime()\n```\n\n## License\n\nQuadControl is released under the CC BY-NC-ND 4.0 license.\n\n## Author\n\nSebastian Brzustowicz \u0026lt;Se.Brzustowicz@gmail.com\u0026gt;\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastianbrzustowicz%2Fquadcontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebastianbrzustowicz%2Fquadcontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebastianbrzustowicz%2Fquadcontrol/lists"}