{"id":21331998,"url":"https://github.com/quantumbagel/dronetracker","last_synced_at":"2025-07-12T10:31:11.278Z","repository":{"id":170747920,"uuid":"645366542","full_name":"quantumbagel/DroneTracker","owner":"quantumbagel","description":"A drone-following script for NC State's AERPAW drones.","archived":false,"fork":false,"pushed_at":"2024-08-04T14:24:42.000Z","size":289,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-05T15:02:19.003Z","etag":null,"topics":["axis-camera","internship-project","kafka-python","onvif","python","python3","recording","trigonometry","vapix"],"latest_commit_sha":null,"homepage":"https://quantumbagel.github.io/CameraDistance","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quantumbagel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-05-25T13:46:23.000Z","updated_at":"2024-08-04T14:24:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"5b1e5969-5a37-471e-9d31-e64176ff4008","html_url":"https://github.com/quantumbagel/DroneTracker","commit_stats":null,"previous_names":["quantumbagel/cameradistance"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantumbagel%2FDroneTracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantumbagel%2FDroneTracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantumbagel%2FDroneTracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quantumbagel%2FDroneTracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quantumbagel","download_url":"https://codeload.github.com/quantumbagel/DroneTracker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225814896,"owners_count":17528295,"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":["axis-camera","internship-project","kafka-python","onvif","python","python3","recording","trigonometry","vapix"],"created_at":"2024-11-21T22:45:39.571Z","updated_at":"2024-11-21T22:45:40.218Z","avatar_url":"https://github.com/quantumbagel.png","language":"Python","readme":" # DroneTracker\n\n*trigonometry, kafka, and drone tracking walk into a bar*\n\n\n## What's this?\nThis program controls AXIS cameras supporting [VAPIX](https://www.axis.com/vapix-library/) to track drones and record video of the drones.\nIt has been customized for NC State's [AERPAW](https://aerpaw.org) program.\n\n\n### Program Stack\n\u003cimg src=\"img/DroneTrackerFlow.svg\"\u003e\u003c/img\u003e\n\n\n\n\n### Configuration Options\n\nThese options are all in `config.yml`.\n\n| Configuration Option                                          | Description                                                                                                                                                 |\n|---------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| camera/alt                                                    | The altitude (from sea level) for the camera's lens.                                                                                                        |\n| camera/lat, camera/long                                       | The latitude and longitude of the camera's lens.                                                                                                            |\n| camera/offset                                                 | The camera's offset from north (clockwise)                                                                                                                  |\n| camera/deactivate_pos/pan, camera/deactivate_pos/tilt         | The pan/tilt to deactivate the camera to when it is not in use.                                                                                             |\n| camera/min_step                                               | The minimum change in the pan/tilt (degrees) from the camera's current position for the program to send an update                                           |\n| camera/min_zoom_step                                          | The minimum change in the zoom cycles from the camera's current zoom for the program to send an update                                                      |\n| camera/delay                                                  | The delay after the program detects it should not be recording for the camera to stop recording.                                                            |\n| camera/maximum_zoom                                           | The maximum zoom of the camera.                                                                                                                             |\n| camera/zoom_error                                             | How much space to have outside of the zoom (1.2 has 20% more space, 0.8 has 80% of the space)                                                               |\n| camera/lead                                                   | The amount of seconds to lead the drone based on its velocity.                                                                                              |\n| camera/move                                                   | Whether the camera should actually be connected to. If false, the camera_login section of the config is not required to be set.                             |\n| camera/store_recordings                                       | The path to store the exported recordings in,                                                                                                               |\n| camera/stop_recording_after                                   | The amount of time after the last packet is received from Kafka before the recording should be stopped and the camera deactivated                           |\n| drone/x, drone/y, drone/z                                     | The size of the drone (height, width, depth)                                                                                                                |\n| scale/dist, scale/width                                       | At 1x zoom, looking straight ahead, the camera's horizontal FOV at `dist` meters away is `width`. This has been calibrated for the AXIS Q-8615E PTZ camera. |\n| camera_login/ip, camera_login/username, camera_login/password | The ip, username, and password of the camera.                                                                                                               |\n| kafka/ip                                                      | The ip of the Kafka server to connect to for both command and data updates                                                                                  |\n| kafka/data_topic, kafka/command_topic                         | The topics the program should receive data and command information from, respectively                                                                       |\n| kafka/hz                                                      | The amount of times per second to check for updates on both data and command streams                                                                        |\n| logs                                                          | The log level of the program. Valid options: \"debug\" \"info\" \"warning\" \"error\"                                                                               |\n\n\n### Utilities\n\n| Utility Purpose       | Description                                                                                                                                                                 |\n|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `cameracontroller.py` | A simple test program that will attempt to connect to and control the camera using the keyboard.                                                                            |\n| `submit_info.py`      | A program to send a certain latitude, longitude and altitude to the camera a certain amount of times with a certain amount of delay in between each packet.                 |\n| `test_submit.py`      | A program that is the same as `submit_info.py`, except it sends close, random positions around the camera. You will need to manually edit the file to set these parameters. |\n\n### Running\n\nThis program is designed to be run in a Dockerfile.\n\nUse Docker Compose to build: `sudo docker compose build \u0026\u0026 sudo docker compose up -d`\n\nThe program will store recordings in the `/opt/DroneTracker/recordings` folder unless you change it in the `docker-compose.yml`\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquantumbagel%2Fdronetracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquantumbagel%2Fdronetracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquantumbagel%2Fdronetracker/lists"}