Robotics

NVIDIA Jetson으로 하드웨어 인 더 루프에서 로봇 설계하기

Reading Time: 6 minutes

하드웨어 인 더 루프(HIL) 테스트는 로봇 공학 및 컴퓨터 비전을 포함한 복잡한 시스템의 성능을 검증하고 확인하는 데 사용되는 강력한 도구입니다. 이 포스팅에서는 이러한 분야에서 HIL 테스트가 NVIDIA Isaac 플랫폼과 함께 어떻게 사용되고 있는지 살펴봅니다.

NVIDIA Isaac 플랫폼은 로봇 알고리즘을 테스트하기 위한 시뮬레이션 환경을 제공하는 시뮬레이터인 NVIDIA Isaac Sim과 머신 러닝, 컴퓨터 비전 및 로컬라이제이션 알고리즘이 포함된 NVIDIA Jetson에 최적화된 하드웨어 가속 소프트웨어인 NVIDIA Isaac ROS로 구성됩니다. 이 플랫폼과 함께 HIL 테스트를 사용하면 로봇 소프트웨어 스택의 성능을 검증하고 최적화하여 보다 안전하고 신뢰할 수 있으며 효율적인 제품을 만들 수 있습니다.

이 포스팅에서는 NVIDIA Isaac 플랫폼 소프트웨어 및 하드웨어를 포함한 HIL 시스템의 다양한 구성 요소에 대해 설명합니다. 이러한 구성 요소가 로봇 공학 및 컴퓨터 비전 알고리즘의 성능을 최적화하기 위해 어떻게 함께 작동하는지 살펴봅니다. 또한 HIL 테스트에 NVIDIA Isaac 플랫폼을 사용할 때의 이점을 살펴보고 다른 테스트 방법론과 비교합니다.

NVIDIA Isaac Sim

Omniverse를 기반으로 하는 NVIDIA Isaac Sim은 로봇 공학 및 컴퓨터 비전 알고리즘 테스트를 위한 실제와 같은 물리적으로 정확한 가상 환경을 제공합니다. 이를 통해 물리적 하드웨어를 손상시킬 위험 없이 성능을 미세 조정할 수 있습니다. 또한 이 시뮬레이터는 고도로 사용자 정의할 수 있어 다양한 시나리오와 사용 사례를 테스트하는 데 이상적입니다.

NVIDIA Isaac Sim을 사용하면 더 스마트하고 고급 로봇을 만들 수 있습니다. 이 플랫폼은 로봇이 복잡한 작업을 수행할 수 있는 정교한 알고리즘을 구축하는 데 도움이 되는 도구 및 기술 제품군을 제공합니다.

NVIDIA Isaac Sim은 Omniverse NucleusOmniverse 커넥터를 사용하여 유니버설 씬 디스크립션(USD) 형식으로 환경 및 로봇 모델을 쉽게 협업, 공유 및 임포트할 수 있습니다. 이 통합은 로봇 및 환경 모델 임포트를 위한 Isaac ROS/ROS 2 인터페이스, 모든 기능을 갖춘 Python 스크립팅, 플러그인을 통해 로봇 시뮬레이션에 보다 효율적이고 효과적으로 접근할 수 있도록 지원합니다.

그림 1. NVIDIA Isaac Sim 스택

ROS 또는 ROS 2 또는 Python으로 작업하는 NVIDIA Isaac Sim과 상호 작용할 수 있습니다. NVIDIA Isaac Gym 및 NVIDIA Isaac Cortex를 실행하고 합성 데이터를 생성하거나 디지털 트윈에 사용할 수 있습니다

NVIDIA Isaac Sim은 Omniverse 프레임워크 및 Python 3.7과 원활하게 작동하기 위해 내부적으로 ROS 브리지용 roscpp로 구축된 커스터마이징된 버전의 ROS Noetic을 사용합니다. 이 버전은 ROS Melodic과 호환됩니다.

NVIDIA Isaac Sim은 현재 ROS 2 브릿지에 대해 ROS 2 Foxy 및 Humble을 지원합니다. ROS 2에는 Ubuntu 20.04를 사용할 것을 권장합니다.

자세한 내용은 NVIDIA Isaac Sim을 참조하십시오.

NVIDIA Isaac ROS

로봇 운영 체제(ROS)를 기반으로 구축된 NVIDIA Isaac ROS는 더 스마트하고 성능이 뛰어난 로봇을 제작하는 데 도움이 되는 다양한 고급 기능과 툴을 제공합니다. 이 기능에는 고급 매핑 및 로컬라이제이션 기능, 물체 감지 및 추적 기능이 포함됩니다. 최신 기능에 대한 자세한 내용은 Isaac ROS 개발자 프리뷰 3을 참조하세요.

NVIDIA Isaac 플랫폼의 일부로 Isaac ROS를 사용하면 복잡한 작업을 정밀하고 정확하게 수행하는 정교한 로봇 애플리케이션을 만들 수 있습니다. 강력한 컴퓨터 비전 및 로컬라이제이션 알고리즘을 갖춘 Isaac ROS는 고급 로봇 애플리케이션을 개발하려는 모든 개발자에게 유용한 툴입니다.

그림 2. Isaac ROS와 소프트웨어 레이어

ROS용 Isaac GEM은 로봇 커뮤니티를 위해 출시된 GPU 가속 ROS 2 패키지 세트이며 NVIDIA Jetson 플랫폼의 일부입니다.

Isaac ROS는 인식 및 AI를 위한 패키지 세트와 NVIDIA Isaac Transport for ROS(NITROS)로 알려진 완전한 파이프라인을 제공합니다. 이 패키지는 이미지 처리 및 컴퓨터 비전을 위한 기능을 갖춘 NVIDIA GPU 및 Jetson 플랫폼에 최적화되었습니다.

이 게시물에는 다음 패키지에 대해 HIL을 실행하는 방법에 대한 예제가 포함되어 있습니다:

  • NVIDIA Isaac ROS vslam
  • NVIDIA Isaac ROS 소개
  • NVIDIA Isaac ROS nvblox
  • NVIDIA Isaac ROS 근접 세분화

다른 Isaac ROS 패키지 및 최신 Isaac ROS 개발자 프리뷰 3에 대한 자세한 내용은 NVIDIA Isaac ROS를 참조하세요.

하드웨어 사양 및 설정

이 테스트를 수행하려면 워크스테이션 또는 노트북과 NVIDIA Jetson이 필요합니다:

  • Ubuntu 20.04가 설치된 x86/64 머신
  • NVIDIA RTX가 포함된 NVIDIA 그래픽 카드
  • 디스플레이
  • 키보드 및 마우스
  • NVIDIA Jetson AGX Orin 또는 NVIDIA Jetson Orin NX
  • NVIDIA JetPack 5+(5.1.1 테스트 완료)
  • 라우터
  • 이더넷 케이블
그림 3. 하드웨어 설정

Wi-Fi 대신 유선 이더넷 연결을 사용하는 것이 NVIDIA Jetson 모듈과 PC와 같은 장치 간에 대량의 데이터를 전송할 때 선호되는 경우가 많습니다. 이더넷 연결은 실시간 데이터 처리 및 머신 러닝 작업에 특히 중요할 수 있는 더 빠르고 안정적인 데이터 전송 속도를 제공하기 때문입니다.

Jetson 모듈과 PC 간에 이더넷 연결을 설정하려면 다음 단계를 따르세요:

  1. 이더넷 케이블과 무료 이더넷 포트가 있는 라우터를 준비합니다.
  2. 케이블의 한쪽 끝을 장치의 이더넷 포트에 연결합니다.
  3. 케이블의 다른 쪽 끝을 라우터의 여유 이더넷 포트에 연결합니다.
  4. 장치를 켜고 완전히 시작될 때까지 기다립니다.
  5. 이더넷 아이콘을 찾아 이더넷 연결이 작동하는지 확인하거나 ifconfig 또는 ipconfig와 같은 네트워크 진단 도구를 사용합니다.

PC와 NVIDIA Jetson이 준비되고 연결되면 /NVIDIA-AI-IOT/isaac_demo GitHub 리포지토리에 있는 설치 지침을 따릅니다.

데모 및 드라이브 실행

첫 번째 단계에서는 워크스테이션에서 NVIDIA Isaac Sim을 실행합니다. ./isaac_ros.sh 스크립트는 Carter 로봇으로 데모를 실행합니다.

Carter 1.0은 세그웨이의 차동 베이스, 3D 범위 스캔을 위한 벨로다인 P16, ZED 카메라, IMU, Jetson 모듈을 시스템의 핵심으로 사용하는 로봇 플랫폼입니다. 맞춤형 마운팅 브래킷과 함께 NVIDIA Isaac 내비게이션 스택을 위한 강력하고 견고한 데모 플랫폼이 탄생했습니다.

시뮬레이션이 시작되면 NVIDIA Isaac Sim의 스테레오 카메라 출력을 볼 수 있습니다. 두 대의 카메라를 사용하여 로봇은 NVIDIA Jetson 모듈에서 실행되는 Isaac ROS의 입력을 수신할 준비가 되었습니다.

그림 4. NVIDIA Isaac SIM의 Carter

이 데모에서 사용해 볼 Isaac ROS 패키지

이 게시물에서는 AMR 로봇 공학 또는 바퀴 달린 로봇과 함께 사용할 수 있는 몇 가지 NVIDIA Isaac ROS 패키지에 대해 설명합니다. 여기서는 로컬라이제이션, 매핑, AprilTag 감지를 위한 패키지에 중점을 두었지만 필요에 따라 저장소를 수정하여 다른 패키지를 테스트할 수 있습니다.

Isaac ROS Visual SLAM

NVIDIA Isaac ROS Visual SLAM은 시각적 주행 거리 측정과 SLAM(동시 로컬라이제이션 및 매핑)의 조합을 사용합니다.

시각적 주행 거리 측정은 카메라의 시작 위치와 관련하여 카메라의 위치를 추정하는 데 사용되는 기술입니다. 이 기법은 두 개의 연속된 입력 프레임 또는 스테레오 쌍을 분석하여 키포인트 세트를 식별하는 반복적인 프로세스를 포함합니다. 이 두 세트의 키포인트를 일치시킴으로써 카메라의 프레임 간 전환과 상대적 회전을 결정할 수 있습니다.

SLAM은 이전에 획득한 궤적에 대한 지식을 통합하여 시각적 SLAM의 정확도를 향상시키는 접근 방식입니다. 현재 장면이 이전에 본 적이 있는지(카메라 움직임의 반복)를 감지하여 이전에 예상한 카메라 포즈를 최적화할 수 있습니다.

그림 5. Isaac ROS와 nvblox 비교
그림 6. Isaac ROS vslam 및 nvblox 실행 상태 비교

Isaac ROS nvblox

nvblox 패키지는 센서 관측을 사용하여 로봇 주변 환경의 3D 모델을 실시간으로 구축하는 데 도움이 됩니다. 이 모델은 경로 플래너가 충돌 없는 경로를 생성하는 데 사용됩니다. 이 패키지는 실시간 성능을 위해 프로세스를 가속화하는 NVIDIA CUDA 기술을 사용합니다. 이 리포지토리에는 nvblox 라이브러리를 위한 ROS 2 통합이 포함되어 있습니다.

그림 7. Isaac ROS NVblox 워크플로우
그림 8. Isaac ROS vslam 출력

/NVIDIA-AI-IOT/isaac_demo 지침을 따랐다면 데모에서 항상 Isaac ROS vslam 패키지가 실행되고 있습니다.

NVIDIA Isaac ROS 에이프릴태그

ROS 2 apriltag 패키지는 NVIDIA GPU를 사용하여 이미지에서 감지를 가속화하고 포즈, ID 및 기타 메타데이터를 게시합니다. 이 패키지는 CPU 에이프릴태그 감지를 위한 ROS 2 노드와 비슷합니다.

이러한 태그는 로봇이나 조작자가 특정 지점에서 작업을 시작하거나 완료하도록 구동하는 기준이 됩니다. 또한 증강 현실에서 바이저의 주행 거리 측정을 보정하는 데 사용됩니다. 이러한 태그는 여러 제품군에서 사용할 수 있지만 모두 그림 9와 같이 데스크톱 프린터로 간단하게 인쇄할 수 있습니다.

그림 9. QR코드 대신 에이프릴태그 사용 예시
그림 10. Isaac ROS 에이프릴태그 감지 데모

Isaac ROS 근접 세분화

isaac_ros_bi3d 패키지는 이진 분류를 통해 스테레오 깊이 추정을 수행하도록 최적화된 Bi3D 모델을 사용합니다. 이 프로세스는 특정 범위 내에 장애물이 있는지 여부를 식별하는 데 유용하고 환경을 탐색하는 동안 충돌을 방지하는 데 도움이 되는 근접 세분화에 사용됩니다.

그림 11. Isaac ROS 근접 세분화

rviz에서 카터 드라이브

rviz를 읽고 모든 것이 실행 중일 때 rviz는 이 출력을 표시합니다. 그림 12는 맵 중앙에 있는 Carter와 모든 블록을 보여줍니다.

그림 12. Isaac ROS vslam 및 Isaac ROS nvblox를 사용하여 맵을 구축한 rviz

다음 동영상에서는 rviz를 사용하여 모든 환경에서 로봇을 구동하고 nvblox에서 생성된 지도를 확인할 수 있습니다.

동영상 1. Isaac ROS vslam 및 nvblox를 사용한 NVIDIA Orin NX의 HIL

Foxglove를 사용하여 시뮬레이션을 테스트할 수도 있습니다.

그림 13. 시뮬레이션 테스트에 Foxglove 사용

요약

이 게시물에서는 하드웨어 인 더 루프를 설정하는 방법과 NVIDIA Jetson Isaac ROS 모듈로 테스트하는 방법, 그리고 NVIDIA Isaac Sim을 사용해 보는 방법을 보여드렸습니다. 데스크톱과 Jetson 모듈 간에 유선 연결을 사용해야 한다는 점을 잊지 마세요. 모든 원격 분석 원시 데이터를 표시하려면 안정적인 연결이 필요합니다.

또한 /isaac-ros_dev 폴더에 방금 추가된 다른 NVIDIA Isaac ROS 패키지도 자유롭게 테스트해 보시기 바랍니다. 자세한 내용은 /NVIDIA-AI-IOT/isaac_demo에서 readme.md 파일을 참조하세요.

자세한 내용은 Isaac ROS 웨비나 시리즈를 참조하세요.

관련 리소스

Discuss (0)

Tags