현실의 내용을 반영해야 하는 로봇이나 피지컬 컴퓨팅의 경우 다양한 센서 부품을 사용하게 된다. 센서는 그 값을 아날로그 또는 디지털로 프로그램에 전달하는데, 이때 센서의 값을 효율적으로 이용함으로써 로봇과 피지컬 컴퓨팅 기기를 효율적으로 작동시킬 수 있다.
이 글에서는 센서의 값을 효율적으로 이용하기 위해 가장 기초적으로 사용한다는 피드백 제어와 PID 제어에 대해서 이야기 하고자 한다.
다이어 그램의 PID는 각각 비율, 적분, 미분을 의미한다. 최초 r(t)라는 값은 지난번 처리된 y(t)와 함께 처리되어 e(t)가 되며 e(t)는 P,I,D세가지 과정을 거쳐 u(t)로 되고 다시 이것이 처리되어 결과인 y(t)가 된다. y(t)는 출력되거나 다음 번들어오는 r(t)의 처리를 위해 활용된다. 즉 r(t)의 값이 센서의 값이라면 이것은 PID의 과정을 거쳐 새로운 값이 되어 모터등의 작동에 반영되고 반영된 값은 다시 들어오는 센서값에 영향을 주게 된다는 의미이다.
이 글에서는 센서의 값을 효율적으로 이용하기 위해 가장 기초적으로 사용한다는 피드백 제어와 PID 제어에 대해서 이야기 하고자 한다.
어디에 쓰이는가.
센서의 값을 움직임에 반영하는 거의 대부분의 기기에 활용된다. 예를 들어 에어컨의 온도조절, 드론의 수평잡기, 먼~ 예로 우주선의 착륙 등에 활용될 수 있다.어떤 제어 과정을 거치는가
위키백과 영문판을 구글링 해보면 PID feedbaack 컨트롤의 블럭 다이어 그램이 제시되어 있다.PID feedback process
|
라인트레이싱에서의 적용
On/Off알고리즘과 P제어
먼저, 라인트레이싱의 예로 P제어를 설명해보고자 한다.
P 제어를 위해 다음과 같은 프로그램이 제시될 수 있다..
A모터와 B모터는 각각 오차의 편차에 의해 속도가 결정된다.
오차가 매우 작으면 두 모터의 속도거의 같으므로 직진에 가깝게 작동한다.
오차가 음수가 되면 B모터의 속도는 증가하고 A모터는 감소한다.
마찬가지로 오차가 양수가 되면 B모터의 속도는 감소하며 A모터의 속도는 증가한다.
현재 이글은 사진자료가 없으며 이 글은 계속 수정될 수 있다.
P는 proportion 비율의 첫 글자이다. 초등학교 로봇교육에서는 대부분 On/Off알고리즘을 활용하여 라인트레이싱을 구현하고 있다. 학생들이 선을 따라 주행하는 로봇을 만들기 위해 가장 기초가 되는 로봇이다. On/Off알고리즘은 검은색과 흰색의 경계값을 결정하고 센서의 값을 경계값과의 대소비교한 후 왼쪽 바퀴나 오른쪽 바퀴를 굴려 작동된다. (고등학교 로봇제어시스템에서는 경계값이라는 용어대신 문턱값이라는 용어를 사용한다.
문턱값은 검정색과 흰색을 구분짓는 센서 값 이라는 의미이다.)이때, On/Off알고리즘에 의하면 직진을 주행하는 행위는 없다. On/Off 알고리즘을 통해 작동하는 주행로봇의 경우 뒤뚱거리는 움직임이 나타나는 것이 특징이다.
P제어의 적용
반면 P제어를 도입한다면 뒤뚱거리는 움직임을 조금이나마 줄일 수 있게 된다. P제어는 이름에서 나타나듯이 비율을 사용한다. 모터 속도의 비율을 제어할때, 센서의 값과 경계값(문턱값) 의 오차를 이용한다.
P 제어를 위해 다음과 같은 프로그램이 제시될 수 있다..
1. 경계값 설정
2. P상수 설정
3. A,B모터의 속도 설정
4. 루프
loop(){
error = 경계값과 센서와의 차
loop(){
error = 경계값과 센서와의 차
A모터의 속도 + error * P상수
B모터의 속도 - error * P상수
}
A모터와 B모터는 각각 오차의 편차에 의해 속도가 결정된다.
오차가 매우 작으면 두 모터의 속도거의 같으므로 직진에 가깝게 작동한다.
오차가 음수가 되면 B모터의 속도는 증가하고 A모터는 감소한다.
마찬가지로 오차가 양수가 되면 B모터의 속도는 감소하며 A모터의 속도는 증가한다.
현재 이글은 사진자료가 없으며 이 글은 계속 수정될 수 있다.
참고글
https://kocoafab.cc/make/view/418
https://en.wikipedia.org/wiki/PID_controller
고등학교 로봇제어시스템 핸즈온러닝
댓글
댓글 쓰기