밸런스로봇의 핵심은 자세를 스스로 잡기위해 센서의 sampling이 중요합니다. Kalman filter를 사용하여 자이로센서를 이용하여 각도를 추정하고 가속도 센서를 통해 정확한 값으로 update 을 합니다.
밸런스 로봇은 움직이면서 높은 튑 형상이 발생하기 때문에 센서에 내장된 Low Pass Filter 이용하여 필터링 하게 됨니다.
spec
Compiler : AVR GCC
MCU : atmega128
Sensor : MPU6050
Filter : kalman filter, Low pass filter
Control : PID
Motor driver : lm298
DCmoter : 13W 4kg-cm 100rpm
Battery : lithium ion 2600mA x 3 = 12.6v
ETC : Bluetooth 2.1
Sensor Data
그래프는 0, 90를 빠르게 움직였을때의 그래프 입니다. 파랑색은 가속도 센서, 빨강색은 칼만필터 입니다. (모델링되지 않은 손으로 흔들었을때 데이터 입니다. )
로봇이 자세를 잡는 과정의 그래프 입니다. 0도를 유지하며 자세를 잡도록 되어 있습니다.
기어모터에서 백레쉬로 발생되는 충격이 데이터로 나타남니다. 4분에 1지점에는 모터를 끄고 손으로 잡고 있습니다.
Atmera128 IO 계획, Atmera8 에서 test 동작 확인
로봇 동작 테스트
로봇 케이스 제작 과정
PID Control
바퀴를 손으로 잡았을때 비례적으로 Duty의 변화를 체크 하는 모습니다.
모터의 속도를 유지하기 위해 전류량을 조절하게 됨니다.
Communication
Robot[UART <-> Buletooth] <--> Android
200Hz 의 Sample Rate 로 스마트폰과 통신.
아래의 영상은 로봇이 넘어 졌을때 다시 일어나는 장면.
실시간으로 로봇과 빠르게 통신 하는 모습을 확인 하실 수 있습니다. 신뢰 데이터를 위해 Check bit 를 검출 합니다.
Out door 1
Out door 2
'취미 > Fusion' 카테고리의 다른 글
3D Laser Scanner 개발 (5) | 2016.09.21 |
---|---|
Nao and DARwin (0) | 2016.07.06 |
블루투스멀티탭 제작. (24) | 2016.05.23 |
korea portfolio day - 와인병 연주기 (0) | 2016.05.18 |