코딩 및 기타

[isaac sim] ROS 2 Navigation 2

정지홍 2026. 3. 11. 17:36

1. 우선 Window > Examples > Robotics Examples에서 ROS2 > Navigation > iw_hub예제를 불러온다.

시나리오 맵을 불러왔다.

 

 

 

2. 시뮬레이션을 시작하고 아래의 명령어를 입력한다.

ros2 launch iw_hub_navigation iw_hub_navigation.launch.py

이러한 화면을 볼 수 있다.

 

 

3. goal pose를 지정해준다.

장애물이 있는 쪽으로 지정시에 초기 map에 포함되지 않았던 장애물을 회피함을 확인함.

 

 

 

 

4. Sending Goals Programmatically

  • "isaac_ros_navigation_goal" ROS2 package는 python node를 사용해서, robot의 goal pose를 설정하는데 사용할 수 있다.
    • 해당 package는 goal pose를 무작위로 생성해서 Nav2로 보내는것도 가능하다.
      당연히 사용자가 지정한 goal pose로도 갈수있다.
    • 필요하다면, isaac_ros_navigation_goal/launch 아래의 launch file에 정의된 파라미터를 수정할 수 있다.(대신 다시 빌드해야함)
  • 아래 사진은 isaac_ros_navigation_goal/launch에 있는 런치 파일이다.
    • goal_generator_type ==> 이는 goal generator의 종류이다. 무작위로 생성하려면 RandomGoalGenerator를 사용한다.
      만약에 사용자 정의 goal을 특정 순서대로 보내려면, GoalReader를 사용한다.
    • map_yaml_path ==> occupancy map parameter YAML 파일의 경로이다. map image는 생성된 pose주변에 장애물이 있는지 식별하는데 사용됨.
    • iteration_count ==> goal을 설정할 횟수이다.
    • action_server_name ==> action server의 이름이다.
    • obstacle_search_distance_in_meters ==> 생성된 pose가 어떠한 obstacle로부터 자유롭다고 판단되기 위한 거리(meters)이다.
    • goal_text_file_path ==> 사용자가 정의한 static goal이 들어있는 text file의 경로다. 각 파일의 각 줄에는 다음 형식으로 하나의 goal pose가 들어간다... ( pose.x , pose.y , orientation.x , orientation.y , orientation.z , orientation.w )
    • initial_pose ==> 해당 값이 설정되어 있다면, /initialpose 토픽에 publish된다. 그리고 후에 goal pose가 action server로 전송된다. 

  • 1. 이제 goal을 랜덤하게 생성하여, 로봇이 goal pose로 주행하게 할것이다.
    • 다시 Window > Examples > Robotics Examples에서 ROS2 > Navigation > Nova Carter를 하여 시나리오를 로드한다.
  • 2. 시뮬레이터 실행
  • 3. nav2실행
    • ros2 launch carter_navigation carter_navigation.launch.py
  • 4. goal pose생성후 전송
    • ros2 launch isaac_ros_navigation_goal isaac_ros_navigation_goal.launch.py

 

 

 

5. Sending Goals Using ActionGraph

  • 1. Window > Examples > Robotics Examples에서 ROS2 > Navigation > Nova Carter를 하여 시나리오를 로드.
  • 2. 이번에는 waypoint follower parameters 윈도우를 연다.

여기에서 load waypoint follower action graph를 누른다.
그래프를 열면 이렇게 나온다.

  • 3. 다시 nav2를 실행.
    • ros2 launch carter_navigation carter_navigation.launch.py

늘 보던 화면이 뜰거임.

  • 4. stage에서 world --> waypoints --> waypoint_0을 누른다. 

( 0 , 0 ,0 )이 현재 위치다.

 

 

  • 5. 드래그 하면서 위치를 옮겨준다.

( 2.12 , -4.46 , 0 )이 현재 위치다.

'코딩 및 기타' 카테고리의 다른 글

[tello] RT창고 방문 전  (0) 2026.03.13
[isaac sim] isaac sim과 ros의 파이썬 버전 관련  (0) 2026.03.12
[isaac sim] ROS 2 Navigation  (0) 2026.03.10
[isaac sim] ROS2 tutorials 9  (1) 2026.03.10
[isaac sim] ROS2 tutorials 8  (0) 2026.03.05