본문 바로가기

전체 글42

Gazebo Simulation 1. PX4-Autopilot 준비 참고 px4 developer guide Gazebo와 ROS를 이용해 드론 시뮬레이션을 진행하는 방법을 알아본다. 이 과정에서 추가적인 센서를 통합하고, 사용자가 원하는 sensor set과 환경에서 시뮬레이션을 수행할 수 있도록 주변 환경도 구축해본다. Ubuntu 18.04/20.04 ROS melodic/noetic 환경에서 테스트 되었다 1. 아래의 명령어로 PX4 오토파일럿의 최신 코드를 복제 git clone https://github.com/PX4/PX4-Autopilot.git 2. requirements 설치 pip3 install kconfiglib 3. geographiclib_dataset 설치 https://github.com/mavlink/mavros/blob/ros2/mavr.. 2024. 3. 21.
ACADO Toolkit 이란? 2. Code Generation 폴더 변경 방법 참고: ACADO homepage-making your own projects using Cmake ACADO 기본 패키지를 사용하면 code generation할때 /examples/code_generation/mpc_mhe 와 같이 복잡한 폴더 속에 넣어야 한다. 그래서 내가 원하는 폴더로 변경하기 위해 몇가지 작업을 해줄 필요가 있다. 1. /examples 안의 CMakeLists.txt 변경 CMakeLists.txt 안을 보면 33번째 줄부터 example directory를 입력하게 되어 있다. SET( EXAMPLE_DIRS basic_data_structures/curve basic_data_structures/function basic_data_structures/matrix_vecto.. 2022. 3. 4.
ACADO Toolkit 이란? 1. Code Generation 방법 참고: ACADO homepage 1. ACADO syntax에 맞게 my_examples.cpp code를 만든다. 2. /examples/code_generation/mpc_mhe> 폴더 안에 my_examples.cpp 파일을 넣는다. 3. /build 로 이동하고 compile 한다. cmake .. make (최초 컴파일 할 경우에는 mkdir build 를 먼저 해준다) 4. 앞에서 my_examples.cpp 파일을 넣어 두었던 /examples/code_generation/mpc_mhe 안에 code_generation_xxx라는 실행파일이 생성된다. 5. ./code_generation_xxx 를 실행하면 아래와 같이 my_examples.cpp 코드에 적은 폴더명으로 코드들이 자동 생성.. 2022. 3. 3.
MPC 란? (Model Predictive Control) 7. Multi-rotor system Model 참고: Mina Kamel Paper MPC는 Optimal Control의 한 방법인데 로보틱스의 planning및 제어에 많이 활용되고 있다. MPC를 사용하면 로봇의 속도 및 가속력과 같은 dynamics와 주변 환경 조건을 cost function으로 넣어 상황에 맞는 최적화된 제어 명령을 생성할 수 있고 이를 통해 안정적으로 로봇의 자율항법이 가능하다. 아주 오래전부터 해보고 싶었던 분야 인데, 이 글을 작성하면서 공부하고 실제 드론에 탑재해서 실험까지 수행해보고자 한다. 이전글까지 MPC의 기초에 대해 알아 보았다. 이번글 부터는 MPC를 쿼드로터에 활용하기 위한 본격적인 작업에 들어가도록 한다. 제일 첫번째로 Quadrotor System model에 대해 알아보고 이를 Linear MPC에.. 2022. 1. 12.
MPC 란? (Model Predictive Control) 6. MATLAB 코드 구현 참고: 제어조교님 유투브 강의 영상 MPC는 Optimal Control의 한 방법인데 로보틱스의 planning및 제어에 많이 활용되고 있다. MPC를 사용하면 로봇의 속도 및 가속력과 같은 dynamics와 주변 환경 조건을 cost function으로 넣어 상황에 맞는 최적화된 제어 명령을 생성할 수 있고 이를 통해 안정적으로 로봇의 자율항법이 가능하다. 아주 오래전부터 해보고 싶었던 분야 인데, 이 글을 작성하면서 공부하고 실제 드론에 탑재해서 실험까지 수행해보고자 한다. 이전글에서 제어입력의 변화량인 $\Delta U$를 구하는 수식을 유도해보았다. 이번에는 1~5장까지 학습한 MPC 유도식을 가지고 DC모터를 MPC 제어하는 코드를 MATLAB으로 구현해보도록 하겠다. *코드 출처: 제어조교 .. 2022. 1. 12.
MPC 란? (Model Predictive Control) 5. Controller Design 참고: 제어조교님 유투브 강의 영상 MPC는 Optimal Control의 한 방법인데 로보틱스의 planning및 제어에 많이 활용되고 있다. MPC를 사용하면 로봇의 속도 및 가속력과 같은 dynamics와 주변 환경 조건을 cost function으로 넣어 상황에 맞는 최적화된 제어 명령을 생성할 수 있고 이를 통해 안정적으로 로봇의 자율항법이 가능하다. 아주 오래전부터 해보고 싶었던 분야 인데, 이 글을 작성하면서 공부하고 실제 드론에 탑재해서 실험까지 수행해보고자 한다. 이전글에서 Optimal Control의 기초인 LQR(Linear Quadratic Regulator)에 관해서 알아 보았다. 이번 글에서는 LQR의 기본 지식을 바탕으로 MPC를 위한 제어기를 설계하는 것에 대해 학습한다. .. 2022. 1. 11.
MPC 란? (Model Predictive Control) 4. Optimal control 참고: 제어조교님 유투브 강의 영상 MPC는 Optimal Control의 한 방법인데 로보틱스의 planning및 제어에 많이 활용되고 있다. MPC를 사용하면 로봇의 속도 및 가속력과 같은 dynamics와 주변 환경 조건을 cost function으로 넣어 상황에 맞는 최적화된 제어 명령을 생성할 수 있고 이를 통해 안정적으로 로봇의 자율항법이 가능하다. 아주 오래전부터 해보고 싶었던 분야 인데, 이 글을 작성하면서 공부하고 실제 드론에 탑재해서 실험까지 수행해보고자 한다. 이전글에서 MPC의 미래 state variable과 출력에 대해 알아보고 이를 통해 현재 정보를 알고 있을 때 미래의 출력을 따라가도록 하는 입력을 구할 수 있다는 것을 알았다. 이제 이러한 배경지식을 가지고 controlle.. 2022. 1. 10.
MPC 란? (Model Predictive Control) 3. Prediction of state and output 참고: 제어조교님 유투브 강의 영상 MPC는 Optimal Control의 한 방법인데 로보틱스의 planning및 제어에 많이 활용되고 있다. MPC를 사용하면 로봇의 속도 및 가속력과 같은 dynamics와 주변 환경 조건을 cost function으로 넣어 상황에 맞는 최적화된 제어 명령을 생성할 수 있고 이를 통해 안정적으로 로봇의 자율항법이 가능하다. 아주 오래전부터 해보고 싶었던 분야 인데, 이 글을 작성하면서 공부하고 실제 드론에 탑재해서 실험까지 수행해보고자 한다. 이전글에서 MPC를 위한 기본 모델을 모델링 해보았다. 이번 글에서는 MPC의 목적 즉, 내가 원하는 $N_p$개의 출력 model이 있다면, 그렇게 되도록 만드는 $N_c$개의 제어입력을 구하는 과정에 대해서 알아보도록 하겠다.. 2022. 1. 4.