Robotics

NVIDIA Isaac ROS 개발자 프리뷰 3으로 고성능 로봇 애플리케이션 구축

Reading Time: 5 minutes

로봇은 더 높은 수준의 자율성, 더 많은 수의 센서와 다양한 센서, 더 많은 센서 융합 기반 알고리즘으로 인해 복잡성이 증가하고 있습니다. 이렇게 점점 더 복잡해지는 워크로드를 실행하려면 하드웨어 가속화가 필수적이며, 이를 통해 더 큰 워크로드를 더 빠른 속도와 전력 효율로 실행할 수 있는 로봇 애플리케이션을 구현할 수 있습니다.

NVIDIA Isaac ROS의 사명은 항상 고성능의 전력 효율적인 로봇 애플리케이션을 개발하는 데 필요한 가속 컴퓨팅 패키지와 도구를 ROS 개발자에게 제공하는 것이었습니다.

NVIDIA는 또한 ROS 2에 가속 컴퓨팅을 도입하고 각 릴리스에서 지속적으로 개선 사항을 제공하고 있습니다. 지난 2년 동안 20개 이상의 하드웨어 가속 ROS 패키지가 추가되었으며, 최신 ROS 2 배포를 지원합니다.

또한 작년에 오픈 로보틱스와 협력하여 하드웨어 가속기를 제공하는 컴퓨팅 플랫폼에서 ROS 성능을 개선하기 위해 적응 및 유형 협상을 포함시켰습니다. 또한 NITROS(NVIDIA Isaac Transport for ROS)라는 Isaac ROS에 대한 적응 및 유형 협상을 구현했습니다.

최신 NVIDIA Isaac ROS 개발자 프리뷰 3(DP3) 릴리스에서는 주요 업데이트 및 개선 사항이 제공됩니다. 자세히 알아보려면 계속 읽어보세요.

NVIDIA Isaac ROS 개발자 프리뷰 3

NVIDIA Isaac ROS DP3에는 많은 새로운 기능이 포함되어 있어 ROS 커뮤니티가 하드웨어 가속화의 이점을 누릴 수 있습니다. 주요 기능으로는 로봇을 자동으로 로컬라이즈하는 새로운 맵 로컬라이저, 사람 감지 기능으로 업데이트된 NvBlox, ROS 2 그래프를 현실적으로 벤치마킹하는 새로운 ROS 2 벤치마킹 도구, 오픈 소스 NITROS 패키지 등이 있습니다.

0.5초 이내에 맵에서 자동으로 위치 파악

창고나 서비스 분야에서 사용되는 모바일 로봇은 공간 탐색을 시작하기 전에 맵에서 초기 포즈를 파악해야 합니다. 이 초기 포즈 정보를 로봇에 제공하는 가장 일반적인 방법은 수동으로 설정하는 것입니다. 이 방법은 전체 프로세스에 수동 개입이 추가될 뿐만 아니라 30초 이상 소요될 수 있습니다.

새로운 Isaac ROS Map Location ROS 패키지를 사용하면 로봇의 초기 위치와 방향을 수동으로 설정할 필요가 없습니다. 이 패키지는 LiDAR 범위 스캔을 사용하여 0.5초 이내에 점유 그리드 맵에서 자동으로 포즈를 추정합니다. 로컬라이저는 평면형 LiDAR 또는 3D LiDAR와 함께 작동할 수 있으며 모바일 로봇의 내비게이션을 초기화하는 데 사용할 수 있습니다.

이 ROS 패키지는 GPU 가속으로 통신 오버헤드 없이 효율적인 ROS 파이프라인을 생성하기 위해 NITROS를 활용합니다. 또한 Nav2와 통합되어 있습니다. 자세한 내용은 GitHub에서 Isaac ROS 지도 로컬라이제이션 패키지를 참조하세요.

A GIF showing RVIZ on the left, and Isaac Sim scene top view on the right. Initial global pose of the robot is computed in less than 1 second automatically using the occupancy-grid-localizer package, to start navigation. This removed the need to manually provide the initial pose for Nav2.
그림 1. NVIDIA Isaac ROS 맵 위치 패키지는 0.5초 이내에 초기 글로벌 포즈를 자동으로 계산합니다.

3D 재구성에서 사람 제거

Isaac ROS NvBlox는 3D 재구성을 위한 GPU 가속 패키지와 센서 관측을 사용하여 로봇 주변 환경의 비용 맵을 제공합니다. 이는 경로 계획자가 충돌 없는 경로를 생성하는 데 유용합니다.

사람 사이를 탐색하는 로봇은 먼저 사람을 감지한 다음 사람과의 근접도에 따라 다르게 탐색해야 합니다. 충돌 없는 경로를 계산하기 위해 사람이 비용 맵에 포함되어야 하지만 3D 재구성에는 포함되지 않아야 합니다. 3D 재구성에는 정적 장애물만 포함해야 합니다.

Isaac ROS DP3 릴리스의 일부인 업데이트된 Isaac ROS NvBlox 패키지는 사람을 감지 및 분할하고 사람과의 충돌을 피하기 위한 사람 비용 맵을 제공합니다. 또한 정적 물체와의 충돌을 피하기 위해 3D 재구성을 위한 정적 비용 맵을 제공합니다. 자세한 내용은 깃허브의 Isaac ROS NvBlox 패키지를 참조하세요.

Image showing Isaac ROS NvBlox running with RVIZ output of 3D reconstruction with human detection.
그림 2. 3D 재구성 중 사람 감지 및 제거를 실행하는 Isaac ROS NvBlox 패키지

올바른 방법으로 ROS 그래프 벤치마킹하기

ROS 기반 그래프를 벤치마킹할 때는 현실적인 워크로드에서의 성능을 반영해야 합니다. 특정 ROS 노드가 아닌 전체 ROS 그래프를 벤치마킹하는 것이 중요한데, 이는 실제 성능을 나타내는 RCL에 메시지 전송 비용이 포함되기 때문입니다.

Isaac ROS DP3에는 오픈 소스에서 ROS 2를 위한 벤치마크 툴이 포함되어 있습니다. 이 툴링은 결과를 측정하기 위해 노드를 수정할 필요가 없으며, 벤치마크 결과를 독립적으로 검증할 수 있도록 입력 로스백 데이터 세트를 표준화합니다.

Diagram showing ROS 2 benchmarking tool architecture, including data loader node, playback, node, and monitor nodes.
그림 3. ROS 2 벤치마크 아키텍처

이 벤치마킹 툴은 업계 모범 사례를 사용하며 실시간 로봇 애플리케이션의 노드 그래프에 대한 처리량 및 지연 시간 측정을 위해 전문적으로 강화되었습니다. 주요 기능은 다음과 같습니다:

  • 신뢰할 수 있는 결과: 자동화된 성능 측정은 여러 초 동안 N회(기본값 N = 5) 수행되며, 변동성을 줄이기 위해 최소 및 최대 결과를 삭제합니다. 벤치마크 결과는 선택한 시각화 도구로 가져올 수 있도록 로그 파일로 보고됩니다.
  • 입력 데이터 세트: CCv4.0 저작자 표시 라이선스에 따라 NGC에서 다운로드할 수 있는 r2b 데이터 세트 2023rosbag에서 그래프에 일관된 입력을 제공합니다. 필요한 경우 추가 입력 데이터를 추가할 수 있습니다.
  • 입력 이미지 해상도: 다양한 컴퓨팅 하드웨어를 사용할 수 있으므로 로봇 애플리케이션에 따라 다양한 해상도로 이미지 처리가 수행됩니다.
  • 입력 및 출력 전송 시간: 프로세스 간 및 프로세스 내 RCL 게시 및 메시지 수신에 소요된 시간이 측정 결과에 포함됩니다. 이는 로봇 애플리케이션에서 예상할 수 있는 것을 정확하게 나타내며 메시지 전달 비용을 제거하여 부풀려진 결과를 방지합니다.
  • 입력 및 출력 유형 적응: 입력 데이터는 표준 ROS 유형을 사용하거나 유형 적응(type adaptation)유형 협상(type negotiation)을 사용하여 주입됩니다.
  • 벤치마크 매개변수: 테스트에 사용되는 매개변수에는 데이터 입력 길이, 게시 속도 및 입력 크기가 포함되며 구성 파일로 사용자 지정할 수 있습니다.
  • 처리량 자동 찾기: 토픽 드롭이 1% 미만인 그래프의 피크 처리량을 측정하려면 그래프의 피크 처리량을 자동으로 찾아야 합니다. 전체 자동 파인더는 피크 처리량에 대한 입력 데이터 게시 속도를 효율적으로 찾아냅니다.
  • 실시간 지연 시간: 지연 시간의 실시간 측정을 위한 고정 토픽 게시자 비율입니다. 이는 목표 고정 속도로 실시간 시스템에 제공되는 것을 보여주며, 처리량은 로봇 애플리케이션에 가능한 최고 성능을 보여줍니다.
  • 클라우드 네이티브: 최신 소프트웨어 개발의 일부인 자동화된 테스트 또는 CI/CD 야간 테스트의 일부로 Kubernetes에서 측정을 수행할 수 있습니다. 로컬 개발자 시스템에서도 측정을 수행할 수 있습니다.
  • 불투명 테스트: 노드 그래프는 벤치마크의 모든 성능 측정 도구와 함께 바이너리로 직접 테스트됩니다. 이렇게 하면 테스트 중인 그래프의 코드를 수정하지 않고 오픈 소스부터 독점 솔루션까지 동일한 툴을 사용하여 눈에 띄지 않는 방식으로 성능을 측정할 수 있습니다.
  • 투명성: JSON으로 제공되는 결과에는 벤치마크를 실행하는 데 사용된 파라미터가 포함되며, 독립적인 결과 검증을 위해 입력 rosbag의 MD5도 포함됩니다.

자세한 내용은 웨비나 ‘로보틱스 애플리케이션의 성능 측정(ros2_benchmark)‘에 등록하여 알아보세요.

새로운 플랫폼 지원

Isaac ROS DP3는 NVIDIA Jetson 제품군의 최신 제품인 NVIDIA Jetson Orin Nano 및 NVIDIA Jetson Orin NX에 대한 지원을 추가합니다. 또한 새로 출시된 NVIDIA Jetson Orin Nano 개발자 키트도 지원합니다. 이제 모든 Jetson Orin 및 Xavier 시리즈 모듈 및 개발자 키트에서 Isaac ROS가 지원됩니다.

Image showing NVIDIA Jetson AGX Orin Developer Kit, NVIDIA Jetson Orin Nano Developer Kit, NVIDIA Jetson AGX Orin production modules, NVIDIA Jetson Orin NX production modules, and NVIDIA Jetson Orin Nano production modules.
그림 4. Jetson Orin 모듈 및 개발자 키트 제품군을 지원하는 Isaac ROS DP3

새 릴리스에는 최근 출시된 NVIDIA Ada Lovelace 아키텍처NVIDIA GeForce RTX 40 GPU에 대한 지원도 추가되었습니다.

이번 릴리스부터 NITROS 가속 Isaac ROS 패키지의 대부분은 오픈 소스입니다. 이제 ROS 개발자는 패키지를 확장하고, 발생하는 모든 문제를 해결하고, Isaac ROS 커뮤니티에 다시 기여할 수 있습니다.

요약

NVIDIA Isaac ROS 개발자 프리뷰 3는 ROS 커뮤니티가 하드웨어 가속화의 이점을 활용하여 고성능의 전력 효율적인 로봇 애플리케이션을 보다 쉽게 빌드할 수 있도록 지원하는 주요 업데이트입니다. 주요 기능으로는 ROS 2 그래프를 현실적으로 벤치마킹할 수 있는 새로운 ROS 2 벤치마킹 도구, 로봇을 자동으로 로컬라이즈하는 새로운 맵 로컬라이저, 오픈 소스 NITROS 패키지, 사람 감지 기능을 갖춘 업데이트된 NvBlox 등이 있습니다.

추가 리소스

이 블로그에 열거된 SDK의 대부분의 독점 액세스, 얼리 액세스, 기술 세션, 데모, 교육 과정, 리소스는 NVIDIA 개발자 프로그램 회원은 무료로 혜택을 받으실 수 있습니다. 지금 무료로 가입하여 NVIDIA의 기술 플랫폼에서 구축하는 데 필요한 도구와 교육에 액세스하시고 여러분의 성공을 가속화 하세요.

Discuss (0)

Tags

답글 남기기