{"id":14992168,"url":"https://github.com/openrr/openrr","last_synced_at":"2025-05-14T10:14:10.539Z","repository":{"id":37093308,"uuid":"322169760","full_name":"openrr/openrr","owner":"openrr","description":"Open Rust Robotics","archived":false,"fork":false,"pushed_at":"2025-03-26T11:37:41.000Z","size":117623,"stargazers_count":542,"open_issues_count":32,"forks_count":30,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-03T22:39:59.710Z","etag":null,"topics":["robotics","robotics-programming","rust","rust-lang"],"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":"2020-12-17T03:31:44.000Z","updated_at":"2025-03-29T01:28:02.000Z","dependencies_parsed_at":"2023-09-22T21:56:50.931Z","dependency_job_id":"f620c03f-fc71-4f3f-a5c0-ea0f6827acc2","html_url":"https://github.com/openrr/openrr","commit_stats":{"total_commits":1116,"total_committers":16,"mean_commits":69.75,"dds":0.7589605734767025,"last_synced_commit":"c1a13a1d0396f9e63367e2017e70a2dfff75e549"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openrr%2Fopenrr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openrr%2Fopenrr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openrr%2Fopenrr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openrr%2Fopenrr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openrr","download_url":"https://codeload.github.com/openrr/openrr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248338897,"owners_count":21087210,"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":["robotics","robotics-programming","rust","rust-lang"],"created_at":"2024-09-24T15:00:50.482Z","updated_at":"2025-04-11T03:39:27.765Z","avatar_url":"https://github.com/openrr.png","language":"Rust","readme":"# openrr: `Open Rust Robotics`\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/openrr/openrr/ci.yml?branch=main\u0026logo=github)](https://github.com/openrr/openrr/actions) [![crates.io](https://img.shields.io/crates/v/openrr.svg?logo=rust)](https://crates.io/crates/openrr) [![codecov](https://codecov.io/gh/openrr/openrr/branch/main/graph/badge.svg?token=28GTOOT4RY)](https://codecov.io/gh/openrr/openrr) [![docs](https://docs.rs/openrr/badge.svg)](https://docs.rs/openrr)\n\n**For developers and future users**\n\n[![docs](https://img.shields.io/badge/docs-main-blue)](https://openrr.github.io/openrr/openrr) [![discord](https://dcbadge.vercel.app/api/server/8DAFFKc88B?style=flat)](https://discord.gg/8DAFFKc88B) [![tutorial](https://img.shields.io/badge/OpenRR-Tutorial-red)](https://github.com/openrr/openrr-tutorial)\n\nOpenRR (pronounced like \"opener\") is Open Rust Robotics platform.\n\n**It's heavily under development.**\n\n## Supported Platforms\n\n|OS|Core|GUI|ROS|ROS2|\n|--|----|---|---|---|\n|Linux (Ubuntu)|✔|✔|✔|✔|\n|macOS         |✔|✔|✔|  |\n|Windows       |✔|✔|  |  |\n\n* You can use ROS *without ROS installation* on Linux/macOS.\n* ROS2 Support is experimental. See [arci-ros2](https://github.com/openrr/openrr/tree/main/arci-ros2) for details.\n\n## Dependencies\n\n### Linux\n\n```bash\nsudo apt install cmake build-essential libudev-dev xorg-dev libglu1-mesa-dev libasound2-dev libxkbcommon-dev protobuf-compiler\n```\n\n* cmake build-essential (openrr-planner (assimp-sys))\n* libudev-dev (arci-gamepad-gilrs)\n* xorg-dev libglu1-mesa-dev libxkbcommon-dev (openrr-gui (egui))\n* libasound2-dev (arci-speak-audio)\n* protobuf-compiler (openrr-remote)\n\n## Architecture\n\n![architecture](https://raw.githubusercontent.com/openrr/openrr/main/img/architecture.png)\n\n`arci` is a hardware abstraction layer for openrr.\nCurrently [ROS1](https://ros.org) and [urdf-viz](https://github.com/openrr/urdf-viz) (as a static simulator (actually it's just a viewer)) are implemented.\n\nYou can write platform/hardware independent code if you use `arci` traits.\n\n## What is OpenRR?\n\nOpenRR contains..\n\n* abstract robot interfaces (`arci`)\n* concrete implementation of the interfaces (`arci-ros`, `arci-urdf-viz`, ...)\n* library which uses the interfaces (`openrr-client`, ...)\n* tools (`openrr-apps`)\n* pure libraries nothing to do with `arci` (`openrr-planner`, ...)\n\n## Tools\n\nCurrently we have some tools to control real/sim robots.\n\nSee [openrr-apps](https://github.com/openrr/openrr/tree/main/openrr-apps) for details.\n\n### joint_trajectory_sender\n\nInspired by [joint_state_publisher_gui](http://wiki.ros.org/joint_state_publisher)\n\n\u003cimg width=\"400\" alt=\"joint_sender\" src=\"https://user-images.githubusercontent.com/43724913/106704866-27600680-6630-11eb-91ee-5eb29515fe46.png\"\u003e\n\nYou can use this GUI not only for ROS but anything if you implement `arci::JointTrajectoryClient` and write a small binary main function.\n\n### robot_command\n\nGeneral CLI to access `arci` robot clients. It supports not only sending joint trajectory directly but it supports inverse kinematics with self-collision check, and navigation.\n\n## Format\n\nTo format use nightly rustfmt,\n\n```bash\ncargo +nightly fmt\n```\n\n## License\n\nLicensed under the [Apache License, Version 2.0](https://github.com/openrr/openrr/blob/main/LICENSE).\n\n## Related openrr repositories\n\n* [k](https://github.com/OpenRR/k) : kinematics library\n* [ros-nalgebra](https://github.com/OpenRR/ros-nalgebra) : rosrust nalgebra converter generator\n* [rrt](https://github.com/OpenRR/rrt) : RRT-dual-connect path planner\n* [trajectory](https://github.com/OpenRR/trajectory) : trajectory interpolator\n* [urdf-rs](https://github.com/OpenRR/urdf-rs) : URDF parser\n* [urdf-viz](https://github.com/OpenRR/urdf-viz): URDF visualizer\n* ~~[gear](https://github.com/OpenRR/gear)~~ : (deprecated) motion planning library, but it is openrr-planner now.\n\n## Why OpenRR?\n\nWe strongly believe that Rust is the future of robotics.\nOpenRR is the world first robotics platform which is made by Rust, made for Rust.\nIt can be a reference, a base for the future robotic people, like us.\n\n## Contribution\n\nWe appreciate for your any contributions!\n[Create an issue](https://github.com/openrr/openrr/issues/new) at first!\n\n[Here](https://discord.gg/8DAFFKc88B) is a discord server.\n\n## Using OpenRR\n\nYou can read the tutorial books at the following links.\n\n* [English](https://openrr.github.io/openrr-tutorial/en/html)\n* [Japanese](https://openrr.github.io/openrr-tutorial/ja/html)\n","funding_links":[],"categories":["Robot Operating System"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenrr%2Fopenrr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenrr%2Fopenrr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenrr%2Fopenrr/lists"}