📝IsaacSim 5.1.0 설치
ROS2 Jazzy 설치
공식 문서: https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html
IsaacSim에서 권장하는 추가 패키지 설치
ROS 2 Bridge에서 사용하는 메시지 타입을 위해 추가 패키지가 필요합니다.
vision_msgs (Optional): Detection2DArray, Detection3DArray 등 바운딩 박스 퍼블리싱에 사용
ackermann_msgs (Optional): AckermannDriveStamped 메시지 타입에 사용
터미널에서 ROS2 연결하여 IsaacSim 실행
공식 문서: https://docs.isaacsim.omniverse.nvidia.com/5.1.0/installation/install_ros.html#using-terminal
Isaac Sim은 자체적으로 최소한의 ROS 2 라이브러리를 포함하고 있습니다. 내부 ROS 2 라이브러리를 사용하려면 Isaac Sim 실행 전에 새 터미널에서 다음 환경 변수를 설정해야 합니다.
Isaac Sim이 기본 위치가 아닌 곳에 설치된 경우, isaac_sim_package_path를 Isaac Sim App Selector에 표시된 Package Path로 변경하세요.
# Isaac Sim 경로 설정
export isaac_sim_package_path=$HOME/isaacsim
# ROS 2 배포판 설정
export ROS_DISTRO=jazzy
# DDS 구현체 설정 (Fast DDS 사용)
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
# 내부 라이브러리 경로 추가
# ⚠️ 터미널당 한 번만 설정! 여러 번 실행하면 경로가 중복 추가되어 충돌 발생 가능
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$isaac_sim_package_path/exts/isaacsim.ros2.bridge/jazzy/lib
# Isaac Sim 실행
$isaac_sim_package_path/isaac-sim.shROS 2 Jazzy (apt 설치)는 Python 3.12를 사용하지만, Isaac Sim 5.1.0은 Python 3.11을 사용합니다. 이 버전 불일치로 인해 isaacsim.ros2.sim_control extension은 rclpy를 import할 수 없어 서비스/액션 호출이 불가능합니다.
- 사용 가능:
isaacsim.ros2.bridge(토픽 Pub/Sub) - 사용 불가:
isaacsim.ros2.sim_control(서비스, 액션)
서비스/액션이 필요하다면 NVIDIA Docker 이미지를 사용하세요.
Workspace 만들기
공식 문서: https://docs.isaacsim.omniverse.nvidia.com/5.1.0/installation/install_ros.html#setting-up-workspaces
1. 빌드에 필요한 패키지 설치
2. ROS 2 환경 설정
3. 패키지 의존성 해결
공식 문서에서는 sudo apt install ros-jazzy-topic-based-ros2-control를 실행하라고 하지만, 이 패키지는 공식 ROS 2 Jazzy 저장소에 없습니다. 아래 4단계에서 소스 빌드로 해결합니다.
4. topic_based_ros2_control 소스 빌드
5. Workspace 빌드
빌드 완료 후 루트 디렉토리에 build, install, log 디렉토리가 생성됩니다.
6. Workspace 활성화
새 터미널에서 다음 명령어로 workspace를 소싱합니다:
7. Isaac Sim 연결 테스트
패키지 설치 확인
ROS 2 Bridge 연결 테스트
Isaac Sim에서 ROS 2 샘플 씬을 열고 토픽 연결을 테스트합니다:
- Isaac Sim 메뉴:
Window > Examples > Robotics Examples > ROS2 > ISAAC ROS - Sample Scene 실행
- Play 버튼 클릭 (시뮬레이션 시작)
/clock 토픽은 Play 버튼을 눌러 시뮬레이션이 실행 중일 때만 퍼블리시됩니다.

topic_based_ros2_control 토픽 테스트
topic_based_ros2_control은 다음 토픽을 통해 Isaac Sim과 통신합니다:
/isaac_joint_commands- 조인트 명령 전송/isaac_joint_states- 조인트 상태 수신
이 토픽들을 테스트하려면 MoveIt 예제를 실행합니다:
- Isaac Sim 메뉴:
Window > Examples > Robotics Examples > ROS2 > MOVEIT - Franka MoveIt 실행
- Play 버튼 클릭

ROS Bridge using Cyclone DDS
Isaac Sim은 기본적으로 rmw_fastrtps_cpp(Fast DDS)를 사용하도록 설정되어 있습니다. 위의 터미널 실행 예제에서도 Fast DDS를 사용합니다. 같은 머신에서 통신하는 경우 Fast DDS의 공유 메모리 전송이 최적의 성능을 제공합니다.
Cyclone DDS를 사용하려면 Isaac Sim 실행 전에 RMW_IMPLEMENTATION 환경 변수를 변경해야 합니다.
기존 예제에서 rmw_fastrtps_cpp로 설정하는 부분이 있다면 위 명령어로 대체하세요.
Cyclone DDS vs Fast DDS 비교
ROS 2에서는 DDS(Data Distribution Service)를 미들웨어로 사용합니다. 대표적인 구현체로 Cyclone DDS와 Fast DDS(구 FastRTPS)가 있습니다.
개요
| 항목 | Cyclone DDS | Fast DDS (FastRTPS) |
|---|---|---|
| 개발사 | Eclipse Foundation | eProsima |
| 라이선스 | Eclipse Public License v2.0 | Apache 2.0 |
| ROS 2 기본값 | Galactic | Humble, Iron, Jazzy |
| 특징 | 단순성, 효율성 강조 | 기능 풍부, DDS 표준 준수 |
ROS 2 Jazzy에서는 Fast DDS가 기본 DDS입니다. Cyclone DDS가 기본이었던 것은 Galactic 버전뿐입니다.
성능 비교
아래 성능 비교는 여러 벤치마크를 종합한 것입니다. 테스트 환경, 데이터 크기, 네트워크 조건에 따라 결과가 달라질 수 있으며, 각 DDS 개발사의 벤치마크에서는 자사 제품이 우수한 결과를 보이는 경향이 있습니다.
Throughput (처리량)
- Cyclone DDS: 일부 벤치마크에서 대용량 데이터 패킷 처리 시 우수한 결과
- Fast DDS: 다중 구독자 시나리오 및 대용량(2MB+) 데이터에서 강점. 공유 메모리 전송 시 우수
Latency (지연시간)
- Cyclone DDS: 소형 메시지에서 낮은 지연시간
- Fast DDS: 대용량 메시지에서 더 안정적인 지연시간, 지터(jitter)가 더 일정
- 공식 ROS 2 평가 보고서에서는 Fast DDS sync 모드가 4MB까지 모든 메시지 수신
CPU 사용량
- 공식 ROS 2 Middleware 평가 보고서에 따르면 명확한 승자 없음
- 워크로드와 데이터 크기에 따라 결과가 달라짐
메모리 사용량
- Cyclone DDS: 데이터 크기 증가 시 메모리 사용량이 빠르게 증가
- Fast DDS: 대용량 데이터에서 메모리 사용량이 더 안정적
Isaac Sim에서의 권장 사항
같은 머신에서 통신하는 경우 → Fast DDS 권장
- 공유 메모리(Shared Memory) 전송 사용으로 최고의 시뮬레이션 성능
- Linux에서 Fast DDS가 ROS 2 Bridge 활성화에 권장됨
다른 머신 또는 Docker 간 통신 → 추가 설정 필요
FASTRTPS_DEFAULT_PROFILES_FILE환경변수로 UDP 전송 활성화 필요fastdds.xml설정 파일 지정 필요
QoS 문제 발생 시 → Cyclone DDS 대안
- Fast DDS에서 depth policy가
UNKNOWN으로 표시되는 문제 해결 가능
주의사항
서로 다른 DDS 구현체를 혼용하면 문제가 발생할 수 있습니다.
- Talker 노드(FastRTPS) + Listener 노드(CycloneDDS) 조합에서 Listener가 먼저 실행되면 처음 4개 메시지 누락
- 모든 ROS 2 노드에서 동일한 DDS 구현체 사용 권장
참고 자료
Local Asset 설정
공식 문서: https://docs.isaacsim.omniverse.nvidia.com/5.1.0/installation/install_faq.html
Isaac Sim Local Assets Pack을 다운로드하면 오프라인 환경에서도 Asset을 사용할 수 있습니다.
1. Asset 다운로드
# aria2 설치
sudo apt install aria2
# Asset 파일 다운로드 (3개 파일, 총 약 30GB)
cd ~/Downloads
aria2c "https://download.isaacsim.omniverse.nvidia.com/isaac-sim-assets-complete-5.1.0.zip.001"
aria2c "https://download.isaacsim.omniverse.nvidia.com/isaac-sim-assets-complete-5.1.0.zip.002"
aria2c "https://download.isaacsim.omniverse.nvidia.com/isaac-sim-assets-complete-5.1.0.zip.003"2. Asset 압축 해제
3개의 Asset 파일을 모두 합쳐서 ~/isaacsim_assets/Assets/Isaac/5.1 폴더에 NVIDIA와 Isaac 폴더가 모두 있어야 합니다.
3. Isaac Sim 설정 파일 수정
~/isaacsim/apps/isaacsim.exp.base.kit 파일에 다음 설정을 추가합니다:
[settings]
persistent.isaac.asset_root.default = "/home/<username>/isaacsim_assets/Assets/Isaac/5.1"
exts."isaacsim.gui.content_browser".folders = [
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Robots",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/People",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/IsaacLab",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Props",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Environments",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Materials",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Samples",
"/home/<username>/isaacsim_assets/Assets/Isaac/5.1/Isaac/Sensors",
]<username>을 본인의 사용자명으로 변경하세요.
4. Isaac Sim 실행
설정 파일 수정 대신 커맨드라인 옵션으로도 실행할 수 있습니다:
persistent.isaac.asset_root.default 설정은 .kit 파일(3단계) 또는 커맨드라인(4단계) 중 하나만 사용하면 됩니다.
- 기본값:
https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1 - 이 설정은 Python 코드의
get_assets_root_path()또는get_assets_root_path_async()함수에서 사용됩니다.
5. Asset 연결 확인
Isaac Sim에서 Asset이 제대로 연결되었는지 확인합니다:
- Isaac Sim Assets Browser 탭 열기
- 기어(⚙️) 아이콘 클릭
- Check Default Assets Root Path 선택
로컬 Asset 사용 시 로그:
[139.213s] Checking for Isaac Sim Assets...
[139.218s] Isaac Sim assets found: /home/<username>/isaacsim_assets/Assets/Isaac/5.1
기본 온라인 Asset 사용 시 로그:
[139.213s] Checking for Isaac Sim Assets...
[139.218s] Isaac Sim assets found: https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/5.1