일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 오류
- 2024적금
- ROS2
- 제어공학
- 나이퀴스트선도
- 나이퀴스트
- 강화학습
- 러닝 #운동 #동기부여
- #! /usr/bin/env python
- 백스테핑
- Python
- 보드선도
- 궤환선형화
- RL
- feedback linearization
- FL
- lateral dynamics
- 비선형제어
- ros2humble
- 터미널 오류
- Isaac Sim
- 궤환 선형화
- 자동제어
- 차량 동역학
- 우분투
- Backstepping
- humble
- 횡방향 동역학
- control
- 경로계획
- Today
- Total
내 머릿속
[Ubuntu 22.04] Isaac sim 4륜 모바일 로봇 ROS토픽 연동하기 본문
이번 글은 Isaac sim 4.2 환경에서 기본적인 주행 ROS topic 인 Twist 타입의 /cmd_vel을 4륜 모바일로봇에 적용하는 예제입니다.
Action Graph 불러오기
Isaac Utils -> Common Omnigraphs -> Diffrential Controller
Robot Prim에서 Add로 로봇을 선택해줍니다. (저는 jackal)
바퀴 반지름과 바퀴간 거리를 설정.
Action 그래프 수정
새로 생성된 Action Graph인 diffrential_controller 그래프를 열어줍니다.
우선 ROS2 Subscribe Twist 노드를 추가하고
다음과 같이 연결해줍니다. 기존에 On Playback Tick에서 Diffrential Controller로 연결된 간선은 우클릭으로 Disconnect
이제 Break 3-Vector 노드 두개와 Scale To/From Stage Units 노드를 가져와서 다음과 같이 연결.
이 과정을 통해서 /cmd_vel 토픽을 받아 angular.z, linear.x 를 하부제어기에 Reference 값으로 던져줄 수 있습니다.
다음으로 Diffrential Controller Node에서 maxLinearSpeed를 지정( ex : 0.5 )
이제 기존에 하나였던 Articulation Controller를 하나 더 추가하고 Velocity Command와 On Playback Tick 노드의 Tick을 Exec In에 연결해줍니다.
다음으로 Constant Token 노드 2개, Make Array 노드 한개를 만들어주고 Make Array의 우측 메뉴에서 input을 + 를 눌러서 추가
그리고 위에거는 rear_right_wheel_joint ( 로봇에 따라 부여된 조인트 이름 참고 )
아래 토큰은 rear_left_wheel_joint를 각각 입력하고 Make Array에서 나온 Array를 Joint Names에 연결
그리고 상단 Articulation Controller의 targetPrim을 base_link 혹은 base_footprint로 변경.
동일하게 하단 Articulation Controller에도 적용해주면 되는데 상단 토큰은 front_right_wheel_joint, 하단은 front_left_wheel_joint입니다. 동일하게 Array를 Joint Names에. Target Prim을 base_link 혹은 base_footprint로 지정.
테스트
'자율주행' 카테고리의 다른 글
[차량동역학]차량 횡방향 동역학 Vehicle lateral dynamics -1- (1) | 2025.03.04 |
---|---|
[강화학습] 실제 예제로 배우는 아이작 심 기반 강화학습 -3편- (0) | 2025.01.21 |
[강화학습] 실제 예제로 배우는 아이작 심 기반 강화학습 -2편- (0) | 2025.01.21 |
[강화학습] 실제 예제로 배우는 아이작 심 기반 강화학습 -1편- (0) | 2025.01.21 |