All Projects → NVIDIA-AI-IOT → isaac_ros_apriltag

NVIDIA-AI-IOT / isaac_ros_apriltag

Licence: other
CUDA-accelerated Apriltag detection

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to isaac ros apriltag

isaac ros visual odometry
Visual odometry package based on hardware-accelerated NVIDIA Elbrus library with world class quality and performance.
Stars: ✭ 101 (+140.48%)
Mutual labels:  ros, ros2, ros2-foxy
ros-gst-bridge
a bidirectional ros to gstreamer bridge and utilities for dynamic pipelines
Stars: ✭ 46 (+9.52%)
Mutual labels:  ros, ros2
scout ros
This repository ROS package is suit for scout 2 and scout mini
Stars: ✭ 30 (-28.57%)
Mutual labels:  ros, ros2
trac ik
ROS 2 port of `trac_ik`, an alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL.
Stars: ✭ 14 (-66.67%)
Mutual labels:  ros, ros2
aws-robomaker-robotics-curriculum
Introductory robotics curriculum
Stars: ✭ 78 (+85.71%)
Mutual labels:  ros, ros2
aztarna
aztarna, a footprinting tool for robots.
Stars: ✭ 85 (+102.38%)
Mutual labels:  ros, ros2
multicam calibration
No description or website provided.
Stars: ✭ 91 (+116.67%)
Mutual labels:  ros, apriltags
linorobot2
Autonomous mobile robots (2WD, 4WD, Mecanum Drive)
Stars: ✭ 97 (+130.95%)
Mutual labels:  ros, ros2
astuff sensor msgs
A set of messages specific to each sensor supported by AutonomouStuff.
Stars: ✭ 37 (-11.9%)
Mutual labels:  ros, ros2
awesome-webots
Awesome Webots
Stars: ✭ 46 (+9.52%)
Mutual labels:  ros, ros2
rclex
Rclex: ROS 2 Client Library for Elixir
Stars: ✭ 77 (+83.33%)
Mutual labels:  ros, ros2
dynamixel control
ros2_control packages for ROBOTIS Dynamixel
Stars: ✭ 69 (+64.29%)
Mutual labels:  ros2, ros2-foxy
drl grasping
Deep Reinforcement Learning for Robotic Grasping from Octrees
Stars: ✭ 160 (+280.95%)
Mutual labels:  ros, ros2
NuttX
Official micro-ROS RTOS
Stars: ✭ 63 (+50%)
Mutual labels:  ros, ros2
microstrain inertial
ROS driver for all of MicroStrain's current G and C series products. To learn more visit
Stars: ✭ 44 (+4.76%)
Mutual labels:  ros, ros2-foxy
ROS
ROS机器人操作系统 学习(写于2020年夏)
Stars: ✭ 102 (+142.86%)
Mutual labels:  ros, ros2
Awesome Robotic Tooling
Tooling for professional robotic development in C++ and Python with a touch of ROS, autonomous driving and aerospace.
Stars: ✭ 1,876 (+4366.67%)
Mutual labels:  ros, ros2
KRS
The Kria Robotics Stack (KRS) is a ROS 2 superset for industry, an integrated set of robot libraries and utilities to accelerate the development, maintenance and commercialization of industrial-grade robotic solutions while using adaptive computing.
Stars: ✭ 26 (-38.1%)
Mutual labels:  ros, ros2
docker
Docker-related material to setup, configure and develop with micro-ROS hardware.
Stars: ✭ 32 (-23.81%)
Mutual labels:  ros2
smacha
SMACHA is a meta-scripting, templating, and code generation engine for rapid prototyping of ROS SMACH state machines.
Stars: ✭ 15 (-64.29%)
Mutual labels:  ros

isaac_ros_apriltag


WARNING

Isaac ROS Apriltag has moved to NVIDIA-ISAAC-ROS (2021-10-20). Please visit here to find new development and file issues.


Overview

This ROS2 node uses the NVIDIA GPU-accelerated AprilTags library to detect AprilTags in images and publishes their poses, IDs, and additional metadata. This has been tested on ROS2 (Foxy) and should build and run on x86_64 and aarch64 (Jetson). It is modeled after and comparable to the ROS2 node for CPU AprilTags detection.

For more information on the Isaac GEM that this node is based off of, see the latest Isaac SDK documentation here.

For more information on AprilTags themselves, including the paper and the reference CPU implementation, click here.

System Requirements

This Isaac ROS package is designed and tested to be compatible with ROS2 Foxy on Jetson hardware.

Jetson

  • AGX Xavier or Xavier NX
  • JetPack 4.6

x86_64

  • CUDA 10.2+ supported discrete GPU
  • VPI 1.1.11
  • Ubuntu 18.04+

Docker

Precompiled ROS2 Foxy packages are not available for JetPack 4.6 (based on Ubuntu 18.04 Bionic). You can either manually compile ROS2 Foxy and required dependent packages from source or use the Isaac ROS development Docker image from Isaac ROS Common based on images from jetson-containers.

Run the following script in isaac_ros_common to build the image and launch the container:

$ scripts/run_dev.sh <optional path>

You can either provide an optional path to mirror in your host ROS workspace with Isaac ROS packages, which will be made available in the container as /workspaces/isaac_ros-dev, or you can setup a new workspace in the container.

Package Dependencies

Note: `isaac_ros_common' is used for running tests and/or creating a development container. It also contains VPI Debian packages that can be installed natively on a development machine without the container.

Quickstart

  1. Create a ROS2 workspace if one is not already prepared:
    mkdir -p your_ws/src
    Note: The workspace can have any name; the quickstart assumes you name it your_ws.
  2. Clone this package repository to your_ws/src/isaac_ros_apriltag. Check that you have Git LFS installed before cloning to pull down all large files.
    cd your_ws/src && git clone https://github.com/NVIDIA-AI-IOT/isaac_ros_apriltag
  3. Build and source the workspace:
    cd your_ws && colcon build --symlink-install && source install/setup.bash
  4. (Optional) Run tests to verify complete and correct installation:
    colcon test
  5. Start isaac_ros_apriltag using the prebuilt executable:
    ros2 run isaac_ros_apriltag isaac_ros_apriltag
  6. In a separate terminal, spin up a calibrated camera publisher to /image_rect and /camera_info using any package (for example, v4l2_camera):
    ros2 run v4l2_camera v4l2_camera_node --ros-args -r /image_raw:=/image_rect
  7. Observe the AprilTag detection output /tag_detections on a separate terminal with the command:
    ros2 topic echo /tag_detections

Configuration

You will need to calibrate the intrinsics of your camera if you want the node to determine 3D poses for tags instead of just detection and corners as 2D pixel coordinates. See here for more details.

Replacing apriltag_ros with isaac_ros_apriltag

  1. Add a dependency on isaac_ros_apriltag to your_package/package.xml and your_package/CMakeLists.txt. The original apriltag_ros dependency may be removed entirely.
  2. Change the package and plugin names in any *.launch.py launch files to use isaac_ros_apriltag and AprilTagNode, respectively.

See Also

  • isaac_ros_image_pipeline: Accelerated metapackage offering similar functionality to the standard CPU-based image_pipeline metapackage
  • isaac_ros_common: Utilities for robust ROS2 testing, in conjunction with launch_test

Isaac ROS Apriltag Pipeline Tutorial

Objective

This tutorial will help you quickly run and experiment with the full Isaac ROS Apriltag pipeline, from camera frames to tag detections.

Tutorial

  1. Complete the Quickstart steps above.
  2. Connect a compatible camera to your Jetson and set up the camera publisher stream. Your camera vendor may offer a specific ROS2-compatible camera driver package. Alternatively, many generic cameras are compatible with the v4l2_camera package.
    Important: Ensure that the camera stream publishes Image and CameraInfo pairs to the topics /image_raw and /camera_info, respectively.
  3. Ensure that your workspace has been built and sourced, if you have not done so already:
    cd your_ws && colcon build --symlink-install && source install/setup.bash
  4. Finally, launch the pre-composed pipeline launchfile:
    ros2 launch isaac_ros_apriltag isaac_ros_apriltag_pipeline.launch.py

Detections will show up at /tag_detections.

Note For best performance on Jetson, ensure that power settings are configured appropriately (Power Management for Jetson).

Next Steps

Now that you have successfully launched the full Isaac ROS Apriltag pipeline, you can easily adapt the provided launchfile to integrate with your existing ROS2 environment.

Alternatively, since the AprilTagNode is provided as a ROS2 Component, you can also compose the accelerated Apriltag processor directly into an existing executable.

Package Reference

isaac_ros_apriltag

Overview

The isaac_ros_apriltag package offers functionality for detecting poses from AprilTags in the frame. It largely replaces the apriltag_ros package, though an included dependency on the ImageFormatConverterNode plugin of the isaac_ros_image_proc package also functions as a way to replace the CPU-based image format conversion in cv_bridge.

Available Components

Component Topics Subscribed Topics Published Parameters
AprilTagNode camera/image_rect, camera/camera_info: The input camera stream tag_detections: The detection message array
tf: The tag poses
family: The tag family for the detector (this value can only be 36h11 at this time)
size: The tag edge size in meters, assuming square markers
max_tags: The maximum number of tags to be detected, which is 20 by default
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].