
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 같은 상위 내비게이션 인터페이스를 담당
- Nav2는 planner/controller/smoother/behavior server를 각각 독립 서버로 둔다.
- planner server는 goal과 plugin의 이름을 받아서 경로를 계산하는 서버다.
- planner plugin은 nav2_core::GlobalPlanner를 상속해서 구현한다.
- nav2의 planner_server에 global planner plugin으로 넣어야 함.
- 전체적인 구조.....
- 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

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

'코딩 및 기타' 카테고리의 다른 글
| 학생용 무료 azure server 구축 (0) | 2026.04.10 |
|---|---|
| [isaac-sim] 8방향 a*알고리즘 (0) | 2026.04.09 |
| [isaac-sim] 4방향 a*알고리즘 (0) | 2026.04.08 |
| [isaac sim] sh파일로 로봇을 맵에 띄워보기 및 A* 알고리즘 (0) | 2026.04.08 |
| [isaac sim] Motion Generation (0) | 2026.04.07 |