728x90
imu 값을 읽고,
평균 필터, 평균 이동 필터, 저주파 통과필터, 칼만 필터 등을 구현해보려고 한다.
일단 자이로 값읽기부터 시작하자
ref : https://drive.google.com/drive/folders/1eqOTXW9zvW9imjzFespbRbo_PR1FKDyO
잠깐 위 문서를 보면
스크린은 필요없으니 Zumi와 time만 임포트하자
ref : http://docs.robolink.com/zumi-library
를 참고하니 update_angles()에서
자이로와 가속도계 값을 전달해준다고 한다.
** 주의사항
윈도우 vscode에서는 윈도우 환경의 파이썬 인터프리터를 사용하므로
주미 라이브러리를 설치하지 않는 이상 사용불가
코딩은 vscode로 하더라도 실행은 푸티나 vnc에서 할것
위 코드를 참고해서 대충 출력해보면
from zumi.zumi import Zumi
zumi = Zumi()
vals = zumi.update_angles()
print(vals)
50번 출력하기
from zumi.zumi import Zumi
import time
zumi = Zumi()
for i in range(0, 50):
vals = zumi.update_angles()
gyroX = " gyro x : " +str(vals[0])
gyroY = ", gyro Y : " +str(vals[1])
gyroZ = ", gyro Z : " +str(vals[2])
accX = "\n accX : " + str(vals[3])
accY = ", accY : " + str(vals[4])
msg = gyroX + gyroY + gyroZ + accX + accY
print(msg)
time.sleep(0.1)
print("Done")
소수점이 너무 길므로 round 줘서 출력
from zumi.zumi import Zumi
import time
zumi = Zumi()
for i in range(0, 50):
vals = zumi.update_angles()
gyroX = " gyroX : " +str(round(vals[0],4))
gyroY = ", gyroY : " +str(round(vals[1],4))
gyroZ = ", gyroZ : " +str(round(vals[2],4))
accX = "\n accX : " + str(round(vals[3],4))
accY = ", accY : " + str(round(vals[4],4))
msg = gyroX + gyroY + gyroZ + accX + accY
print(msg)
time.sleep(0.1)
print("Done")
다음은 plt로 플로팅
300x250
'로봇 > 로봇' 카테고리의 다른 글
zumi - 6. 가속도 데이터 받기 (0) | 2020.08.24 |
---|---|
zumi - 5. x축 각가속도 플로팅 (0) | 2020.08.24 |
zumi - 3. 주미 samba 설치 (0) | 2020.08.24 |
zumi - 2. 주미 vnc 접속하기 (0) | 2020.08.23 |
zumi - 1. 주미 ssh 접속하기 (0) | 2020.08.23 |