축구 로봇 용 스핀 컨트롤러를 작성하는 올바른 방법은 무엇입니까?


14

3 륜 축구 로봇을 프로그래밍한다고 상상해보십시오. 회전에 어떤 종류의 컨트롤러를 사용 하시겠습니까? 피? PID?

이 컨트롤러의 목표는 로봇을 정해진 각도 (0도)로 세우고 손이나 다른 로봇으로 회전하면 되돌려 야한다는 것입니다.

서보가 아닌 로봇에 스테퍼 모터를 사용하므로 소프트웨어에서이를 구현해야합니다!

샘플 P 타입 컨트롤러를 이미 작성했으며 움직임이 상당히 좋습니다. 그러나 가능하면 더 좋게 만들고 싶습니다. 코드는 다음과 같습니다.

void spinSpeed(int devidedValue, int addedValue, int correction) {

    if(degree<correction && degree>-correction) {
        motorSpeed = 0;
    } else {
        if(degree > 0) {
            motorSpeed = ((degree)/(devidedValue) + (addedValue));
        } else {
            motorSpeed = ((degree)/(devidedValue) - (addedValue));  
        }
    }
}

correction로봇이 움직이지 않는 범위입니다. degree나침반에서 반환되는 -127에서 128 사이의 숫자입니다. motorSpeed는 PWM에 적용되는 0에서 255 사이의 숫자입니다.


아마도이 루틴은 compas가 degree?에 대한 새 값을 생성 할 때마다 실행됩니다 .
Mark Booth

@MarkBooth 코드가 잠시 동안 (1) 있으므로 모든주기마다 나침반에서 값을 가져 와서 함수에 적용 한 다음 결과를 모터에 적용합니다.
Miro Markaravanes

소프트웨어에서 서보 동작을 복제하려고하기 때문에 서보가 사용하는 컨트롤러 종류를 조사했습니다.
Chris Laplante

서보를 사용하지 않습니다. 스텝 모터를 사용하므로 모터에 이미 그런 동작이 없습니다.
Miro Markaravanes

2
Hi Miro, 스택 교환시 주석의 질문에 대한 응답으로 질문을 편집하는 것이 좋습니다. 이렇게하면 주석 자체가 문제를 일으키지 않도록 주석을 정리 (삭제) 할 수 있습니다.
마크 부스

답변:


7

PID 제어 루프 에 대해 기억해야 할 중요한 점 은 각 용어가 이동 중 다른 시간에 제어를 지배한다는 것입니다.

비례항은 목표 위치에서 멀어 질수록 더 큰 토크 (또는 귀하의 경우 속도)를 제공하기위한 것입니다.

미분 용어는 일반적인 사다리꼴 이동의 '크루즈'단계에서 우세합니다. 목적지에서 멀었을 때 매우 높은 비례 기간을 제어하고 런 어웨이 가속을 제한하는 데 도움이되지만, 목적지에 가까워 질 때 목적지에 수렴하는 속도를 높이고 비례 기간이 훨씬 적게 기여할 수 있습니다 .

토크 컨트롤러 대신 속도 컨트롤러를 사용하는 경우 미분 항은 실제로 속도 컨트롤러 안에 숨겨져 PID 루프에 직접 액세스 할 수 없습니다. 이것은 제어를 더 간단하게 만들 수 있습니다 (일반적으로 원하는 속도 또는 최대 속도 중 더 빠른 속도로 더 빨리 가속 할 것입니다).하지만 예측하기가 어렵습니다. 지나치게 공격적인 D (또는 P) 용어는 종종 한계주기 (종종 주기 가 훨씬 정확한 설명 임에도 불구하고이 상태에서 윙윙 거리거나 심지어 비명을 지르는 모터 소리로 인해 종종 공명 또는 진동 이라고 잘못 불림 ).

적분 항은 잔류 정상 상태 오차 를 수정하기 위해 있습니다 . 즉, 이동 요청과 실제 위치 사이에 지속적이고 장기적인 차이가 있습니다. 현재 correction(실제로 공차) 값은 적분 항의 반대처럼 작동 하며 원하는 위치 주변의 불감 대 내에있을 때 모터를 완전히 차단합니다 .

이러한 요소들로 인해, 가속, 순항 및 감속 단계가 뚜렷한 속도 프로파일을 계획하지 않는 한 전체 PID 루프를 구현하면 별다른 이점이 없습니다.

또한 불감 대와 용어의 부족은 최종 위치가 항상 임의적이며 원하는 위치에 도달하는 방향에 따라 다를 수 있음을 명심하십시오. 따라서 양방향 반복성은 표준 반복성보다 훨씬 나쁠 수 있습니다.

정확성, 반복성 및 해상도의 차이에 대한 자세한 내용은 이 우수한 설명을 참조하십시오 . 귀하의 경우 해상도는 나침반 센서이며, 정확도, 반복성은 두 correction값 모두에 의해 제한 될 가능성이 높습니다 . correction값이 나침반 해상도보다 크면 위치 정확도의 일부를 버릴 수 있기 때문에 가까이있을 때는 모터를 끄십시오.


8

PID 컨트롤러가 가장 좋을 것입니다. 나침반을 사용하면 로봇 베어링을 가져 와서 원하는 베어링과 비교하고 일부를 사용하는 비교적 간단한 작업입니다 PID 튜닝 기술 을 부드러운 회전 운동을 원하는 제목. 이 방법은 주어진 양만큼 정확하게 회전하는 데에도 적용 할 수 있습니다.

나는 이미이 분야에서 몇 가지 로봇 공학을 해왔는데, 이것이 우리가 로봇에서 사용했던 것입니다.


1
답변 주셔서 감사합니다. 나는 대답을 받아들이고 싶었지만 더 많은 답을보고 싶다. 그래서 더 많은 답이있을 때 받아 들일 것이다;)
Miro Markaravanes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.