ROS 2 Ackermann Controller — Isaac Sim Documentation
ros2 run isaac_tutorials ros2_ackermann_publisher.py Verify that the Leatherback car moves similarly to the one below:
docs.isaacsim.omniverse.nvidia.com
1. create -> environments -> flat grid를 추가한다.
2. content browser에서 leatherback을 추가...
- Isaac Sim > ROBOTS > NVIDIA > Leatherback
3. 추가한 로봇에서 Transform Property에서 Translate의 모든 값(Translate components)을 0으로 만들어 원점에 위치하게 함.

4. action graph를 구성한다.
- on playback tick : 매 시뮬레이션 프레임마다 다른 그래프 노드 실행
- Ros2 context : 환경변수 ROS_DOMAIN_ID를 사용해서 context생성.
- Ackermann Controller : 각 바퀴의 조향 각도와 바퀴 속도를 계산.
- Ros2 subscribe ackermann drive : ackermann 주행명령을 subscribe한다.
- Ros2 QoS Profile : QoS 프로파일 생성
- Articulation Controller : Leatherback의 steering joints제어
- Articulation Controller_01(아래꺼) : Leatherback의 바퀴 조인트 제어

5. Articulation Controller의 property수정
- target prim에서 leatherback을 추가. ( leatherback 장수거북? )
- jointNames에 아래 2개를 추가. (Knuckle 관절)
- Knuckle_Upright_Front_왼/오 ==> 이거는 앞바퀴 방향을 꺾는 joint이다.
이것의 각도를 바꾸면 앞바퀴가 좌/우로 돌아간다. - Kunckle_upright로 시작하는거는 "핸들 축"으로 생각하면 됨. 즉, 조향(방향꺾는) 조인트의 이름이다. ( wheel로 시작한다면, 바퀴를 굴리는 회전 조인트 이름)
- Knuckle_Upright_Front_왼/오 ==> 이거는 앞바퀴 방향을 꺾는 joint이다.

6. articulation_controller_01의 property수정
- targetPrim에서 / leatherback추가
- jointNames에 아래 4개를 추가
- Front와 near은 각각 앞/뒤를 의미.
- 앞바퀴
- wheel_knuckle_front_좌/우 => 앞바퀴는 "knuckle(위의 조향부품)"에 붙어서 회전함.
- 뒷바퀴
- wheel_upright_rear_좌/우 ==> 뒷바퀴는 뼈대에 직접 붙어서 회전함. 그래서 upright라고 함.

7. ros2 subscribe ackermann drive에서 input topic이 ackermann_cmd인지 확인

8. ackermann controller노드의 property탭에서 입력값을 아래 표처럼 설정


9. ros2 run isaac_tutorials ros2_ackermann_publisher.py 입력하면 움직일 거임
ackermann 키보드로 움직이기
1. Isaac Sim > Sample > ROS2 > Scenario > leatherback_ackermann을 열어준다

2. play를 누르고 아래 명령어 입력
ros2 launch cmdvel_to_ackermann cmdvel_to_ackermann.launch.py acceleration:=0.5 steering_velocity:=0.5
- publish_period_ms (기본값=20): publish 주기 dt (ms)
- track_width (기본값=0.2): 바퀴 간 거리(휠 분리 거리) (m)
- acceleration (기본값=0.0): 가속도. 0이면 가능한 한 빨리 속도 변경 (m/s²)
- steering_velocity (기본값=0.0): 조향각 변화 속도. 0이면 가능한 한 빨리 각도 변경 (rad/s)
3. 다른 터미널에서 아래 명령어 입력하면 조작 가능
ros2 run teleop_twist_keyboard teleop_twist_keyboard'코딩 및 기타' 카테고리의 다른 글
| [isaac sim] ROS 2 Navigation (0) | 2026.03.10 |
|---|---|
| [isaac sim] ROS2 tutorials 9 (1) | 2026.03.10 |
| [isaac sim] ROS2 tutorials 7 (0) | 2026.03.04 |
| [isaac sim] ROS2 tutorials 6 (0) | 2026.03.03 |
| [tello] (0) | 2026.03.03 |