SSM 18

[쿼드콥터] 시연 영상 및 고찰

시연영상 드디어 시연 영상이군요 만든건 한참전인데 여기까지 글을 쓰는데 오래걸린거 같네요...... 이 시연영상은 제가 쿼드콥터를 만들면서의 모든것을 영상에 담을려고 노력했습니다. 고찰 블로그 자체를 단순히 내가 쿼드콥터를 만들때의 경험을 정리해서 적어보자 라는 생각으로 시작했었습니다. 왜냐하면 저도 만들때 여러 블로그를 참고했고 좋은자료도 많았지만 역시 만들어 본것과 안본것의 차이를 절실히 느꼈기 때문입니다. 그래서 어떻게든 만들면서 어려웠던 점이나 깨달은 점을 쉽게 적어보고자 했는데 역시 그렇게는 안된거 같네요 ㅋㅋㅋ;;;; 쿼드콥터에 대한 블로그를 작성하면서 가장 크게 느낀 것은 아 내가 아직도 공부해야 할 부분이 한참 남았다는 것입니다. 정리를 하다보니 정말 쿼드콥터를 막 만들었는데 신기하게 날긴..

SSM/쿼드콥터 2016.03.13

[쿼드콥터] 블루투스에 관하여

무선통신 블루투스 당연하지만 쿼드콥터는 비행체이기 때문에 무선통신이 필요하다. 나는 이 무선통신을 블루투스로 선택하였다. 무선 통신으로는 FB155BC를 사용하여서 통신을 하였는데 이 모듈은 최대 통신거리가 거의 30m 정도이고 평균 10m 정도이다. 아마 쿼드콥터를 조정하는데 있어서 짧다면 짧은 거리 일 것이다. 어찌보면 쿼드콥터는 무선 비행체이기 때문에 무선 통신이 매우 중요하다. 하지만 만들어야 하는 시간이 촉박해서 나는 이 부분을 중요시 여기지 않았고 공부를 덜 해서 개발한 것이 내 쿼드콥터를 만들때 가장 큰 문제가 되었다. 다음에 시간이 된다면 다시 이 부분을 공부해서 제대로 보완 하고 싶다. 블루투스 명령 신호 블루투스 명령신호는 아래의 그림과 같다. 또한 휴대폰 명령을 주는 어플같은 경우는 ..

SSM/쿼드콥터 2016.03.12

[쿼드콥터] 스케줄링 및 Time Rate 에 관하여

스케줄링의 필요성 쿼드콥터는 비행체이다. 그렇기에 비행을 유지를 하지 못하면 바로 추락해 버리게 된다. 그렇기 때문에 정해진 시간마다 계산이 이루어져서 출력을 해줘야하는데 이런 시스템을 RTOS(Real Time Operating System) 이라고 한다. 즉 CPU 시간 관리 부분에 초점을 맞춰서 실시간으로 운영하면 프로세스의 우선 순위에 따라 제어를 해야 한다. 그렇지 않으면 추락하게 되는 것이다. 스케줄링 기법 인터넷을 조금만 찾아봐도 CPU의 스케줄링 기법은 여러개이고 심지어 복잡한 것을 발견할 수 있다. 나 같은 경우는 이해가 힘들기 때문에 따로 스케줄링 기법을 쓰지 않고 내가 직접 시간을 측정하고 계산해서 일정 시간마다 딱 한번의 동작만 일어날 수 있게 하는 One - Shot 작업으로 쿼드..

SSM/쿼드콥터 2016.03.08

[쿼드콥터] Gain 이득에 관해서 (Yaw)

Yaw 이득에 대해서 나의 쿼드콥터 같은 경우는 미리 언급했다시피 지자기 센서를 사용하지 않는 쿼드 콥터이다 즉 ARS 자세 제어이다. 즉 Yaw 각에 대해서는 기준이 없기 때문에 위치에 대한 제어를 할 수 없고 속도에 대한 제어만 있는 것이다. 즉 속도에 대해서 비례제어만 사용하는 것이다. 그렇기에 구해야하는 이득도 하나이다. 구하는 방식 같은경우는 Roll, Pitch와 마찬가지로 이미 알려진 블록선도를 이용하여 Kd 값을 구해서 Rlocus를 그려서 그것으로 기준을 구하고 실험을 통해서 이득값을 구했다.그렇게 구한 기준 값이 0.0385 (N-m/(rad/s)) 인데 후에 실험을 해서 0.045(N-m/(rad/s)) 로 정했다. 이득을 구하기 위한 실험 실험같은 경우는 Roll, Pitch와 다르..

SSM/쿼드콥터 2016.03.08

[쿼드콥터] Gain (이득) 에 관해서 (Roll, Pitch)

이득의 특징 제어를 하면서 가장 중요한 것이 어찌보면 이득을 설정해 주는 것이다. 이득이 적당하지않고 너무 크거나 작아져 버린다면 우리가 원하는 동작이 이루어지지 않고 예상과 다르게 동작할 수 있을 것이다. 이러한 이득의 특징 중 하나는 이득은 무차원의 값이 아니라는 것이다. 즉 이득에도 단위가 존재한다는 것이다. 이것이 어찌 보면 매우 중요한 특징이라고 할 수 있다. 나 같은 경우에는 처음 이득이 무차원값이라고 잘못 생각해서 계산이 흐름이 이어지지 않아서 고생을 많이 했다. 하지만 이득 자체에도 단위가 있기 때문에 각도의 오차에서 이득을 곱하는 것 만으로도 각속도가 나오는 것이 그렇다면 이 이득 같은 경우를 어떻게 구하느냐?? 그것이 어찌보면 가장 큰 문제일 수 있다. 원래 이론대로면 전체적인 블록 함..

SSM/쿼드콥터 2016.01.14

[쿼드콥터] PID 제어

쿼드콥터의 PID 제어기 지금까지 누누히 말했던 제어기 부분에 대해서 설명을 하겠다. 쿼드콥터를 만들면서 쓴 제어기는 PID 제어인데 PID 제어기는 SISO(single input single output) 시스템이다. 하지만 쿼드콥터는 제어해야할 것은 Roll, Pitch,Yaw 의 각도로 3개다. 그러다 보니 어떻게 보면 제어해야할 대상이 3개인 것이다. 그러기에 3개의 제어기가 필요하다. 내가 만든 쿼드콥터에서는 Roll 축과 Pitch 축은 PID 제어 Yaw 축은 P 제어기만 사용하여서 제어를 하였다. 그 이유는 우리의 쿼드콥터가 지자기 센서가 없는 ARS 시스템이기 때문이다. (지자기 센서가 없기 때문에 Yaw 축에 대해서 각도에 기준이 될 값이 없다) PID 제어기 구현 방법 이론적으로 P..

SSM/쿼드콥터 2016.01.13

[쿼드콥터] 추력상수를 구하기 위한 실험

추력상수는 무엇이고 왜 구해야 하는가??? 일단 추력이란 무엇인가?? 추력을 쉽게 아래의 그림으로 설명하자면 모터에 프로펠러를 달고 회전을 시키면 모터의 평행방향을 생기는 힘이 추력이다. 추력상수는 임의로 붙인 이름의 상수이다. 이 상수를 왜 구해야 하는지는 저번 글에서 살짝 소개했는데 다시 한번 설명하자면 사실상 우리의 계산의 흐름에서 어찌보면 최종적으로 나오는 값은 각 모터의 추력값이다. 그런데 각 모터를 얼마나 회전시켜야지 얼만큼의 추력이 나오는지 어떻게 알까?? 실험을 통해서 모터의 회전을 -> 추력으로 바꿔주는 추력상수라는걸 구할 것이다. 실험에 앞서서 기본적인 값 쿼드콥터의 기본 무게는 : 1170g 모터는 :RCTimer A2212 1000kV 프로펠러 사이즈 : 10 x 4.5실험 설명 이..

SSM/쿼드콥터 2016.01.08

[쿼드콥터] 쿼드콥터 입력에서 출력까지의 흐름

입력에서 출력까지의 계산의 흐름 원래 전체적인 제어기를 구현할때 가장 중요한 것이 아마도 입력이 무엇이며 출력이 무엇인가가 매우 중요하다. 왜냐하면 어떤 물리량을 제어할지 알아야 구현을 할 수 있기 때문이다. 그렇기에 우리가 주는 입력값에 대해서 어떻게 계산이 이루어져서 출력값까지 가는지 알아야 한다. 이 부분이 나도 쿼드콥터를 만들면서도 가장 이해가 안되고 힘들었던 부분이기 때문이 설명을 잘 못할 수 있다는 점 미리 양해를 구하겠다. 보통 저 흐름데로 제어기가 돌아가는데 이 흐름을 따라서 설명을 하겠다. 하지만 나같은 경우는 사실상 실제로 코드를 짜다 보면 느끼는 흐름의 방식은 아래의 그림 같다는 것을 느낄 수 있었다. 어 근데 위 그림을 보면 쿼드콥터는 피드벡 시스템인데 왜 센서가 흐름에서 독립적으로..

SSM/쿼드콥터 2016.01.06

[쿼드콥터] 상보필터 사용

필터의 필요성 우리가 쿼드콥터의 자세유지를 위해 필요한 것은 각속도도 아니고 가속도도 아닌 각도(오일러각)가 필요하다. 그렇다면 각도를 어떻게 구해야할까?? 그것은 센서끼리 융합을 하여서 얻어오는 것인데 두가지 방식이 있다. 바로 아래와 같다.ARS(Attitude Reference System) : 자이로 가속도 센서를 이용한 롤. 피치각 추정하는 시스템AHRS(Attitude Heading Reference System) : 자이로 가속도 자기컴파스 센서를 이용하여서 롤, 피치, 요각을 추정하는 시스템 나는 여기서 ARS 를 이용하였고 자이로 가속도값으로 각도를 구하였다. 그럼 어떻게 자이로 가속도값으로 각도를 알 수 있을까?? 그 이유는 자이로, 가속도 센서는 각도에 대한 정보를 간접적으로 가지고 ..

SSM/쿼드콥터 2015.11.21

[쿼드콥터] SPI 통신 < MPU6050 -> MPU6000 >

MPU6050 / MPU6000 에 대하여 mpu6050은 6축 자이로 가속도 센서이다. 6축이라는건 3축 자이로와 3축 가속도 센서가 합쳐진 것인다. 그렇다면 이 자이로 가속도 센서라는게 어떤값을 출력하는지 알아야지 사용하지 않겠는가?? 그래서 어떤값을 출력하는지 보자면 아래와 같다. 3축 자이로 센서 - 각 축에 대한 회전 각가속도 값3축 가속도 센서 - 각 축에 대한 가속도 값 + 중력 가속도 값 (아래의 4.데이터 수신 및 변환 꼭 볼것!) 그래서 자이로 가속도 센서를 이용하여서 궁극적으로 각도를 추정할 수 있게 됩니다. 이 추정하는 과정에서 상보필터 혹은 칼만필터를 사용하기도 하는데 이 부분은 복잡하므로 다음으로 설명을 미루겠다. 하여튼 이 자이로 가속도 센서의 값을 받아오는 통신 같은 경우는 ..

SSM/쿼드콥터 2015.11.20
728x90