Simulation / Modeling / Design

NVIDIA Isaac Sim, ROS 및 Nimbus를 통한 멀티 로봇 환경 개발

Reading Time: 5 minutes

점점 더 많은 자율 로봇이 실제 시나리오에 배포되면서 충실도가 높은 멀티 로봇 시뮬레이션 환경에 대한 필요성이 빠르게 증가하고 있습니다. 이 게시물에서는 과거 Cogniteam에서 여러 로봇을 시뮬레이션하기 위해 사용한 것, NVIDIA Isaac Sim의 현재 진행 상황, Nimbus가 Isaac Sim으로 멀티 로봇 시뮬레이션의 개발 및 유지 관리 속도를 높이는 방법을 검토합니다.   

Unreal Tournament 게임 엔진을 통한 멀티 로봇 시뮬레이션 

약 20년 전, 저는 Cogniteam의 제 친구와 멀티 로봇 작업 할당 및 팀워크를 위한 로봇 프레임워크에 대한 아이디어로 로봇 개발 경력을 시작했습니다. 원래 CogniTAO라고 불렸던 이 시스템의 단순화된 버전은 나중에 ROS 의사결정으로 공개되었습니다. 

당시에는 여러 대의 로봇을 사용하는 사례가 드물었고 이러한 로봇의 3D 시뮬레이션은 불가능했습니다. 그래서 저는 Unreal Tournament 2000-2004 게임 엔진에 대한 모드를 작성하여 4대의 로봇에 대한 시뮬레이션을 가능하게 했습니다. 4명의 프로그래머로 구성된 소규모 팀이 15분 동안 안정적으로 실행할 수 있는 시뮬레이션 환경을 개발하는 데 약 3년이 걸렸습니다.

그림 1. 4대의 로봇 시뮬레이션(왼쪽)과 로봇의 영상(오른쪽)

이 환경에서는 5대의 최첨단 데스크톱에서 카메라, Hokuyo LiDAR, 주행 거리 측정 및 매핑이 있는 4대의 로봇을 시뮬레이션하고 각각으로부터 영상 피드를 원격으로 수신할 수 있었습니다. 저희 엔지니어 중 한 명은 게임 엔진에서 직접 로컬 네트워크의 데이터를 스트리밍하고 전체 화면으로 표시하는 C++ TCP 클라이언트를 작성했습니다. 로봇이 제시간에 정확한 위치에 스폰되도록 하려면 엄격한 순서로 코드를 실행해야 했습니다.

Gazebo를 통한 멀티 로봇 시뮬레이션

10년 전인 2013년은 Gazebo가 로보틱스 시뮬레이션을 위한 사실상의 플랫폼이 된 후 Gazebo로 작업을 전환한 때입니다. 3명의 프로그래머가 2개의 Intel Xeon 시스템에서 10대의 로봇을 시뮬레이션하는 데 약 2년이 걸렸습니다. 그들은 TensorFlow 이전에 로보틱스 팀이 데모에 사용했던 OpenCV Hough Circle Transform을 사용하여 ROS move_base 탐색 스택과 물체 감지를 사용했습니다. 당시 동료였던 Igor Makhtes는 여러 로봇의 데이터 스트림을 제어하고 표시하기 위해 RQT 플러그인을 구축했습니다(그림 2). 이 작업을 완료하는 데 6개월이 걸렸습니다.

그림 2. RQT 플러그인이 있는 10대의 로봇에 대한 영상 피드 및 맵 보기

이러한 로봇은 서로 통신해야 하지만 연결할 수 없을 때도 작동해야 했습니다. 이를 가능하게 하려면 각각 자체 ROS 마스터를 실행하고 ROS 멀티마스터 네트워크를 통해 동기화해야 했습니다.

NVIDIA Isaac Sim을 통한 멀티 로봇 시뮬레이션

몇 달 전, 저는 Cogniteam 알고리즘 팀의 컴퓨터 공학 학생인 Saar Moseri에게 클라우드 로보틱스 에코시스템 Nimbus와 NVIDIA Isaac Sim을 사용하여 멀티 로봇 시뮬레이션 시나리오를 설정하도록 요청했습니다. 내부 테스트 팀과 저는 Nimbus 에이전트를 사용하여 로봇을 제어하고 로봇이 생성하는 데이터를 확인하고자 했습니다. 

Saar는 환경에 익숙해지고 시스템을 구성하는 데 약 2주가 걸렸습니다. 그림 3은 Cogniteam 실험실에서 NVIDIA GeForce RTX 3080이 탑재된 표준(단일) 데스크톱 시스템에서 실행한 결과를 보여줍니다.

그림 3. NVIDIA Isaac Sim 멀티 로봇 기본 설정

Saar는 NVIDIA NGC를 통해 제공되는 Isaac Sim 문서를 사용하여 환경을 설치하고 구성했습니다. 그는 Nimbus를 사용하여 시뮬레이션 시스템에 에이전트를 설치하고 ROS를 통해 시뮬레이션에서 데이터를 수신하는 게이트웨이 노드를 만들었습니다.

그림 4. Nimbus 로봇 편집기(왼쪽) 및 Nimbus 구성 편집기(오른쪽)

그런 다음 그림 5와 같은 노드 구성을 만들었습니다.

그림 5. move_base 탐색을 통한 Nimbus 단순 미션 구성

이미 컨테이너화된 두 개의 빌딩 블록은 게이트웨이 노드와 move_base 탐색을 위한 노드입니다. 이 구성은 Cogniteam 실험실의 시뮬레이션 데스크톱에서 실행되는 에이전트에 배포되었습니다. Nimbus 허브에서 GMapping, 경로 따르기 등을 위한 노드를 포함하여 더 복잡한 다른 구성도 사용할 수 있습니다(소스 포함). 

저희 팀은 이 접근 방식이 제공하는 무한한 가능성에 놀랐습니다. 위에서 설명한 구성에서 시뮬레이션 된 센서 데이터는 ROS와 ROS 2를 모두 지원하는 ROS 게이트웨이를 통해 Isaac Sim에서 도착합니다. 보기 및 제어 기능은 Nimbus에 의해 활성화됩니다. 

이 설정을 통해 팀은 기본 시뮬레이션 작업을 수행하고 실험실에서 로컬로 로봇의 제어를 시뮬레이션할 수 있으며 더 많은 기능도 추가할 수 있습니다. 이제 로봇의 시뮬레이션 된 실행 및 센서 데이터를 기록하고, 시뮬레이션 시스템에 SSH를 원격으로 연결하며, 시뮬레이션 데이터를 전 세계적으로 모니터링하고, 시뮬레이션 진행 상황에 대한 이메일 및 SMS 알림을 검증 팀에 보낼 수도 있습니다. 이 모든 작업을 웹 브라우저에서 할 수 있습니다. 

Isaac Sim과 Nimbus를 결합하면 사용 가능한 클라우드 시뮬레이션 제품과 기능이 유사하지만 로컬 시스템에서 실행되며 추가 클라우드 시뮬레이션 컴퓨팅 비용이 포함되지 않는 통합 시스템이 탄생합니다. 또한, HIL(hardware in the loop) 시뮬레이션과 같은 새로운 최첨단 시뮬레이션 흐름을 엽니다. 이는 시뮬레이션이 클라우드에서 실행될 때는 불가능합니다. 그림 6은 Nimbus에서 제어, 탐색 및 매핑이 어떻게 실행되는지 보여줍니다.

그림 6. Nimbus 로봇 WebRTC 영상 모니터링(왼쪽) 및 Nimbus 맵 뷰 및 자율 제어(오른쪽)

설명된 설정을 복제하려면 Isaac Sim 문서를 참조하세요. 그런 다음 Nimbus를 방문하여 무료 계정을 만들고 로그인한 다음 지침에 따라 무료 라이선스를 사용하여 로봇을 만듭니다. 

Isaac Sim이 헤드리스로 실행하는 것과 동일한 데스크톱에 로봇 에이전트를 설치한 후에는 원격 SSH를 통해 시뮬레이션을 프로비저닝하고 Nimbus 웹사이트에서 시뮬레이션 시스템을 모니터링할 수 있습니다.

영상 1. Nimbus 및 NVIDIA Isaac Sim 데모 영상

Nimbus 허브를 방문하여 Isaac Sim 구성을 배포하세요. 모든 것이 이미 컨테이너화되어 있고(Isaac Sim 포함) 제어가 브라우저 기반이므로 애플리케이션을 설치할 필요가 없습니다. 시스템의 에이전트가 실행에 필요한 모든 것을 설정합니다. 

그런 다음 해당 에이전트의 모니터 페이지에서 설정과 관련된 모든 데이터에 대한 모니터링을 추가합니다. 에이전트 설정에서 ROS 스트림에 다음과 같은 조건을 추가하여 알림을 정의할 수 있습니다.

“if GoalStatus == ABORTED”
send sms/mail to simulation@your-company.com

Cogniteam은 이 과정에서 기꺼이 도움을 드릴 것입니다. support@cogniteam.com으로 연락하실 수 있습니다. 

요약

자율 로봇의 성공적인 배포를 위해서는 시뮬레이션이 핵심입니다. 동일한 시나리오를 여러 번 실행하는 것은 테스트에 중요하지만 멀티 로봇 시뮬레이션은 다릅니다. 고충실도 멀티 로봇 시뮬레이션 환경을 개발하는 것은 복잡하고 시간이 걸리지만, 이 게시물에서 설명한 것처럼 NVIDIA Isaac Sim과 Nimbus를 사용하면 단순화할 수 있습니다.

저희 팀은 5월 29일부터 6월 2일까지 런던에서 열리는 ICRA 2023 (부스 C22)에 참석하여 이스라엘에서 원격으로 실행되는 로봇과 시뮬레이션에 대한 브라우저 인터페이스를 선보일 예정입니다.

Isaac Sim에 대해 자세히 알아보려면 NVIDIA 개발자 Isaac ROS 포럼을 확인하세요.

관련 리소스

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

Discuss (0)

Tags

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다