{"id":14992258,"url":"https://github.com/openrr/rrt","last_synced_at":"2025-04-05T12:08:20.441Z","repository":{"id":43001654,"uuid":"98265728","full_name":"openrr/rrt","owner":"openrr","description":"RRT (Rapidly-exploring Random Tree) library in Rust","archived":false,"fork":false,"pushed_at":"2025-01-27T16:37:36.000Z","size":53,"stargazers_count":36,"open_issues_count":3,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-29T11:11:21.056Z","etag":null,"topics":["algorithm","pathfinding","pathplan","robotics","rrt","rust","search"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openrr.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}},"created_at":"2017-07-25T04:55:59.000Z","updated_at":"2025-02-08T12:38:22.000Z","dependencies_parsed_at":"2023-02-18T04:31:13.119Z","dependency_job_id":"42ae97c2-9516-4f0c-8247-35dd45968e17","html_url":"https://github.com/openrr/rrt","commit_stats":{"total_commits":79,"total_committers":7,"mean_commits":"11.285714285714286","dds":0.379746835443038,"last_synced_commit":"6614b9502f49a334142ed7f27b91a0cecf0c89db"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openrr%2Frrt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openrr%2Frrt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openrr%2Frrt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openrr%2Frrt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openrr","download_url":"https://codeload.github.com/openrr/rrt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247332612,"owners_count":20921853,"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":["algorithm","pathfinding","pathplan","robotics","rrt","rust","search"],"created_at":"2024-09-24T15:00:53.747Z","updated_at":"2025-04-05T12:08:20.421Z","avatar_url":"https://github.com/openrr.png","language":"Rust","readme":"# rrt\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/openrr/rrt/ci.yml?branch=main\u0026logo=github)](https://github.com/openrr/rrt/actions) [![crates.io](https://img.shields.io/crates/v/rrt.svg?logo=rust)](https://crates.io/crates/rrt) [![docs](https://docs.rs/rrt/badge.svg)](https://docs.rs/rrt) [![discord](https://dcbadge.vercel.app/api/server/8DAFFKc88B?style=flat)](https://discord.gg/8DAFFKc88B)\n\nRRT (Rapidly-exploring Random Tree) library in Rust.\n\nOnly Dual RRT Connect is supported.\n\n## Examples\n\nThere is [an example](https://github.com/openrr/rrt/blob/main/examples/collision_avoid.rs) to solve collision avoid problem.\n\n```bash\ncargo run --release --example collision_avoid\n```\n\nBelow is the simplest example.\nIt search the path from [-1.2, 0.0] to [1.2, 0.0] avoiding [-1, -1] - [1, 1] region.\nThere are only one function `dual_rrt_connect`, which takes `start`, `goal`,\n`is free function`, `random generation function`, `unit length of extend`, `max repeat num`.\n\n```rust\nuse rand::distributions::{Distribution, Uniform};\nlet result = rrt::dual_rrt_connect(\n    \u0026[-1.2, 0.0],\n    \u0026[1.2, 0.0],\n    |p: \u0026[f64]| !(p[0].abs() \u003c 1.0 \u0026\u0026 p[1].abs() \u003c 1.0),\n    || {\n        let between = Uniform::new(-2.0, 2.0);\n        let mut rng = rand::thread_rng();\n        vec![between.sample(\u0026mut rng), between.sample(\u0026mut rng)]\n    },\n    0.2,\n    1000,\n)\n.unwrap();\nprintln!(\"{result:?}\");\nassert!(result.len() \u003e= 4);\n```\n\n## `OpenRR` Community\n\n[Here](https://discord.gg/8DAFFKc88B) is a discord server for `OpenRR` users and developers.\n","funding_links":[],"categories":["Path Planning"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenrr%2Frrt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenrr%2Frrt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenrr%2Frrt/lists"}