MCPcopy Create free account
hub / github.com/NVIDIA-ISAAC-ROS/isaac_ros_pose_estimation

github.com/NVIDIA-ISAAC-ROS/isaac_ros_pose_estimation @v4.5-0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v4.5-0 ↗ · + Follow
342 symbols 950 edges 86 files 46 documented · 13% updated 6d agov4.5-0 · 2026-07-07★ 46938 open issues

Browse by type

Functions 268 Types & classes 74
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Isaac ROS Pose Estimation

Deep learned, NVIDIA-accelerated 3D object pose estimation

image

Overview

Isaac ROS Pose Estimation contains three ROS 2 packages to predict the pose of an object. Refer the following table to see the differences of them:

Node Novel Object wo/ Retraining TAO Support Speed Quality Maturity
isaac_ros_foundationpose N/A Fast Best New
isaac_ros_dope x x Fastest Good Time-tested
isaac_ros_centerpose x Faster Better Established

Those packages use GPU acceleration for DNN inference to estimate the pose of an object. The output prediction can be used by perception functions when fusing with the corresponding depth to provide the 3D pose of an object and distance for navigation or manipulation.

image

isaac_ros_foundationpose is used in a graph of nodes to estimate the pose of a novel object using 3D bounding cuboid dimensions. It’s developed on top of FoundationPose model, which is a pre-trained deep learning model developed by NVLabs. FoundationPose is capable for both pose estimation and tracking on unseen objects without requiring fine-tuning, and its accuracy outperforms existing state-of-art methods.

FoundationPose comprises two distinct models: the refine model and the score model. The refine model processes initial pose hypotheses, iteratively refining them, then passes these refined hypotheses to the score model, which selects and finalizes the pose estimation. Additionally, the refine model can serve for tracking, that updates the pose estimation based on new image inputs and the previous frame’s pose estimate. This tracking process is more efficient compared to pose estimation, which speeds exceeding 120 FPS on the Jetson Thor platform.

isaac_ros_dope is used in a graph of nodes to estimate the pose of a known object with 3D bounding cuboid dimensions. To produce the estimate, a DOPE (Deep Object Pose Estimation) pre-trained model is required. Input images may need to be cropped and resized to maintain the aspect ratio and match the input resolution of DOPE. After DNN inference has produced an estimate, the DNN decoder will use the specified object type, along with the belief maps produced by model inference, to output object poses.

NVLabs has provided a DOPE pre-trained model using the HOPE dataset. HOPE stands for Household Objects for Pose Estimation. HOPE is a research-oriented dataset that uses toy grocery objects and 3D textured meshes of the objects for training on synthetic data. To use DOPE for other objects that are relevant to your application, the model needs to be trained with another dataset targeting these objects. For example, DOPE has been trained to detect dollies for use with a mobile robot that navigates under, lifts, and moves that type of dolly. To train your own DOPE model, refer to the Training your Own DOPE Model Tutorial.

isaac_ros_centerpose has similarities to isaac_ros_dope in that both estimate an object pose; however, isaac_ros_centerpose provides additional functionality. The CenterPose DNN performs object detection on the image, generates 2D keypoints for the object, estimates the 6-DoF pose up to a scale, and regresses relative 3D bounding cuboid dimensions. This is performed on a known object class without knowing the instance-for example, a CenterPose model can detect a chair without having trained on images of that specific chair.

Pose estimation is a compute-intensive task and therefore not performed at the frame rate of an input camera. To make efficient use of resources, object pose is estimated for a single frame and used as an input to navigation. Additional object pose estimates are computed to further refine navigation in progress at a lower frequency than the input rate of a typical camera.

Packages in this repository rely on accelerated DNN model inference using Triton or TensorRT from Isaac ROS DNN Inference. For preprocessing, packages in this rely on the Isaac ROS DNN Image Encoder, which can also be found at Isaac ROS DNN Inference.

Performance

| Sample Graph

                                                                                                                                                                                       | Input Size

| AGX Thor T5000

                                                                                                                                                   | AGX Thor T4000



                                                                                                                                                     | DGX Spark



                                                                                                                                                         | x86_64 w/ RTX 5090



                                                                                                                                              |

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | FoundationPose Pose Estimation Node

| 720p

     | [3.15 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/release-4.5/results/isaac_ros_foundationpose_node-agx_thor.json)

370 ms @ 30Hz

| 3.40 fps

350 ms @ 30Hz

| 2.77 fps

360 ms @ 30Hz

| 10.1 fps

99 ms @ 30Hz

| | DOPE Pose Estimation Graph

                         | VGA



      | [143 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/release-4.5/results/isaac_ros_dope_graph-agx_thor.json)

22 ms @ 30Hz

        | [116 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/release-4.5/results/isaac_ros_dope_graph-thor-t4000.json)

53 ms @ 30Hz

        | [89.3 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/release-4.5/results/isaac_ros_dope_graph-dgx_spark.json)

27 ms @ 30Hz

       | [193 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/release-4.5/results/isaac_ros_dope_graph-x86-5090.json)

17 ms @ 30Hz

       |

| Centerpose Pose Estimation Graph

       | VGA



      | [50.2 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/release-4.5/results/isaac_ros_centerpose_graph-agx_thor.json)

27 ms @ 30Hz

 | [50.4 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/release-4.5/results/isaac_ros_centerpose_graph-thor-t4000.json)

73 ms @ 30Hz

 | [50.2 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/release-4.5/results/isaac_ros_centerpose_graph-dgx_spark.json)

23 ms @ 30Hz

 | [50.2 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/release-4.5/results/isaac_ros_centerpose_graph-x86-5090.json)

19 ms @ 30Hz

|

Documentation

Please visit the Isaac ROS Documentation to learn how to use this repository.


Packages

Latest

Update 2026-04-30: Compatibility and integration updates for the Isaac ROS 4.4.0 release

Core symbols most depended-on inside this repo

Shape

Method 179
Function 89
Class 71
Enum 3

Languages

C++74%
Python26%

Modules by API surface

isaac_ros_foundationpose/src/nvdiffrast/common/common.h13 symbols
isaac_ros_dope/src/dope_decoder_node.cpp13 symbols
isaac_ros_foundationpose/src/foundationpose_selector_node.cpp12 symbols
isaac_ros_foundationpose/src/foundationpose_impl/pose_sampler.cpp11 symbols
isaac_ros_foundationpose/src/foundationpose_impl/pose_renderer.cpp11 symbols
isaac_ros_foundationpose/src/foundationpose_impl/mesh_loader.cpp11 symbols
isaac_ros_centerpose/src/centerpose_decoder_node.cpp11 symbols
isaac_ros_foundationpose/src/nvdiffrast/common/cudaraster/impl/CudaRaster.cpp10 symbols
isaac_ros_foundationpose/src/foundationpose_tracking_node.cpp9 symbols
isaac_ros_foundationpose/src/foundationpose_node.cpp9 symbols
isaac_ros_centerpose/test/test_centerpose_decoder_fixture.py9 symbols
isaac_ros_pose_proc/src/averaging_filter_node.cpp8 symbols

For agents

$ claude mcp add isaac_ros_pose_estimation \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page