검색하기

밸런싱 로봇

2018-09-21

과거에는 고정된 형태에서 단순반복 작업을 하는 로봇이 주를 이뤘다. 기술이 발전됨에 따라 고정된 로봇에서 조금 더 진화한 이동 가능한 로봇들까지 만들 수 있게 되었다. 로봇이 제작되던 초반에는 안정성을 위해 바퀴가 4개 이상 달린 이동형 로봇이 주를 이뤘다. 하지만 이렇게 만들어진 로봇들은 부피를 많이 차지하고 하드웨어적으로 제어요소가 많았다. 이러한 단점들을 보완해 나온 것이 우리가 잘 알고 있는 2륜 밸런싱 로봇 세그웨이(Segway). 오뚝이처럼 균형 메커니즘을 이용한 세그웨이의 출시로 인해 밸런싱을 기반으로 한 더 나은 형태의 이동로봇에 대한 연구가 계속되고 있다.

 

2륜 밸런싱 로봇은 중심균형을 잘 유지하며 이동할 수 있어야 한다는 것이 핵심이다. 지면과 각도 데이터 추출을 위해 융합된 자이로 센서와 가속도 센서, DC모터와 모터드라이버, PID 제어기법 등을 잘 활용한다면 쉽고 재밌게 나만의 밸런싱 로봇을 자유자재로 구현해볼 수 있을 것이다

 

▲ 라두이노를 이용해 만든 밸런싱 로봇 

 

밸런싱 로봇은 자이로센서를 통해 측정된 값을 바탕으로 DC모터의 방향과 속도를 제어해 균형을 잡는다. 이 자세 제어에 사용되는 알고리즘은 PID(proportional integral derivative control) 제어이다.

P: proportional(비례), I: Integral(적분), D: Differential(미분), 비례와 적분, 미분의 조합을 통해 적절한 값을 도출해 제어에 응용하는 기법이다. PID제어는 응용 분야에서 가장 많이 사용되고 있는 제어기법이고, 간단하고 명료하나 비적응식의 제어기법으로, 실제 산업분야 및 응용분야에서 가장 많이 사용되는 제어기법이라 할 수 있으며, 컨트롤러(Controller)라 불리는 대부분의 장비에서 사용하는 방식이다. 기본적으로 제어하고자 하는 대상의 출력 값을 측정해 설정 값(Set Point)과 비교해 오차를 계산하고, 이 오차 값을 이용해 제어에 필요한 제어 값을 계산하는 방식으로 진행된다. 

 

PID 제어는 비례, 적분, 미분을 모두 사용하기도 하지만 사용 환경에 따라 각각 개별적으로 사용하거나 두 가지만 조합해 사용하는 경우도 있다.


단순 On / Off 제어

단순히 On / Off 제어만 할 경우, 입력 값을 0(0%)과 최대값(100%), 두 가지만 반복하게 된다. 출력 값의 변화가 매우 크고, 시간이 흐른다고 해도 Set Point와 오차는 줄어들지 않는다

 

 

비례 제어 ( Proportional Control )

P 제어라 불리는 비례 제어는 설정 값과 출력 값의 편차에 비례해 연속적으로 변화하는 제어 방식이다. 출력 값이 설정 값에 근접할수록 미세한 제어가 가능하다. 비례 제어는 출력 값과 설정 값의 차이가 적어질수록 서서히 감도가 좋아지면서 규칙적인 사이클이 발생하지만, 외란 또는 잔류 편차로 인해 출력값이 설정값과 정확하게 일치하지 못하는 상태가 지속된다

 


 

 

 

비례 적분 제어 ( Proportional Integral Control )

I 제어라 하는 적분 제어는 정상상태(Steady State)에서 오차를 제거하는 동작을 한다.

비례제어에서 발생하는 잔류 편차를 적분 동작으로 제거해 오차를 줄이기 위한 제어 방법으로, 전류 편차를 누적한 후 출력량을 늘려 오차를 제거하는 방식으로 적분 동작을 이용해 설정값에 빠르게 도달할 수 있다는 장점이 있다.


비례 미분 제어 ( Proportional Differential Control )

비례 제어 과출력 상태에서 생기는 오차를 미분 동작으로 제거하기 위한 제어방법이다. D제어라 불리는 미분 제어는 급격한 출력값의 변동이 필요할 때, 기존 동작의 편차를 파악해서 출력값을 조절해 오차를 줄이고 다시 안정상태로 돌아가는 동작을 한다. 미분 동작을 이용해 지나친 곡선 슛(오버슛) 상태를 줄이고 안정성을 향상시킬 수 있다는 장점이 있다.

 


 

 

비례 적분 미분 제어 ( Proportional Integral Differential Control )

비례 제어를 기본으로 적분 제어와 미분제어를 결합한 최종의 형태이다. P제어에 I제어를 더해 정상 상태에서 오차를 줄여주고, 응답 속도를 높여준다. 하지만 외란으로 인한 오차와 응답속도는 적분 동작으로 제어할 수 없기 때문에 D제어를 추가한다. PID제어는 이러한 방식으로 서로의 단점을 보완하고 장점을 극대화시킬 수 있다.

 


이처럼, PID 제어기법의 특성들을 잘 조절해 중심을 밸런싱 로봇이 중심을 잘 잡고 서 있는 동작을 직접 응용해 구현해보자.

 

▼ 회로도


 

 



 

▶ 밸런싱 로봇 소스 코드 보러가기→ Balancing bot

▶ 밸런싱 로봇 소스 코드 → 다운로드 

▶ 소스 코드 출처  

https://github.com/kurimawxx00/arduino-self-balancing-robot