Isaac Sim ROS2 Tutorial 2: Camera Topic Publish
TurtleBot에 카메라를 추가하고 render product와 ROS2 Camera Helper로 image topic을 publish한다.
이 글은 TurtleBot stage에 camera prim을 붙이고, Isaac Sim camera output을 ROS2 image topic으로 publish한 뒤 RViz2에서 확인하는 과정을 정리한다. 핵심은 camera prim 자체보다 render product와 ROS2 Camera Helper의 연결이다.
1. TurtleBot에 카메라 추가
카메라는 로봇의 움직임을 따라가는 base prim 아래에 추가한다. URDF import 후 namespace가 붙었다면 a__namespace_base_footprint처럼 보이는 base 계층 아래에 넣어야 로봇 이동과 함께 frame이 움직인다.

두 camera의 transform은 전방과 후방을 보도록 잡았다. 이렇게 구성하면 topic 분리와 frame 설정이 제대로 되었는지 확인하기 쉽다.

2. ROS2 Camera OmniGraph
Isaac Sim에는 camera용 ROS2 graph shortcut이 있다. 메뉴에서 graph를 만든 뒤 ROS2 bridge extension이 켜져 있는지 먼저 확인한다.
1
Tools > Robotics > ROS 2 OmniGraphs > Camera
Isaac Create Render Product의 target은 camera prim이고, ROS2 Camera Helper는 그 render product를 image topic으로 변환한다. camera info와 image topic 이름을 명확히 나누면 RViz2에서 확인하기 쉽다.
1
2
3
4
Camera prim
-> Isaac Create Render Product
-> ROS2 Camera Helper
-> ROS2 image topic

3. RViz2에서 Topic 확인
ROS2 workspace를 source한 뒤 topic과 image display를 확인한다.
1
ros2 topic list

4. Camera Noise 예제
센서 노이즈를 추가하면 이미지가 실제 카메라처럼 더 불안정하게 들어오는 상황을 테스트할 수 있다. 노이즈가 적용된 topic도 별도로 publish해 RViz2에서 비교했다.
1
2
cd ~/isaacsim
./python.sh standalone_examples/api/isaacsim.ros2.bridge/camera_noise.py
1
2
3
4
Camera prim
-> Render Product
-> ROS2 Camera Helper
-> RViz2 Image display
이번 글의 결론은 camera를 보이게 만드는 것보다 frame, render product, topic 이름을 일관되게 관리하는 것이 더 중요하다는 점이다.







