brunch

You can make anything
by writing

C.S.Lewis

by Matthew Min 민연기 Jun 04. 2017

수신기의 신호 전달 속도를 느낄 수 있을까?

FLIGHT LOG

조종기에서 전달된 명령이 라디오 전파로 멀티콥터에 수신기에 전달되고 그 수신기는 전파를 정보신호로 FC로 보내줍니다. 조종기에서 명령을 전파로 바꾸는데도 얼마간 계산을 하느라 시간이 걸리겠지만 전파는 빛에 속도로 움직이니 무시할 수 있습니다. 하지만 수신기에서 FC로 전달할 때 얼마나 시간이 지체될까요?

수신기에서 FC로 전달되는 신호 전달 방식(Protocol)은
- PWM
- CPPM
- Spectrum 사의 DSM2와 DSMX
- Futaba 사의 SBUS
- Frsky 사의 SBUS
- Flysky 사의 iBUS
등이 있습니다.


수신기 (RX Module)


그런데 이 전송 방식에 따라서 전파의 정보가 FC 전달되는 과정에서 조금 시간이 지체가 됩니다. 전파 정보를 전기 정보로 전달하는 과정에서 시간이 필요하기 때문이죠. 이 시간 지체를 레이턴시 (Latency)라고 부르는데 각각 조금씩 차이가 납니다.
- PWM : 56 ms
- CPPM : 22 ms
- Spectrum 사의 DSM2 : 22 ms / DSMX :11 ms
- Futaba 사의 SBUS : 7 / 14 ms
- Frsky 사의 SBUS : 9 /18 ms
- Flysky 사의 iBUS : 7.5 ms
단위가 ms (millisecond), 그러니까 천분의 1초로 이런 시간을 느끼는 게 가능한가 싶은 수준의 시간입니다. 이렇게 시간이 걸리는 데는 이유가 있습니다. 예를 들어 CPPM의 경우 한 개 정보를 1~2ms로 전송하는데 8채널의 정보를 보낸다면 16ms의 시간이 필요합니다. 다음 신호까지 얼마간의 간격을 생각하면 22ms 정도의 시간이 걸리는 것이죠.

사실 저는 얼마 전까지 그런 수초의 시간 차이가 비행에 얼마나 영향을 미칠까 하는 생각에 PWM을 계속 사용하고 있었습니다.

PWM은 채널의 숫자만큼 전선을 따로 연결하는 방식입니다. from http://smadja.co/naze32-receivers/

지금도 많이 사용되는 SBUS 방식과 47 ms 정도의 차이가 발생하는데 제 감각이 그걸 느낄 리 없다고 생각해서였습니다. 비행도 즐거웠습니다. 플립(Flip) 같은 프리스타일 비행 기술은 좀처럼 늘지 않았지만 그런 건 실력 탓이니까요.

그러다가 겨울 비행을 위해 시작한 Eachine 사의 QX90은 작은 기체의 민첩함에 반하지 않을 수 없었습니다. 그런데 이상하게도 QX90 비행 후에 바로 레이싱 드론을 날리면 묘하게 비행 감각이 달라지는 것을 느꼈습니다.

QX90의 수신기는 FC와 3개의 전선으로 연결되어있습니다. SBUS 전송 방식을 사용합니다



혹시 47 ms의 시간을 그러니까 0.047초의 차이를 내가 느끼는 것일까 궁금해서 SBUS를 지원하는 Frsky 사의 X4R-II를 구매했습니다.

[로고가 바뀐 줄도 모르고 아 내가 또 짝퉁을 주문한 거구나 했습니다.]


X4R-II 수신기로 바꾼 레이싱 드론은 QX90과 비슷한 비행 감각을 가집니다. 왜 이런 거지 한참을 일도 하고 책도 밥도 먹고 놀러 가기도 하고 고민하다가 3-point averaging (3값의 평균값을 사용하는 방법)이란 방법을 사용하고 있다는 것을 뒤늦게 알게 됩니다.

이 방법은 3번 신호를 받아서 그 평균 값을 FC의 보내는 방식으로 PWM의 56ms는 사실 그것의 3배인 168ms, 0.168초의 차이가 나고 있었던 것이죠. 이쯤 되면 작은 시간이 아닙니다. 레이싱 드론이 100km/h로 즉 27.8m/s의 속도로 날아간다면 168ms는 4.67m를 그냥 지나쳐 버리는 시간입니다.

왜 이런 방식이 사용되어야 하는지에 Betaflight의 Boris B는 아밍 신호 (Arming) 같이 중요한 신호에 오차라도 발생하면 큰 문제이기 때문에 사용하는 편을 선택했다고 합니다.

이 문제에 대해 그도 오랫동안 고민을 했던 것 같습니다. 이 평균 계산방식을 변경하는 옵션도 마련해 둔 것을 보면 말이죠. (시험을 위해 만든 옵션인데 지금도 되는지는 모르겠습니다.)
set ppm_pwm_samples = [amount of averaging samples 1-5 (default 2)]
set rc_smoothing = [0=disable 1=enable (default 1)]

이제 미련하게 PWM을 사용했던 내 한심한 비행에 발전의 실마리를 발견했지만 어딘지 궁금한 점도 생깁니다. CLI에 명령어가 ppm_pwm 이면 혹시 이 아날로그 전송 방식만 이 3-point averaging을 사용하는 걸까요? 그렇지 않다면 SBUS도 9 ms의 세배인 27ms의 레이턴시를 가지게 되는 걸까요?


Oscarliang의 설명에 따르면 SBUS도 3-point averaging의 굴레 안에 있다고 합니다. 설마 제가 27ms 그러니까 0.027초를 감지하지는 않겠죠?              



더 많은 드론 이야기를 만나보세요 : FPV미니드론

http://book.naver.com/bookdb/book_detail.php?bid=13584005


작가의 이전글 드론의 센서 : 가속도센서
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari