쿼드 콥터
-
ICM-20xxx 센서 필터 적용쿼드 콥터 2023. 5. 8. 10:54
쿼드콥터가 자꾸 한 쪽으로 과도하게 기울거나 진동이 너무 심해서 제어가 안된다면 필터 오동작을 의심해봐야 한다. 필터 없이 ICM-20608 센서에서 값을 1khz 단위로 읽어와 필터를 읽어와서 오일러 각에 상보필터를 적용하고 자이로에 칼만필터를 적용하는 코드를 작성한게 원인이었다. ICM-20608 센서는 자체적으로 필터 기능을 내장하고 있어 설정을 통해 기능을 사용할 수 있는데 관련한 센서의 레지스터 비트는 FCHOICE_B, DLPF_CFG 이고 온도 센서도 켜야 제대로 동작하는 거 같다. void init_mpu () { int delay_time = 100; HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET); HAL_Delay(delay_time); ui..
-
blheli_s littlebee 30a esc calibration쿼드 콥터 2023. 4. 17. 12:12
비프음 들으면서 esc calibration 하는 방법을 썼다. 보니까 blheli는 calibration해주는 프로그램이 있는 모양인데 지원하는 보드가 한정적이라 결국 각자의 보드에 맞는 calibration을 진행하려면 이 방법 밖에 없지 않을까 싶다. void do_calibration () { update_throttle(3480); // max throttle pwm signal HAL_Delay(10000); update_throttle(1750); // min throttle pwm signal HAL_Delay(10000); } 왜 하필 10 seconds의 대기가 필요한지 궁금하다면 blheli 사의 비프음과 관련된 manual을 읽어야 한다. 만약 calibration은 이미 됐고 바로..
-
쿼드콥터 제작쿼드 콥터 2023. 3. 18. 23:49
쿼드콥터는 알기 쉽다. 목표값을 생성할 때 제어가 필요하다. 생성된 목표값으로 개별 구동기의 합리적인 출력을 결정할 때 동역학이 필요하다. 예를 들면 방위각을 제어하고 싶다면? 센싱 방위각과 목표 방위값의 차이가 타겟 방위 미분값이 되고 목표 방위 미분값과 센싱 방위 미분값의 차이가 목표 각 가속도가 된다. 여기까지가 제어의 영역 이후 모터 4개의 출력값으로 각 가속도를 구하는 연산의 역을 취하면 각 가속도 -> 모터 4개의 출력 여기까지가 동역학의 영역 목표값과 센서값을 이용해서 출력을 얻었고 그 과정이 타당하다. 그리고 KITECH 양광웅씨가 작성한 "쿼드콥터 동역학 해석"과 "쿼드콥터 제어기 설계" pdf 2개를 꼭 보기 바란다. pdf 파일은 구글에 검색하면 쉽게 찾을 수 있다. ("KITECH ..