IT박스

자이로 스코프와 가속도계 데이터 결합

itboxs 2020. 11. 9. 07:56
반응형

자이로 스코프와 가속도계 데이터 결합


저는 Lego Mindstorm의 NXT 시스템을 사용하여 밸런싱 로봇을 만들고 있습니다. 저는 HiTechnic의 두 개의 센서를 사용하고 있는데, 첫 번째는 가속도계이고 두 번째는 자이로 스코프입니다. 저는 -90도에서 90도 사이의 범위에서 두 센서와 파생 각도 모두에서 노이즈를 성공적으로 걸러 냈으며 0 도는 완벽하게 균형을 이루었습니다.

다음 과제는 두 센서 값을 결합하여 시간 경과에 따른 자이로 스코프의 드리프트를 수정하는 것입니다. 아래는 자이로 스코프의 드리프트를 보여주기 위해 실제 데이터에서 만든 예제 그래프입니다.

여기에 이미지 설명 입력

이러한 센서를 견고하게 결합하기 위해 내가 본 가장 일반적으로 사용되는 접근 방식은 Kalman 필터를 사용하는 것입니다. 그러나 저는 미적분학의 전문가가 아니며 수학적 기호를 정말로 이해하지 못합니다.하지만 소스 코드에서 수학을 이해합니다.

나는 (다른 C 파생물과 같은) RobotC를 사용하고 있으며 누군가가 C에서 이것을 수행하는 방법에 대한 예제를 줄 수 있다면 정말 감사하겠습니다.

도와 주셔서 감사합니다!

솔루션 결과 :

좋습니다. kersny는 보완 필터를 소개하여 문제를 해결했습니다. 이것은 내 결과를 보여주는 그래프입니다.

결과 # 1

여기에 이미지 설명 입력

결과 # 2

여기에 이미지 설명 입력

보시다시피 필터는 자이로 스코프 드리프트를 수정하고 두 신호를 하나의 부드러운 신호로 결합합니다.

편집 : 어쨌든 깨진 이미지를 수정했기 때문에이 데이터를 생성하는 데 사용한 리그를 보여주는 것이 재미있을 것이라고 생각했습니다.

여기에 이미지 설명 입력


Kalman 필터는 훌륭하지만 유사한 결과로 보완 필터를 구현하는 것이 훨씬 더 쉽다는 것을 알았습니다. 보완 필터를 코딩하기 위해 찾은 최고의 기사는 이 위키 ( 센서를 엔지니어링 단위로 변환하는 것에 대한 이 기사 와 함께 ) 와이 페이지 의 zip 파일에있는 PDF입니다 (기술 문서에서 파일 이름은 zip에 있다고 생각합니다. filter.pdf입니다);

추신. 당신의 칼만 필터에 붙어있는 경우, 여기 아두 이노 그 구현이 일부 C 구문 코드입니다.


Gamasutra.comWiiMote 필터링을위한 Kalman 필터 사용에 대한 기사를 게재했습니다 .

기사의 끝 부분에 C ++ 소스 코드에 대한 링크가 있습니다.

참고 URL : https://stackoverflow.com/questions/1586658/combine-gyroscope-and-accelerometer-data

반응형