gsensor, 가속도센서의 가속도값으로 이동 위치 구하기

이채윤·2023년 8월 22일
0

임베디드

목록 보기
68/70

소개

  • gsensor에 대해서 :
    • gsensor을 통해서 얻는 data : 가속도값
  • 계산 방식에 대해서 :
    • 출력한 gsensor 값의 단위를 바꾼다. (LSB/g → m/s^2)
      • 계산 공식 : (gsensordata/256)9.81(gsensor data / 256) * 9.81
    • 가속도값을 2번 수치적분 하여 위치값을 얻는다. 얻은 x, y의 위치값을 가지고 “직진, 좌회전, 우회전”을 판단한다. (오차를 줄이기 위하여 사다리꼴로 수치적분 진행)
      • 계산 공식 : 이전속도+0.5(현재가속도+이전가속도)(현재시간이전시간)이전속도+0.5*(현재 가속도 + 이전 가속도)*(현재 시간-이전 시간)



데이터 분석

정지 상태

  • 5분 동안 세트를 가만히 두고 추출한 데이터를 가공한다.

가속도

  • x축 : 시간
  • y축 : 가속도

속도

  • x축 : 시간
  • y축 : 누적 속도

이동 위치

  • x축 : 시간
  • y축 : 누적 이동 위치

정지 상태일 때 이상적인 결과 :

  • x값 : 0 (아무런 가속도가 없을 때)
  • y값 : 0 (아무런 가속도가 없을 때)



직진

가속도

  • x축 : 시간
  • y축 : 가속도

속도

  • x축 : 시간
  • y축 : 누적 속도

이동 위치

  • x축 : 시간
  • y축 : 누적 이동 위치

직진 상태일 때 이상적인 결과 :

  • x값 : 0 (아무런 가속도가 없을 때)
  • y값 : 증가



우회전

가속도

  • x축 : 시간
  • y축 : 가속도

속도

  • x축 : 시간
  • y축 : 누적 속도

이동 위치

  • x축 : 시간
  • y축 : 누적 이동 위치

직진 상태일 때 이상적인 결과 :

  • x값 : 증가
  • y값 : 증가



좌회전

가속도

  • x축 : 시간
  • y축 : 가속도

속도

  • x축 : 시간
  • y축 : 누적 속도

이동 위치

  • x축 : 시간
  • y축 : 누적 이동 위치

직진 상태일 때 이상적인 결과 :

  • x값 : 감소
  • y값 : 증가



결론

  • 정지 상태일 때 x, y값이 감소한다. (x값이 y값보다 더 격하게 줄어들긴 하지만)
    이 부분에 있어서 필터를 적용하여 정지 상태일 때는 x, y값 모두 0에 가깝게 직선 형태를 만들어야 한다.
  • 적합한 필터를 적용하면 시간에 따른 누적 이동 변화량으로 ‘직진, 좌회전, 우회전’을 확인할 수 있을 것이다.





글 작성자가 운영 중인 홈페이지

0개의 댓글