기본적으로 여러 정보를 바탕으로 미래에는 어떤 input sequence 를 가져야 reference path 에 도달 할 수 있는지 알려준다.
한번 만 하는게 아니라 반복적으로 조금씩 해내 나가는 것이다.
기존의 것들은 frequency domain 이었지만 MPC의 경우는 매 시간 term 마다 optimization problem 을 푸는 방식임으로 time domain이다.
기존의 PID Controller로 multiple input output system을 구축 하려면 서로의 input 과 output이 영향을 받는 경우가 있기때문에 구현 하기 힘들다. MPC controller는 그것들을 간소화 시켜서 해결해준다.
acado toolkit 을 이용한 실습
1. git clone https://github.com/acado/acado.git -b stable
2. cd acado 를 한후에 acado/examples/getting_started 아래에 hayoung-kim/programmers_sdv
에 있는 simple_mpc.cpp 파일을 복사한다.
3. 다시 상위 acado/ 로 가서 build 디렉토리를 만든후 안에들어가서
4. cmake ..
5. make
6. acado/examples/getting_started 아래에가서 ./simple_mpc 로 실행해주면 simple_mpc_export 폴더가 생성이된다. 안에있는 모든것을 실습 코드 tracking/mpc/solver안에 붙여넣어준다.
7. solver 폴더안에서 python setup.py build_ext --inplace 를 실행한다. acado.so 파일이 생성되면 성공(파이썬에서 사용할수 있는 라이브러리)
8. model_predictive_control.py 를 실행해본 결과
'자율주행 > 차량제어' 카테고리의 다른 글
A generic driving strategy for urban environment (0) | 2021.02.03 |
---|---|
Optimal frenet planning algorithm (0) | 2021.02.03 |
Path Planning Algorithms (0) | 2021.02.03 |
PID ,Kalman (0) | 2021.02.02 |
차량 모델링 (좌표계 ,Kinematic, Dynamic Mode (0) | 2021.02.01 |