From 24370ee10e03f016da239846a6283aeb0267b024 Mon Sep 17 00:00:00 2001 From: zixingjiang Date: Fri, 8 Nov 2024 18:16:44 +0800 Subject: [PATCH] Rename this repo to ndi_ros2_driver --- README.md | 12 ++++++------ ndi_bringup/README.md | 6 +++--- ...s_ros2.jazzy.repos => ndi_ros2_driver.jazzy.repos | 0 3 files changed, 9 insertions(+), 9 deletions(-) rename ndi_ots_ros2.jazzy.repos => ndi_ros2_driver.jazzy.repos (100%) diff --git a/README.md b/README.md index e3ca0cd..fad6daf 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# NDI Optical Tracking Systems ROS2 +# NDI Optical Tracking Systems ROS2 Driver [![Licence](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) -![Build Status](https://github.com/zixingjiang/ndi_ots_ros2/actions/workflows/ci_jazzy.yml/badge.svg) +![Build Status](https://github.com/zixingjiang/ndi_ros2_driver/actions/workflows/ci_jazzy.yml/badge.svg) This repository contains a `ros2_control` driver for [Northern Digital Inc. (NDI)](https://www.ndigital.com/) manufactured optical tracking systems. This driver is a streamlined and updated version of [ICube-Robotics/ndisys_ros2](https://github.com/ICube-Robotics/ndisys_ros2). A comparison of this driver and ICube-Robotics' driver is shown below. @@ -21,18 +21,18 @@ ROS2 Jazzy on Linux (this driver is developed and tested on Ubuntu 24.04 LTS). ## Packages in this repository - `ndi_bringup`: This package contains the configuration files used to launch the driver (using polaris vega as an example). It serves not only as an entry point for the driver, but also as a reference for users to configure the driver for their own systems. - `ndi_description`: This package contains the .rom file and `ros2_control` macros for describing the NDI optical tracking systems. -- `ndi_hardware`: This package contains the `ros2_control` hardware interface for NDI optical tracking systems. This package is built upon NDI's Combined API (C++) v1.9.7, which is shipped with this package at [ndi_hardware/external](https://github.com/zixingjiang/ndi_ots_ros2/tree/jazzy/ndi_hardware/external). +- `ndi_hardware`: This package contains the `ros2_control` hardware interface for NDI optical tracking systems. This package is built upon NDI's Combined API (C++) v1.9.7, which is shipped with this package at [ndi_hardware/external](https://github.com/zixingjiang/ndi_ros2_driver/tree/jazzy/ndi_hardware/external). ## Getting started 1. **Clone this repository in your ros2 workspace**. Taking `~/ndi_ros2_ws` as an example: ```bash mkdir -p ~/ndi_ros2_ws/src cd ~/ndi_ros2_ws/src - git clone https://github.com/zixingjiang/ndi_ots_ros2.git + git clone https://github.com/zixingjiang/ndi_ros2_driver.git ``` Currently, the `pose_broadcaster` package used by this driver and the new `ros2_control` features it depends on have not yet been synced to the ROS2 Jazzy release (probably in mid-November 2024), for now we have to them from source. To do this, you need to import the `ros2_control` and `ros2_controllers` packages into your workspace using the provided .repos file. ```bash - vcs import . < ndi_ots_ros2/ndi_ots_ros2.jazzy.repos + vcs import . < ndi_ros2_driver/ndi_ros2_driver.jazzy.repos ``` Since `ros2_control` is currently under active development, you may not be able to build it from the latest source code against the released ROS2 Jazzy package due to being out of sync. Therefore, it is recommended that you checkout `ros2_control` to version 4.19.0. ```bash @@ -100,7 +100,7 @@ ROS2 Jazzy on Linux (this driver is developed and tested on Ubuntu 24.04 LTS). 2. **ROS2 topics**. Taking `tracker_1` as an example, its pose can be accessed in topic `/tracker_1_pose_broadcaster/pose`. ## Use this driver in your own project -If you want to use this driver in your own project, it is recommended to take `ndi_bringup` as an example and write your own bringup package. You may find [this guide](https://github.com/zixingjiang/ndi_ots_ros2/blob/jazzy/ndi_bringup/README.md) helpful. +If you want to use this driver in your own project, it is recommended to take `ndi_bringup` as an example and write your own bringup package. You may find [this guide](https://github.com/zixingjiang/ndi_ros2_driver/blob/jazzy/ndi_bringup/README.md) helpful. ## Acknowledgement This driver is written with reference to [ICube-Robotics/ndisys_ros2](https://github.com/ICube-Robotics/ndisys_ros2). diff --git a/ndi_bringup/README.md b/ndi_bringup/README.md index 11e253c..5e9f5ef 100644 --- a/ndi_bringup/README.md +++ b/ndi_bringup/README.md @@ -2,7 +2,7 @@ If you want to use the driver in your own project, you are not advised to modify `ndi_description` and `ndi_hardware` packages as the driver is designed to put all customization and configuration in the bringup package. It is recommended to take this package as an example and write your own bringup package. To do so, you need the following steps. ## 1. Write your URDF file -Write your URDF file with reference to [urdf/polaris_vega_setup.urdf.xacro](https://github.com/zixingjiang/ndi_ots_ros2/blob/jazzy/ndi_bringup/urdf/polaris_vega_setup.urdf.xacro). Include the `ndi_tracker` xacro macro defined in `ndi_description`: [ndi_tracker.ros2_control.xacro](https://github.com/zixingjiang/ndi_ots_ros2/blob/jazzy/ndi_description/urdf/ndi_tracker.ros2_control.xacro) in your URDF file's `ros2_control` tag to load the trackers you are interested in tracking. Name and SROM file of the tracker should be provided as arguments to the macro, and should be distinct for each tracker. +Write your URDF file with reference to [urdf/polaris_vega_setup.urdf.xacro](https://github.com/zixingjiang/ndi_ros2_driver/blob/jazzy/ndi_bringup/urdf/polaris_vega_setup.urdf.xacro). Include the `ndi_tracker` xacro macro defined in `ndi_description`: [ndi_tracker.ros2_control.xacro](https://github.com/zixingjiang/ndi_ros2_driver/blob/jazzy/ndi_description/urdf/ndi_tracker.ros2_control.xacro) in your URDF file's `ros2_control` tag to load the trackers you are interested in tracking. Name and SROM file of the tracker should be provided as arguments to the macro, and should be distinct for each tracker. **Example: polaris_vega_setup.urdf.xacro** ```xml @@ -41,7 +41,7 @@ Write your URDF file with reference to [urdf/polaris_vega_setup.urdf.xacro](http ``` ## 2. Write your controller manager configuration file -Write your controller manager configuration file with reference to [config/polaris_vega_controllers.yaml](https://github.com/zixingjiang/ndi_ots_ros2/blob/jazzy/ndi_bringup/config/polaris_vega_controllers.yaml). You should configure the pose broadcaster for each tracker you defined in your URDF file. Tracker names should be consistent with the names you provided in the URDF file. +Write your controller manager configuration file with reference to [config/polaris_vega_controllers.yaml](https://github.com/zixingjiang/ndi_ros2_driver/blob/jazzy/ndi_bringup/config/polaris_vega_controllers.yaml). You should configure the pose broadcaster for each tracker you defined in your URDF file. Tracker names should be consistent with the names you provided in the URDF file. **Example: polaris_vega_controllers.yaml** ```yaml @@ -74,7 +74,7 @@ tracker_2_pose_broadcaster: ``` ## 3. Write your launch file -Write your launch file with reference to [launch/polaris_vega.launch.py](https://github.com/zixingjiang/ndi_ots_ros2/blob/jazzy/ndi_bringup/launch/polaris_vega.launch.py). You should launch the following nodes with the URDF and configuration file you written to bring up the driver. +Write your launch file with reference to [launch/polaris_vega.launch.py](https://github.com/zixingjiang/ndi_ros2_driver/blob/jazzy/ndi_bringup/launch/polaris_vega.launch.py). You should launch the following nodes with the URDF and configuration file you written to bring up the driver. - `robot_state_publisher/robot_state_publisher` for publishing robot description. You should provide the URDF file you written as an argument. - `controller_manager/ros2_control_node` for launching the `ros2_control` stack to run the NDI hardware interface and pose broadcasters. You should provide the controller manager configuration file you written as an argument. - `controller_manager/spawner` for spawning each pose broadcaster you defined in the controller manager configuration file. diff --git a/ndi_ots_ros2.jazzy.repos b/ndi_ros2_driver.jazzy.repos similarity index 100% rename from ndi_ots_ros2.jazzy.repos rename to ndi_ros2_driver.jazzy.repos