일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 러닝 #운동 #동기부여
- 우분투
- 제어공학
- 궤환 선형화
- Python
- 나이퀴스트선도
- Backstepping
- #! /usr/bin/env python
- 나이퀴스트
- 자동제어
- 오류
- RL
- 백스테핑
- 경로계획
- feedback linearization
- FL
- 강화학습
- 횡방향 동역학
- 나이퀴스트 선도
- 2024적금
- control
- ROS2
- 궤환선형화
- Isaac Sim
- ros2humble
- 차량 동역학
- 비선형제어
- lateral dynamics
- 보드선도
- 터미널 오류
- Today
- Total
목록자율주행 (13)
내 머릿속

소개차량의 횡방향 동역학은 횡방향 제어기 설계시 가장 중요한 부분이다. 종방향 제어의 경우 비교적 단순한 반면, 횡방향 제어는 살짝 복잡해진다. 운동방정식동역학은 다음과 같은 두 가지 운동방정식으로 표현이 가능하다.차량의 횡방향 움직임은 병진(translation)과 회전(rotation)이 모두 있기 때문에 다음과 같이 표현된다.[1] $F = ma_y$ [2] $M = I_z \alpha$ 위의 그림에서 $\beta = \psi$이고, $\delta_f = \delta$라고 하겠다. 운동방정식을 확장하면[1]번 식은 [1-1]$F_yf + F_yr = m (\ddot y + V_x \dot \psi)$ 으로 표현되고,[2]번 식은 [2-1]$F_{yf} l_f - F_{yr} l_r = I_z \dd..
이제 백스테핑 관련 두번째 포스트다. Backstepping 의 메인 아이디어는 수렴하게 하고싶은 변수에 관련된 변수를 보조제어입력으로 삼아 우선 수렴하게 만들고그 보조 제어입력을 다시 다른 변수로 만들어 그 변수를 0으로 수렴하게 만드는 과정을 반복한다. 이번에도 예제와 함께 해보자.예제$\dot x_1 = x_1^2 - x_1^3 + x_2$$\dot x_2 = x_3$$\dot x_3 = u$ 이제는 감이 올지 모르겠지만 동일하게 $x_2=-x_1^2-x_1$와 같이 사용할 것이다. 그러면 $phi(x_1) = -x_1^2-x_1$이고$\dot x_1 = x_1^2 -x_1^3 +x_2 +\phi(x_1) - \phi(x_1)$ 이 되니까 $z_2 = x_2 - \phi(x_1)$이라고 둘 수 있고..

이번에는 Backstepping control에 대해 소개해보겠다. 이전 FL과 유사하게 예제와 함께 해보자 예제$\dot x_1 = x_1^2 - x_1^3 + x_2$$\dot x_2 = u$ 이런 시스템이 존재할 때, FL의 경우$z_1 = x_1$$z_2 = \dot z_1$으로 정의해서 $\dot z_2 = 2 x_1 \dot x_1 - 3 x_1^2 \dot x_1 + \dot x_2$와 같이 정의하고 다시 $\dot x_1$ , $\dot x_2$를 대입해서 $\dot z_2 = (2 x_1- 3x_1^2)(x_1^2 - x_1^3 + x_2) + u $와 같이 만들고 우변을 보조 제어입력 v로 보면, $v = (2 x_1 - 3x_1^2)(x_1^2 - x_1^3 + x_2) + u$$u ..

이번에도 FL의 예제와 함께하는 설명입니다. 예제$\dot x_1 = sin(x_2)+(x_2+1)x_3$$\dot x_2 = x_1^5 + x_3$$\dot x_3 = x_1^2 + u$$y = x_1$ 이번에는 모든 상태를 피드백 받는것이 아닌 $y$을 피드백 받아 $y_d$를 추종하는 제어입력을 설계해야 합니다. 현재 제어입력 $u$는 $x_1$과 직접 연결되어 있지 않으니, $y$를 한번 미분해보겠습니다. $\dot y = \dot x_1$ 이므로$\dot y = sin(x_2) + (x_2+1)x_3$ 입니다. 만약 여기서 제어입력이 나왔다면 이전과 같이 우변을 모두 보조제어입력 $v$로 보고, u를 설계하면 됩니다.하지만 제어입력이 없기 때문에 한번 더 미분해주겠습니다. $\ddot y = c..

이번에는 지난 포스트에 이어 비선형 제어기 중 하나인 Feedback Linearization에 대해 더 소개해보겠습니다. 2차 비선형 시스템저번에는 단순한 1차 비선형 시스템이여서 FL의 제어입력 식이 단순하게 설계 될 수 있었습니다. 1차 비선형 시스템의 경우 $\dot x = v$ 와 같은 꼴로 만들어지는 제어입력 $u$를 설계하고,$v$가 어떤 에러에 비례한 제어입력꼴을 갖도록 하는 최종 제어입력을 설계하면 됐었습니다. 2차 시스템의 경우는 우선$ \dot x_1 = x_2$$ \dot x_2 = v$ 와 같은 꼴을 가지도록 하는 u를 설계하는게 먼저고, 이후에 $v=-K_1 x_1 - K_2 x_2$와 같이 두게 되면 시스템의 상태를 안정화시키는 제어입력이 완성됩니다. 예제$\dot x_1 = ..

비선형 제어기는 대표적으로 3가지 정도가 존재합니다. 1. Feedback Linearzation(궤환 선형화)2. BackStepping(백스테핑)3. Sliding Mode Control(슬라이딩 모드 제어) 오늘은 이 중 Feedback Linearization에 대해서 작성해 보겠습니다. 1. 쉬운 개념Q. 어떠한 시스템이 비선형 항을 가지고 있고 그 성분을 모두 알수 있다면?A. 제어입력에서 이를 상쇄해주어 선형시스템으로 만들고, 목표값으로 수렴하게 하는 제어입력을 설계한다! 입니다. 제어입력이 포함시켰을 때의 시스템을 Closed-loop dynamics , 혹은 Closed-loop system, Error dynamics라고 할 수 있습니다. 그렇다면 선형 시스템의 제어입력을 잘 설계해서$..

이번 글은 Isaac sim 4.2 환경에서 기본적인 주행 ROS topic 인 Twist 타입의 /cmd_vel을 4륜 모바일로봇에 적용하는 예제입니다.Action Graph 불러오기Isaac Utils -> Common Omnigraphs -> Diffrential ControllerRobot Prim에서 Add로 로봇을 선택해줍니다. (저는 jackal)바퀴 반지름과 바퀴간 거리를 설정.Action 그래프 수정새로 생성된 Action Graph인 diffrential_controller 그래프를 열어줍니다.우선 ROS2 Subscribe Twist 노드를 추가하고다음과 같이 연결해줍니다. 기존에 On Playback Tick에서 Diffrential Controller로 연결된 간선은 우클릭으로 D..

https://howtobemechanic.tistory.com/39 [강화학습] 실제 예제로 배우는 아이작 심 기반 강화학습 -2편-https://howtobemechanic.tistory.com/38 [강화학습] 실제 예제로 배우는 아이작 심 기반 강화학습 -1편-https://www.youtube.com/watch?v=rVCHgXl9E6o 본 예제는 다음 영상을 보고 한국인을 위해 제작된 예제입니다. 사howtobemechanic.tistory.com이 글은 2편에서 이어지는 글이다. 이제 대망의 강화학습을 돌리는 부분이다. 강화학습 코드처음에 받았던 Isaac_SAC/src/robot_control/scripts에 있는 train_sac_isaac.py가 그 코드이다. 이 코드는 가상환경을 키고,..