검색결과 리스트
글
예전에
을 다시 소개했었습니다. 그런데 방문하신 몇몇 분들께서 C-code로 다시 표현해달라는 이야기를 하셨는데요. 사실 포스팅을 해야겠다고 생각만 하고 미뤄두고 있었네요. 근데 결과를 보시면 정말 간단하다는 사실에 아마 경악을 금치 못하실 겁니다.^^. 일단 다시 그 보정 필터의 개념도를 보도록 하지요.
위에 있네요. 저 그림에 주석을 좀 달고 다시 시작해보겠습니다.
먼저
Temp1
intTemp1
Temp2
FilterAngle
순서로 구하게 됩니다. 그림상에 마지막부분의 FilterAngle은 단지 라디안(radian)을 degree로 표현을 다시 하는 것 뿐입니다. 결국 FilterAngle이라는 변수가 최종값으로 필터의 결과입니다.
위에서 보상신호는 가속도센서에서 출력된 값을 이용해서 구한 각도입니다. 가속도센서의 출력이 아니라 거기서 구한 각도라는 것을 확인해주세요. 가속도센서에서 각도를 구하는 방법은
을 확인해주시구요. 그리고 자이로신호라고 되어있는 부분은 자이로신호를 그대로 넣어둔것이 아니라 자이로 신호에 스케일팩터를 반영
해서 각속도(rad/sec)의 결과입니다. 즉, 보상신호는 가속도센서에서 출력된 각도이고, 자이로신호는 자이로에서 출력된 각속도입니다.
이제 그림의 Temp1을 계산하는 루틴입니다.
Temp1 = (-Pre_AccAngle) + Pre_FilterAngle;
위 코드에서 Pre_AccAngle은 이전의 가속도센서에서 구한 각도입니다. Pre_FilterAngle은 이전의 보정필터의 결과값입니다. 위 그림과 함께 보시면 됩니다.
다음은 intTemp1인데요. 이건 단순히 Temp1을 적분하면 되므로
IntTemp1 = IntTemp1 + (Temp1 * Ts);
위와같이 구현하면 끝입니다. 여기서 Ts는 sampling time으로 설정하고 계신 값을 그대로 사용해주면 됩니다. 혹시나 하고 이야기하는 거지만, 프로세서에서 구현하시는 분들은 타이머인터럽트를 사용하셔서 일정시간마다 계산하도록 하셔야합니다.
이제 Temp2인데요. 위 그림에서 보시다시피 Temp2는 Temp1에 Kp를 곱하고 intTemp1에 Ki를 곱하고, 그러고 난 다음 자이로의 출력각속도와 더해주어야합니다.
Temp2 = (-Kp * Temp1) + (-Ki * IntTemp1) + GyroAngularVel;
이렇게 되지요. GyroAngularVel이 자이로의 출력값입니다.
마지막으로 Temp2를 적분해서 FilterAngle을 구해야겠네요.
FilterAngle = FilterAngle + (Temp2 * Ts);
위에 제시된 딱 4줄이 보정필터 전부입니다.^^. 이렇게 간단해서 제가 포스팅을 잘 못하고 있었습니다. 쓸말이 없어서 말이지요^^. 하지만, 제어블럭도를 잘 모르시는 경우 위 블럭만으로는 코드를 작성하는데 어려움이 있을거라는 생각이 들어서 이렇게 포스팅을 합니다.
| NT-ARSv1 (각도 측정, 자이로 센서 가속도 센서 이용, ARS, IMU) |
자이로 센서와 가속도 센서를 이용한 각도 측정의 어려움을 해결할 수 있는 ARS모듈로 낮은 가격과 작은 크기를 가지며, 금속 케이스가 있어 활용도가 높음. NT-ARSv1 : 관련페이지
'The Robot > HardwarePart' 카테고리의 다른 글
| 드디어 공들인 제품이 나옵니다. G.INS - ARS (관성항법장치) (33) | 2011/04/08 |
|---|---|
| 1차 상보필터(complementary filter)의 한계 (6) | 2010/12/13 |
| 자이로센서와 가속도센서를 이용한 각도추정 1차필터 (36) | 2010/07/03 |
| 자이로와 가속도센서를 이용한 각도추정 필터를 C로 구현하기 (118) | 2010/02/10 |
| 최소자승법을 이용한 각도추정 보정필터의 설계 (60) | 2010/01/01 |
| 자이로센서의 보정용으로서 가속도센서와 기울기센서의 성능비교 (0) | 2009/08/02 |
| 기울기센서 SA1 테스트 (8) | 2009/07/28 |
| 자이로 센서 Identification 선형특성 파악 (0) | 2009/07/23 |
설정
트랙백
-
가속도, 자이로 센서 보정 문제.
Trackback from Heineken Dark.
2010/07/27 18:18
[ DELETE ]
연구실을 이사하고 새로운 환경에서 테스트 하던 중 발견한 문제점 입니다. 자이로, 가속도 센서의 AD값들을 그대로 PC로 전송하여 MATLAB에서 필터링 하면 보시다시피 빨간 그래프가 잘 따라 갑니다. 하지만, DSP(2812)내에서 필터링을 수행하면 대략 2초 정도의 딜레이가 발생하네요.. 모두 같은 측정치를 가지고 실험한 것입니다. 필터링 된 결과가 산출되었을 때마다 자이로 측정값, 가속도 측정값, DSP내에서 필터링 된 각도 값, 엔코더 값을..
-
드디어 공들인 제품이 나옵니다. G.INS - ARS (관성항법장치)
Trackback from PinkWink's Blog
2011/04/08 13:27
[ DELETE ]
2011년 1월 17일... 이 날짜는 오랜기간 학교에서만 생활하던 제가 처음으로 입사한 날입니다. [관련글] 입사후 야심차게^^ ARS 모듈을 개발하고있었는데, 딱 2주쯤 후 설날연휴에 날짜도 깔끔하게 2011년 2월 1일에 오른쪽 다리가 그만 똑 하고 부러졌었죠...ㅠㅠ[관련글] 그럼에도불구하고, 설연휴를 꼬박 병원에 있고도 4일을 더 까먹고, 다시 출근을 감행한것이 2월11일이었습니다. 그리고, 회사 연구소의 많은 동료들과 함께 다시 개발에..