NVIDIA Isaac にある実機動作可能なライブラリ

NVIDIAはIssacでロボットの動作シミュレーションが可能な環境を提供している。
しかし、その中のライブラリのいくつは、実機で動作可能なライブラリである。
この記事では、それらの実機可能なライブラリを紹介する。

## [Isaac ROS cuMotion](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_cumotion)

![](https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_cumotion/cumotion_ur10_demo.gif/)

Arm ロボットのハンドの姿勢を6軸で指定した時に、ロボットの各軸のパラメータを算出するモジュールらしい。


## [Isaac ROS Nvblox](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nvblox)
Nvblox ROS 2 integration for local 3D scene reconstruction and mapping.

![](https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_nvblox/isaac_sim_nvblox_humans.gif/)

![](https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_nvblox/isaac_ros_nvblox_nodegraph.png/)


## [Isaac ROS Object Detection](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_object_detection)

![](https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_object_detection/isaac_ros_object_detection_nodegraph.png/)

isaac_ros_rtdetr: RT-DETR models
isaac_ros_detectnet: DetectNet models
isaac_ros_yolov8: YOLOv8 models

の３種類の検出器が用意されている。
AGX Orinでのperformance が書かれている。


## [isaac_ros_pose_estimation](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_pose_estimation) 
これは、物体の姿勢を検出するもの。人の姿勢ではない。AGX Orinの実機で動作する。

![](https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_pose_estimation/dope_objects.png/)

## [Isaac ROS Nova](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_nova)
以下のセンサについて、データを保存したり再生したりすることができる。実機で動作する。


Hesai Pandar XT32 3D LiDAR
Leopard Imaging HAWK stereo camera
Leopard Imaging OWL monocular camera
Bosch BMI088 IMU

#### [recorder](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_nova/isaac_ros_data_recorder/index.html)

#### [replayer](https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_nova/isaac_ros_data_replayer/index.html)


## [Isaac ROS Image Pipeline](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_image_pipeline)

![Screenshot from 2024-06-25 22-10-14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83761/ccac7724-04cb-cb4f-570b-788d38b10c9b.png)

## [Isaac ROS Visual SLAM](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_visual_slam)

![](https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_visual_slam/vslam_odometry_nav2_diagram.png/)

## [isaac_ros_dnn_stereo_depth](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_dnn_stereo_depth)

![](https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_dnn_stereo_depth/ess3.0_conf0_r2b_storage_576p.gif/)

![](https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_dnn_stereo_depth/isaac_ros_ess_nodegraph.png/)


## [Isaac ROS Image Segmentation](https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_image_segmentation)

![](https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_image_segmentation/isaac_ros_image_segmentation_example.png/)

![](https://media.githubusercontent.com/media/NVIDIA-ISAAC-ROS/.github/main/resources/isaac_ros_docs/repositories_and_packages/isaac_ros_image_segmentation/isaac_ros_image_segmentation_example_seg.png/)

![Screenshot from 2024-06-25 22-29-09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83761/f8b1f388-d883-4663-da92-a5bdb2e90c45.png)
Segment Anything もパッケージに含まれている。

## 付記
IsaacはIsaac Simとして有名なので、シミュレーションのためのライブラリばかりだと思われているようだ。
しかし、実際には、実機動作可能なライブラリがある。
それらのライブラリを使うと、シミュレーションと実機動作で共通のライブラリを使うことができる。


## ROS（もしくはROS2)への対応ということ
- ROS（もしくはROS2)では、検出結果をメッセージとしてpublishするという枠組みにしたがっていること。
- そのモジュールは、ノードになっているこということ。