{"id":19601407,"url":"https://github.com/aerorust/arsdk-rs","last_synced_at":"2025-04-27T17:31:53.662Z","repository":{"id":78266107,"uuid":"256731541","full_name":"AeroRust/arsdk-rs","owner":"AeroRust","description":"Arsdk-rs - PoC of SDK for https://parrot.com #drones 🛩️","archived":false,"fork":false,"pushed_at":"2025-01-21T14:29:07.000Z","size":343,"stargazers_count":20,"open_issues_count":9,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-22T18:59:23.101Z","etag":null,"topics":["drones","rustlang"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/AeroRust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-04-18T11:02:26.000Z","updated_at":"2024-11-24T13:58:47.000Z","dependencies_parsed_at":"2023-03-10T15:15:12.170Z","dependency_job_id":null,"html_url":"https://github.com/AeroRust/arsdk-rs","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/AeroRust%2Farsdk-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AeroRust%2Farsdk-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AeroRust%2Farsdk-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AeroRust%2Farsdk-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AeroRust","download_url":"https://codeload.github.com/AeroRust/arsdk-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251177927,"owners_count":21548132,"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":["drones","rustlang"],"created_at":"2024-11-11T09:18:19.090Z","updated_at":"2025-04-27T17:31:53.333Z","avatar_url":"https://github.com/AeroRust.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# arsdk-rs   [![crates.io](https://img.shields.io/crates/v/arsdk-rs.svg)](https://crates.io/crates/arsdk-rs) [![Documentation](https://docs.rs/arsdk-rs/badge.svg)](https://docs.rs/arsdk-rs) [![MPL 2.0 License](https://img.shields.io/badge/license-apache2-green.svg)](LICENSE-APACHE) [![MIT License](https://img.shields.io/badge/license-mit-blue.svg)](LICENSE-MIT)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)\n\n## 🛠 Project status: Proof of concept\n\nThis project was a Proof of concept Software Development Kit for Parrot drones.\n\nDue to the recent development and the pivotting of the Parrot company, we've moved our efforts to a new Open-source project called MAVLink.\nMAVLink is a messaging protocol that is compatible with multiple autopilots (PX4, ArduPilot), multiple hardware and there are many open-source projects build around it to support different aspect of controlling drones, planes and marien and other vehicles.\n\n## ℹ Resources\n- AeroRust mav repository: https://github.com/AeroRust/mav\n- PX4: https://px4.io\n- ArduPilot: https://ardupilot.org\n- MAVLink: https://mavlink.io\n\n\n## jumpingsumo-rs   [![crates.io](https://img.shields.io/crates/v/jumpingsumo-rs.svg)](https://crates.io/crates/jumpingsumo-rs) [![Documentation](https://docs.rs/jumpingsumo-rs/badge.svg)](https://docs.rs/jumpingsumo-rs)\n\n## bebop2\n\n### Not released yet\n\n## Useful information related to the official C SDK\n\n### Commands:\n\nId's of the commands and their values can be found in the file: `build/libARCommands/libARCommands/ARCOMMANDS_Ids.h`\n\n\n### Filters:\n\n@TODO Figure out what the Filters actually do.\n\n`eARCOMMANDS_FILTER_STATUS ARCOMMANDS_Filter_FilterCommand (ARCOMMANDS_Filter_t *filter, uint8_t *buffer, uint32_t len, eARCOMMANDS_FILTER_ERROR *error)` found in `build/libARCommands/gen/Sources/ARCOMMANDS_Filter.c` has 3 parameters in the order:\n\n1. `commandFeature = ARCOMMANDS_ReadWrite_Read8FromBuffer`\n2. `commandClass = ARCOMMANDS_ReadWrite_Read8FromBuffer`\n3. `commandId = ARCOMMANDS_ReadWrite_Read16FromBuffer`\n\nBased on these parameters it triggers a filter behavior, e.g.:\n    `filter-\u003eCmdGenericDefaultBehavior`\n\n```c\n/**\n * @brief Status code for ARCOMMANDS_Filter_FilterCommand function\n */\ntypedef enum {\n    ARCOMMANDS_FILTER_STATUS_ALLOWED = 0, ///\u003c The command should pass the filter\n    ARCOMMANDS_FILTER_STATUS_BLOCKED, ///\u003c The command should not pass the filter\n    ARCOMMANDS_FILTER_STATUS_UNKNOWN, ///\u003c Unknown command. The command was possibly added in a newer version of libARCommands, or is an invalid command.\n    ARCOMMANDS_FILTER_STATUS_ERROR, ///\u003c The filtering of the command failed.\n} eARCOMMANDS_FILTER_STATUS;\n\n/**\n * @brief ARCOMMANDS_Filter object holder\n */\ntypedef struct ARCOMMANDS_Filter_t ARCOMMANDS_Filter_t;\n\n/**\n * @brief Creates a new ARCOMMANDS_Filter_t\n * @param defaultBehavior The default behavior of the filter (must be either ARCOMMANDS_FILTER_STATUS_BLOCKED or ARCOMMANDS_FILTER_STATUS_ALLOWED).\n * @param error Optionnal pointer which will hold the error code.\n * @warning This function allocates memory.\n * @note The memory must be freed by a call to ARCOMMANDS_Filter_DeleteFilter.\n * @return A new ARCOMMANDS_Filter_t instance. NULL in case of error.\n */\nARCOMMANDS_Filter_t* ARCOMMANDS_Filter_NewFilter (eARCOMMANDS_FILTER_STATUS defaultBehavior, eARCOMMANDS_FILTER_ERROR *error);\n```\n\n\n## Sphinx simulator\n\nhttps://developer.parrot.com/docs/sphinx/\n\n1. Follow the installation guide\n\n2. Simulate drone\n\n```bash\nsphinx /opt/parrot-sphinx/usr/share/sphinx/drones/{DRONE}.drone::stolen_interface={YOUR_INTERFACE}:eth0:192.168.42.1/24\n```\n\n**NOTE:** Since we don't have video streaming handling from the drone, you should disable the front camera for `Bebeop2` (`::with_front_cam=0`).\nOtherwise you won't be able to connect (performa a handshake) to it:\n\n```bash\nsphinx /opt/parrot-sphinx/usr/share/sphinx/drones/{DRONE}.drone::stolen_interface={YOUR_INTERFACE}:eth0:192.168.42.1/24::with_front_cam=0\n```\n\n\n* *You can find your interface with:*\n    ```bash\n    iwconfig\n    ```\n\n* Available drones:\n\n    ```bash\n    ls -1a /opt/parrot-sphinx/usr/share/sphinx/drones/\n    ```\n\n    * airborne.drone\n    * anafi4k.drone\n    * bebop2.drone\n    * bebop.drone\n    * bluegrass.drone\n    * disco.drone\n    * mambo.drone\n    * swing.drone\n\n\n3. Run examples with IP:\n\n```rust\nuse arsdk-rs::PARROT_SPHINX_IP;\nuse std::net::{IpAddr, Ipv4Addr};\n\nfn main() {\n    let expected = IpAddr::V4(Ipv4Addr::new(10, 202, 0, 1))\n    assert_eq!(expected, PARROT_SPHINX_IP);\n}\n```\n\n### Video stream:\n\nBased on [pyparrot](https://github.com/amymcgovern/pyparrot/blob/bf4775ec1199b282e4edde1e4a8e018dcc8725e0/pyparrot/DroneVision.py#L78) pointing to the [forum](http://forum.developer.parrot.com/t/streaming-address-of-mambo-fpv-for-videoprojection/6442/6).\nNOTE: It doesn't currently work.\n\nBebop2 (double check): rtsp://10.202.0.1/media/stream2\nAnafi4k: rtsp://10.202.0.1/live\n\n### Telemetry\n\nDocumentation:\n* https://developer.parrot.com/docs/sphinx/visualization.html#tlm-data-logger\n\n\n```bash\ntlm-data-logger inet:127.0.0.1:9060\n```\n\n\n## Code of Conduct\n\nWe have a Code of Conduct so as to create a more enjoyable community and\nwork environment. Please see the [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md)\nfile for more details.\n\n## License\n\nLicensed under either of\n\n * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\nDual MIT/Apache2 is strictly more permissive\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faerorust%2Farsdk-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faerorust%2Farsdk-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faerorust%2Farsdk-rs/lists"}