Quadrotor20132013. 10. 11. 15:30

아두이노에서 게인 값 조절하고 모터틀고 돌리고 출력 데이터 그래프로 그려보는 작업의 반복입니다.. 게인 조절이라는게 사람하나 죽이네요 ㅠ

하다가 손으로 테스트하는건 정확하지 않은거같아서 아예 센서 Raw Data만 뽑아놓고 매트랩으로 구현해서 게인값만 조절해서 테스트하고 있습니다. 같은 데이터를 가지고 게인값만 다르게해서 게인값을 정한 후 윙윙이에 적용시키려구요.. 지금 생각해보니 이게 맞는거 같네요


반복 해보니까 P게인 값을 올리면 하이패스필터가 많이 반영되고 I게인을 올리면 로우패스필터를 많이 반영하는 느낌입니다.


이전 포스팅에서 제가 상보필터는 오차가 누적되서 발산하는 자이로센서값을 가속도센서값에 얼마나 빠르게 근접시키냐에 성능이 달라진다고 했는데요, 맞는 말이지만 제가 사용하는 환경(쿼드콥터)에는 좀 더 다른 접근법이 필요한 것 같습니다.


모터가 작동하면 가속도센서에서 감지되는 진동이 심하니까 P게인을 높혀서 가속도센서를 빠르게 따라가봤자 진동값을 따라가게 되더라구요


그리고 P게인을 낮추면 진동을 덜 따라가지만 실제 기울어진 각도와 차이가 나게 되구요.


그러다 든 생각이 어차피 실제 기울어진 각도가 숫자로 필요한게 아니라 많이 기울어졌냐, 적게기울어졌냐가 필요한거였으니까 P게인을 낮추는게 좋겠다는 생각이 들더라구요.


그리고 최대한 낮추되 발산하지만 않게 하면 노이즈도 줄고 발산도 안하니까 쿼드콥터에 딱 맞지 않겠느냐는 생각입니다.




노란색 : 가속도센서값, 파란색 : 자이로센서값, 빨간색 : 낮은P, 초록색 : 높은P


모터를 작동시킨 상태에서 세번 흔들고 끈 상태에서 한번 흔들었습니다. 실제 쿼드가 30도 이상 기울어지는 경우는 거의 없을테지만 필터 성능 테스트를 위해 좌우 30도 이상씩 흔들어서 데이터를 뽑았습니다.


자이로 오차가 좀 극단적으로 쌓였네요.. 다른 실험에는 저렇게 쌓이진 않던데.. ㅠ


P값이 높은 초록색이 빨간색에 비해 노이즈가 좀 있긴 하지만 적분오차가 엄청 쌓일때는 빨간색에 비해 비교적 정확하네요.


이 두 가지 경우는 직접 돌려봐야 알거 같습니다.. 저렇게 적분오차가 쌓이는일이 자주 일어난다면 초록P값이 더 좋을테고 별로 안일어난다면 빨간P값이 더 좋을테니까요.. 저 그래프는 제가 손으로 많이 기울어지게 만든거라 실제 작동하는 쿼드 각도와는 다릅니다


그래서 실험을 하다가!!


끈을 묶은 책상을 옆으로 안밀어놔서 프롭 날려먹었어요... 기울어지긴 했어도 떠있는 상태에선 예전보다 많이 안정적이게 됬습니다!!!



더 주의해서 실험해야겠습니다.. ㅠ 


저 실험때 나온 데이터를 분석해보니 자이로값이 한쪽으로만 이상하게 계속 누적되더라구요 그 데이터는 한 방향으로 roll회전을 계속하고 있다는 소린데 이해가 안가네요.. 작동 전에 자이로 calibration도 했는데.. 왜그럴까요 ㅠ


조금씩 나아지고 있어서 다행이긴한데.. ㅠ 11월 1일이 작품발표회인데 그때까지 할 수 있을까요 ㅠㅠ


Posted by 너를위한노래

댓글을 달아 주세요

  1. 박대현

    안녕하세요 저도 이번에 콥터를 만들고 있어서 참고자료로 많이 보고 있습니다. 감사합니다.
    한가지 궁금한게 있는데 상보필터 게인값은 어떤 방식으로 설정하셨나요?

    2015.05.27 17:34 [ ADDR : EDIT/ DEL : REPLY ]
  2. 자이로센서의 출력값을 적분하여 각도를 구하는 과정에서 오차가 생기고 계속해서 센서값을 추출하고 적분하면서 그 오차가 누적누적누적되서 저렇게 한쪽으로 드리프트되는 현상이 나타난다고합낟ㅇ..

    2017.01.19 20:40 신고 [ ADDR : EDIT/ DEL : REPLY ]