11# Isaac ROS Pose Estimation
22
3- Deep learned, hardware -accelerated 3D object pose estimation
3+ Deep learned, NVIDIA -accelerated 3D object pose estimation
44
55<div align =" center " ><a class =" reference internal image-reference " href =" https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_pose_estimation/dope_objects.png/ " ><img alt =" image " src =" https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_pose_estimation/dope_objects.png/ " width =" 400px " /></a ></div >
66
77## Overview
88
99[ Isaac ROS Pose Estimation] ( https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_pose_estimation )
1010contains ROS 2 packages to predict the pose of an object.
11+ ` isaac_ros_foundationpose ` estimates the object’s pose using the 3D
12+ bounding cuboid dimensions of unknown object from an input image.
1113` isaac_ros_dope ` estimates the object’s pose using the 3D
1214bounding cuboid dimensions of a known object in an input image.
1315` isaac_ros_centerpose ` estimates the object’s pose using the 3D
1416bounding cuboid dimensions of unknown object instances in a known
15- category of objects from an input image. ` isaac_ros_dope ` and
16- ` isaac_ros_centerpose ` use GPU acceleration for DNN inference to
17+ category of objects from an input image.
18+ Those packages use GPU acceleration for DNN inference to
1719estimate the pose of an object. The output prediction can be used by
1820perception functions when fusing with the corresponding depth to provide
1921the 3D pose of an object and distance for navigation or manipulation.
2022
2123<div align =" center " ><a class =" reference internal image-reference " href =" https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_pose_estimation_nodegraph.png/ " ><img alt =" image " src =" https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_pose_estimation_nodegraph.png/ " width =" 500px " /></a ></div >
2224
25+ ` isaac_ros_foundationpose ` is used in a graph of nodes to estimate the pose of
26+ a novel object using 3D bounding cuboid dimensions. It’s developed on top of
27+ [ FoundationPose] ( https://github.com/NVlabs/FoundationPose ) model, which is
28+ a pre-trained deep learning model developed by NVLabs. FoundationPose
29+ is capable for both pose estimation and tracking on unseen objects without requiring fine-tuning,
30+ and its accuracy outperforms existing state-of-art methods.
31+
32+ FoundationPose comprises two distinct models: the refine model and the score model.
33+ The refine model processes initial pose hypotheses, iteratively refining them, then
34+ passes these refined hypotheses to the score model, which selects and finalizes the pose estimation.
35+ Additionally, the refine model can serve for tracking, that updates the pose estimation based on
36+ new image inputs and the previous frame’s pose estimate. This tracking process is more efficient
37+ compared to pose estimation, which speeds exceeding 120 FPS on the Jetson Orin platform.
38+
2339` isaac_ros_dope ` is used in a graph of nodes to estimate the pose of a
2440known object with 3D bounding cuboid dimensions. To produce the
2541estimate, a [ DOPE] ( https://github.com/NVlabs/Deep_Object_Pose ) (Deep
@@ -65,10 +81,11 @@ which can also be found at [Isaac ROS DNN Inference](https://github.com/NVIDIA-I
6581
6682## Performance
6783
68- | Sample Graph<br /><br /> | Input Size<br /><br /> | AGX Orin<br /><br /> | Orin NX<br /><br /> | Orin Nano 8GB<br /><br /> | x86_64 w/ RTX 4060 Ti<br /><br /> |
69- | -----------------------------------------------------------------------------------------------------------------------------------------------------------------| -------------------------| ---------------------------------------------------------------------------------------------------------------------------------------------------------------| --------------------------------------------------------------------------------------------------------------------------------------------------------------| ---------------------------------------------------------------------------------------------------------------------------------------------------------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------|
70- | [ DOPE Pose Estimation Graph] ( https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/scripts/isaac_ros_dope_graph.py ) <br /><br /><br /><br /> | VGA<br /><br /><br /><br /> | [ 39.8 fps] ( https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_dope_graph-agx_orin.json ) <br /><br /><br />33 ms<br /><br /> | [ 17.3 fps] ( https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_dope_graph-orin_nx.json ) <br /><br /><br />120 ms<br /><br /> | –<br /><br /><br /><br /> | [ 89.2 fps] ( https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_dope_graph-nuc_4060ti.json ) <br /><br /><br />15 ms<br /><br /> |
71- | [ Centerpose Pose Estimation Graph] ( https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/scripts/isaac_ros_centerpose_graph.py ) <br /><br /><br /><br /> | VGA<br /><br /><br /><br /> | [ 36.1 fps] ( https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_centerpose_graph-agx_orin.json ) <br /><br /><br />5.7 ms<br /><br /> | [ 19.4 fps] ( https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_centerpose_graph-orin_nx.json ) <br /><br /><br />7.4 ms<br /><br /> | [ 13.8 fps] ( https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_centerpose_graph-orin_nano.json ) <br /><br /><br />12 ms<br /><br /> | [ 50.2 fps] ( https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_centerpose_graph-nuc_4060ti.json ) <br /><br /><br />14 ms<br /><br /> |
84+ | Sample Graph<br/><br/> | Input Size<br/><br/> | AGX Orin<br/><br/> | Orin NX<br/><br/> | Orin Nano 8GB<br/><br/> | x86_64 w/ RTX 4060 Ti<br/><br/> | x86_64 w/ RTX 4090<br/><br/> |
85+ |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
86+ | [FoundationPose Pose Estimation Node](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/benchmarks/isaac_ros_foundationpose_benchmark/scripts/isaac_ros_foundationpose_node.py)<br/><br/><br/><br/> | 720p<br/><br/><br/><br/> | [1.72 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_foundationpose_node-agx_orin.json)<br/><br/><br/>690 ms @ 30Hz<br/><br/> | –<br/><br/><br/><br/> | –<br/><br/><br/><br/> | –<br/><br/><br/><br/> | [7.02 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_foundationpose_node-x86_4090.json)<br/><br/><br/>170 ms @ 30Hz<br/><br/> |
87+ | [DOPE Pose Estimation Graph](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/benchmarks/isaac_ros_dope_benchmark/scripts/isaac_ros_dope_graph.py)<br/><br/><br/><br/> | VGA<br/><br/><br/><br/> | [41.3 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_dope_graph-agx_orin.json)<br/><br/><br/>42 ms @ 30Hz<br/><br/> | [17.5 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_dope_graph-orin_nx.json)<br/><br/><br/>76 ms @ 30Hz<br/><br/> | –<br/><br/><br/><br/> | [85.2 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_dope_graph-nuc_4060ti.json)<br/><br/><br/>24 ms @ 30Hz<br/><br/> | [199 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_dope_graph-x86_4090.json)<br/><br/><br/>14 ms @ 30Hz<br/><br/> |
88+ | [Centerpose Pose Estimation Graph](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/benchmarks/isaac_ros_centerpose_benchmark/scripts/isaac_ros_centerpose_graph.py)<br/><br/><br/><br/> | VGA<br/><br/><br/><br/> | [36.3 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_centerpose_graph-agx_orin.json)<br/><br/><br/>4.8 ms @ 30Hz<br/><br/> | [19.7 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_centerpose_graph-orin_nx.json)<br/><br/><br/>4.9 ms @ 30Hz<br/><br/> | [13.8 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_centerpose_graph-orin_nano.json)<br/><br/><br/>7.4 ms @ 30Hz<br/><br/> | [50.2 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_centerpose_graph-nuc_4060ti.json)<br/><br/><br/>23 ms @ 30Hz<br/><br/> | [50.2 fps](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_benchmark/blob/main/results/isaac_ros_centerpose_graph-x86_4090.json)<br/><br/><br/>20 ms @ 30Hz<br/><br/> |
7289
7390---
7491
@@ -82,7 +99,6 @@ Please visit the [Isaac ROS Documentation](https://nvidia-isaac-ros.github.io/re
8299
83100* [ ` isaac_ros_centerpose ` ] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_centerpose/index.html )
84101 * [ Quickstart] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_centerpose/index.html#quickstart )
85- * [ Use Different Models] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_centerpose/index.html#use-different-models )
86102 * [ Troubleshooting] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_centerpose/index.html#troubleshooting )
87103 * [ API] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_centerpose/index.html#api )
88104* [ ` isaac_ros_dope ` ] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_dope/index.html )
@@ -91,7 +107,12 @@ Please visit the [Isaac ROS Documentation](https://nvidia-isaac-ros.github.io/re
91107 * [ Use Different Models] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_dope/index.html#use-different-models )
92108 * [ Troubleshooting] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_dope/index.html#troubleshooting )
93109 * [ API] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_dope/index.html#api )
110+ * [ ` isaac_ros_foundationpose ` ] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_foundationpose/index.html )
111+ * [ Quickstart] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_foundationpose/index.html#quickstart )
112+ * [ Try More Examples] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_foundationpose/index.html#try-more-examples )
113+ * [ Troubleshooting] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_foundationpose/index.html#troubleshooting )
114+ * [ API] ( https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_pose_estimation/isaac_ros_foundationpose/index.html#api )
94115
95116## Latest
96117
97- Update 2023-10-18: Adding NITROS CenterPose decoder.
118+ Update 2024-05-30: Added FoundationPose pose estimation package
0 commit comments