{"id":14992182,"url":"https://github.com/arjo129/rustros_tf","last_synced_at":"2025-07-09T05:35:29.676Z","repository":{"id":44433902,"uuid":"259800854","full_name":"arjo129/rustros_tf","owner":"arjo129","description":"A port of ROS's TF library to rust","archived":false,"fork":false,"pushed_at":"2022-07-14T03:05:59.000Z","size":23835,"stargazers_count":16,"open_issues_count":4,"forks_count":12,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T07:22:16.866Z","etag":null,"topics":["robots","ros","ros-melodic","ros-tf-library","rust","rustros-tf","ubuntu"],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/arjo129.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}},"created_at":"2020-04-29T02:09:06.000Z","updated_at":"2023-03-06T02:36:47.000Z","dependencies_parsed_at":"2022-09-14T13:00:44.622Z","dependency_job_id":null,"html_url":"https://github.com/arjo129/rustros_tf","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjo129%2Frustros_tf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjo129%2Frustros_tf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjo129%2Frustros_tf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arjo129%2Frustros_tf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arjo129","download_url":"https://codeload.github.com/arjo129/rustros_tf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250365809,"owners_count":21418755,"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":["robots","ros","ros-melodic","ros-tf-library","rust","rustros-tf","ubuntu"],"created_at":"2024-09-24T15:00:50.950Z","updated_at":"2025-04-23T03:32:16.988Z","avatar_url":"https://github.com/arjo129.png","language":"Rust","funding_links":[],"categories":["Robot Operating System"],"sub_categories":[],"readme":"# rustros_tf\n[![Build Status](https://travis-ci.com/arjo129/rustros_tf.svg?branch=master)](https://travis-ci.com/arjo129/rustros_tf) | [API Documentation](https://arjo129.github.io/rustros_tf/rustros_tf/index.html) | [crates.io](https://crates.io/crates/rustros_tf)\n\nThis is a rust port of the [ROS tf library](http://wiki.ros.org/tf). It is intended for being used in robots to help keep track of multiple coordinate frames and is part of a larger suite of rust libraries that provide support for various robotics related functionality.\n\n## Features\nSo far the only the following have been implemented:\n* `TfListener` with `lookup_transform` and time traversal. \n\nI am still working on the following:\n* Integration with point clouds. \n* Integration with image geometry.\n* Removal of `ndarray` as a dependency.\n* Adding `nalgebra` related conversion methods. \n* More efficient cache data structure.\n* A `TfBroadcaster` struct.\n* Weed out `unwrap()`s\n\n## Supported platforms\nCurrently only Ubuntu 18.04 running ROS Melodic on x86_64 is tested. It should work on any linux based system with a proper ROS installation.\n\n## Getting Started\nInstall [ROS](http://wiki.ros.org/melodic/Installation) first. On ubuntu, this can be done like so:\n```\nsudo sh -c 'echo \"deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main\" \u003e /etc/apt/sources.list.d/ros-latest.list'\ncurl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get\u0026search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -\nsudo apt update\nsudo apt install ros-melodic-desktop\n```\nYou will also need a fortran compiler.\n```\nsudo apt install gfortran\n```\nAfter installing ROS, you may simply add this crate as a dependency to your cargo project:\n```\n[dependencies]\nrustros_tf = \"0.1.0\"\n```\n\n# Example usage\nThe following example shows a simple lookup. \n```\nextern crate rosrust;\nextern crate rosrust_msg;\nextern crate rustros_tf;\n\nuse rustros_tf::TfListener;\n\nfn main() {\n    rosrust::init(\"listener\");\n    let listener = TfListener::new();\n    \n    let rate = rosrust::rate(1.0);\n    while rosrust::is_ok() {\n        let tf = listener.lookup_transform(\"camera\", \"base_link\", rosrust::Time::new());\n        println!(\"{:?}\", tf);\n        rate.sleep();\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farjo129%2Frustros_tf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farjo129%2Frustros_tf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farjo129%2Frustros_tf/lists"}