2021년 10월부터 협업해 온 NVIDIA와 Open Robotics가 하드웨어 가속을 제공하는 컴퓨팅 플랫폼의 성능을 개선하기 위해 Humble ROS 2 릴리스에 도입한 두 가지 중요한 변경 사항을 이제 이용할 수 있습니다.
ROS 2 Humble의 새로운 하드웨어 가속 기능은 유형 조정(type adaptation)과 유형 타협(type negotiation)입니다.NVIDIA는 다음 NVIDIA Isaac ROS 릴리스에 유형 조정 및 유형 타협 기능을 구현하는 소프트웨어 패키지를 공개할 예정입니다.
두 가지 간단하지만 강력한 기능이 프레임워크에 추가되면 ROS 기반 애플리케이션에 AI/머신 러닝 및 컴퓨터 비전 기능을 통합하려는 개발자는 상당한 성능 향상을 경험하게 됩니다.
“ROS 개발자들이 로봇 애플리케이션의 자율성을 높여 감에 따라, 로봇에 장착되는 컴퓨터의 성능도 훨씬 강력해지고 있습니다. 저희는 ROS 프레임워크를 발전시켜 엣지 컴퓨터에서 고성능 하드웨어 리소스를 활용할 수 있게 하기 위해 노력해 왔습니다.” Open Robotics의 CEO인 Brian Gerkey는 말합니다.
“NVIDIA 로보틱스 팀과의 긴밀한 협력으로 개발한 새로운 기능(유형 조정과 유형 타협)을 Humble 릴리스에서 공유하게 되어 기쁩니다. 하드웨어를 가속하려는 ROS 커뮤니티 전체의 노력에 도움이 될 것입니다.”
하드웨어 가속시 오버헤드 제거하기
유형 조정
일반적으로 하드웨어 가속에서 최적의 성능을 내기 위해서는 다양한 데이터 포맷이 필요합니다.이제 유형 조정(REP-2007) 기능을 사용하여 ROS 노드가 하드웨어에 더 적합한 형식으로 작동하게 할 수 있습니다. 처리 파이프라인에서 조정된 유형을 사용하면 CPU와 메모리 가속기 간의 중복 메모리를 제거할 수 있습니다. 불필요한 중복 메모리는 CPU 연산을 소모하고, 전력을 낭비하며, 성능을 둔화합니다. 이미지 크기가 클수록 특히 문제가 생길 수 있습니다.
유형 타협
또 하나의 새로운 혁신은 유형 타협(REP-2009)입니다. 처리 파이프라인에서 다양한 ROS 노드마다 지원되는 유형을 알릴 수 있으므로 가장 높은 성능을 내는 형식이 선택됩니다.ROS 프레임워크는 이러한 타협 프로세스를 수행하면서도 타협을 지원하지 않는 레거시 노드와 호환 가능합니다.
유형 조정과 유형 타협으로 처리 파이프라인을 가속하면 하드웨어 가속에서 중복을 완전히 제거할 수 있습니다. 이는 소프트웨어 및 CPU의 오버헤드가 감소시켜 기반 하드웨어의 잠재력이 발휘됩니다.NVIDIA Jetson Orin과 같은 더 강력한 컴퓨팅 플랫폼으로 마이그레이션하는 로보틱스 전문가는 하드웨어로 인한 더 큰 폭의 성능 향상을 기대할 수 있습니다.
이러한 변경 사항은 온전히 ROS 2 내부에만 적용되므로 기존 도구, 워크플로우, 코드베이스와의 호환성이 보장됩니다.
유형 조정과 유형 타협 기능은 장래가 촉망되는 결과를 보여주었습니다.ROS 2 Foxy와 ROS 2 Humble에서 기반 프레임워크의 성능을 관찰하기 위해 각 노드의 컴퓨팅을 최소화한 ROS 노드 그래프로 구성된 벤치마크를 실행했습니다.이 벤치마크는 Jetson AGX Xavier 및 새로운 Jetson AGX Orin에서 실행했습니다. Xavier에서는 3배, Orin에서는 무려 7배의 성능 향상이 확인되었습니다.
ROS를 위한 NVIDIA Isaac Transport 소개
NVIDIA가 구현하는 유형 조정과 유형 협상은 NITROS라고 합니다. Isaac ROS 하드웨어 가속 모듈(즉 GEM)로 구성된 ROS 처리 파이프라인입니다. 이 파이프라인은 2022년 6월 말 예정된 Isaac ROS 개발자 미리 보기(DP)에서 출시될 예정입니다. NITROS의 최초 릴리스에는 3개의 파이프라인이 포함되며, 올 하반기에는 더 많은 파이프라인이 포함될 예정입니다.
NITROS 파이프라인 | 파이프라인의 ROS 2 노드 |
AprilTag 탐지 파이프라인 | ArgusCameraMono (원시 이미지) – 수정 – (수정 이미지) – AprilTag (AprilTag 감지) |
스테레오 불일치 파이프라인 | ArgusCameraStereo (원시 이미지) – 수정 – (수정 이미지) – ESSDisparity (DNN 추론) – PointCloud (포인트 클라우드 출력) |
이미지 분할 파이프라인 | ArgusCameraMono (원시 이미지) – 수정 – (수정 이미지) – DNNImageEncode (DNN 사전 처리된 Tensor) – Triton (DNN 추론) – UNetDecode (분할 이미지) |
강력한 신규 GEM의 로보틱스 인식 지원
NITROS 가속 파이프라인 외에도 Isaac ROS DP 릴리스에는 로보틱스 전문가의 일반적인 인식 작업을 지원하는 2가지 신규 DNN 기반 GEM이 포함되어 있습니다.
첫 번째 GEM인 ESS는 스테레오 카메라 불일치를 예측하는 DNN입니다. 이 네트워크는 로보틱스 애플리케이션을 위한 비전 기반의 연속 깊이 인식을 제공합니다.
다른 GEM인 Bi3D는 비전 기반으로 장애물을 예측하는 DNN입니다. NVIDIA 리서치의 획기적인 연구를 기반으로 하는 이 DNN은 장애물을 예측하는 동시에 개방된 공간을 감지하도록 향상되었습니다. 이 네트워크는 스테레오 카메라를 기준으로 4개의 프로그래밍 가능한 근접 필드 이내에 장애물이 있는지 예측합니다.
Bi3D는 NVIDIA DLA 하드웨어에서의 실행에 최적화되었습니다. DLA를 활용하면 GPU 및 CPU 연산 리소스가 모두 절약됩니다.
Bi3D와 ESS는 모두 합성 및 실제 데이터를 사용하는 로보틱스 애플리케이션을 위해 사전 학습되어 있으며, 상용화를 의도하고 만들어졌습니다. 두 신규 Isaac ROS GEM은 이전에 출시된 기존 컴퓨터 비전 스테레오 깊이 불일치 루틴 stereo_image_proc과 함께 3가지 다양하고 독립적인 스테레오 카메라 깊이 인식 기능을 제공합니다.
Isaac ROS 2 GEM | 설명 |
이미지 파이프라인 | 카메라 이미지 처리 |
NVBlox | 3D 장면 재구성 |
Visual SLAM | VSLAM 및 스테레오 주행 거리 측정 |
AprilTags | Apriltag 감지 및 포즈 추정 |
포즈 추정 | 3D 객체 포즈 추정 |
이미지 분할 | 의미론적 이미지 분할 |
물체 감지 | DetectNet을 사용한 물체 감지용 DNN |
DNN 추론 | Triton/TensorRT 사용을 위한 DNN 노드 |
Argus 카메라 | CSI/GSML 카메라 지원 |
시작하기
NVIDIA AI 인식을 자사 제품에 통합하고자 하는 ROS 개발자라면 지금 바로 Isaac ROS를 시작하세요.
원문은 여기에서 확인하세요.