코딩 및 기타

[isaac sim] isaac sim과 ros를 연동시켜서 주행

정지홍 2026. 4. 10. 08:08

isaac sim과 ros를 연동시켜서 주행하려면?

  • isaac sim은 “시뮬레이터 + ROS 2 브리지 + 센서/오도메트리/TF 제공자” 수행
  • 실제 내비게이션은 Ros 2의 nav2 스택이 해야함. 
    • nav2의 planner_server에 global planner plugin으로 넣어야 함.
      • Nav2는 planner/controller/smoother/behavior server를 각각 독립 서버로 둔다.
        알고리즘은 pluginlib로 꽂는 구조다.
      • BT Navigator가 NavigateToPose 같은 상위 내비게이션 인터페이스를 담당
    • planner server는  goalplugin의 이름을 받아서 경로를 계산하는 서버다.
      • planner plugin은 nav2_core::GlobalPlanner를 상속해서 구현한다.
  • 전체적인 구조.....
    • isaac sim ( Nova Carter + Ros2 bridge ) ---> Ros2 TF/odom/scan 제공 ---> nav2(map_server + localization + planner_server + controller_server + bt_navigator + lifecycle_manager) → planner_server 안에 A* 플러그인 → controller_server가 /cmd_vel 생성 → Isaac Sim이 /cmd_vel 받아 주행

 

 

https://jihong.tistory.com/798 처럼 직접 /cmd_vel을 publish하는건 비선호인가?

  • 위의 방식은 외부노드가 맵을 읽고 A*를 돌리고, follower까지하여 /cmd_vel을 직접 publish함.
  • Ros2관점에서는 planner와 controller가 섞인 구조이다...
    • 이는 RViz의 Nav2 Goal 버튼과 자연스럽게 연결되지 않음
    • recovery behavior, replanning, lifecycle 관리가 약함
  • 위의 방법과 다르게 Nav2에서는....
    • planner server가 global path를 만든다.... ---▶ controller server가 경로를 따라감.(경로추종)  ---▶  BT Navigator가 상위 액션 인터페이스를 제공
    • planner server가 global costmap을 호스팅함.
    • controller server는 local costmap을 호스팅함. 

 


 

우선 isaac-sim과 Ros2를 연동하여 띄워볼거다...

 

1. 우선 isaac-sim을 실행한다.

source ~/IsaacSim-ros_workspaces/build_ws/humble/humble_ws/install/local_setup.bash
source ~/IsaacSim-ros_workspaces/build_ws/humble/isaac_sim_ros_ws/install/local_setup.bash
cd /isaac-sim
./isaac-sim.sh

 

 

2. robotics examples에서 nova carter맵을 띄운다.

이렇게 뜰 것이다.

 

 

3.  새로운 터미널에서 아래를 입력

  • 아래 사진과 같은 로그가 출력될것임.
  • 이는 robot_state_publiser이며, urdf기반으로 robot description/TF를 퍼블리시하는 용도이다.
source /opt/ros/humble/setup.bash
source ~/IsaacSim-ros_workspaces/humble_ws/install/local_setup.bash
ros2 launch carter_navigation nova_carter_description_isaac_sim.launch.py

 

 

 

4. rviz2를 열고 occupancy map을 로드하자. 

source /opt/ros/humble/setup.bash
source ~/IsaacSim-ros_workspaces/humble_ws/install/local_setup.bash
ros2 launch carter_navigation carter_navigation.launch.py

시뮬레이터 play누르면 실행됨

 

 

 

5. nav2 goal을 눌러 특정지점까지 이동하자

빨간 선이 계산된 경로.