자이로 스코프에서 입력을 받아 균형 잡힌 로봇을 안정적으로 똑바로 세울 수 있도록 두 개의 독립 휠을 제어하는 데 사용할 수있는 우수하고 인기 있고 신뢰할 수있는 알고리즘이 있습니까? 로봇을 움직이고 움직이지 않을 때 똑바로 유지할 수있는 알고리즘을 찾고 있습니다. 경사와 그것을 방해 하는 사람들을 다룰 수있는 능력 은 보너스 일 것이지만 필수는 아닙니다.
자이로 스코프에서 입력을 받아 균형 잡힌 로봇을 안정적으로 똑바로 세울 수 있도록 두 개의 독립 휠을 제어하는 데 사용할 수있는 우수하고 인기 있고 신뢰할 수있는 알고리즘이 있습니까? 로봇을 움직이고 움직이지 않을 때 똑바로 유지할 수있는 알고리즘을 찾고 있습니다. 경사와 그것을 방해 하는 사람들을 다룰 수있는 능력 은 보너스 일 것이지만 필수는 아닙니다.
답변:
가장 간단한 컨트롤러는 선형 상태 피드백 컨트롤러입니다. 본질적으로 이득이 필요한 4 가지 상태가 있습니다. 틸트 각도, 틸트 속도, 속도 및 위치입니다.
LQR (선형 2 차 조정기)은 이러한 이득을 설계하는 방법입니다 (시스템의 선형화 된 상태 공간 표현을 얻은 후). 상태 공간 표현이없는 경우 (아마도 없을 수도 있음) 모션 방정식을 구하고 매개 변수를 측정 할 수 있습니다. 상태 공간 표현이없는 경우 LQR 또는 극 배치 와 같은 다른 방법없이 게인을 수동으로 조정해야합니다 .
틸트 각도, 위치 / 속도 및 휠 토크가 모두 정방향 (긍정) 인 경우, 틸트 각도 및 틸트 속도에 긍정적 인 이득뿐만 아니라 위치 및 속도에 긍정적 인 이득을 원합니다.
기울기 각도와 기울기 속도로 시작합니다. 이것은 처음에 균형을 잡을 것입니다. 균형이 유지되면 게인을 추가하여 위치와 속도를 제어 할 수 있습니다. 불안정한 경우 기울기 속도의 게인을 높이십시오 (시스템을 감쇠시키는 데 도움이 됨).
위치 / 속도 제어는 두 상태를 모두 0으로 제어합니다. 다른 값으로 제어하려면 컨트롤러에 공급하기 전에 상태를 오류로 바꾸어 참조 추적 컨트롤러가 필요합니다 (예 : 현재 속도-속도 참조).
요 제어는 독립적으로 수행 할 수 있습니다 (메인 밸런스 / 속도 / 포지션 컨트롤러에 추가 된 휠 토크 차이).
이 문제에 대한 가장 보편적 인 해결책은 LQR 컨트롤러 라고 생각합니다 . 해결하려는 문제는 반전 된 진자 문제 입니다. 이러한 키워드를 사용하면 누군가의 공개 소스 코드를 Google에 제공 할 수 있어야합니다. 다음 문제는 대부분의 관련 물리량을 어플리케이션 (무게, 모터 토크 등)에 매핑하는 것입니다.
제어 공학 / 이론에 대한 기술을 모르기 때문에 PID 컨트롤러 부터 시작하는 것이 좋습니다 . 간단한 컨트롤러이며 많은 코드 구현을 찾을 수 있습니다. PID의 단점은 매개 변수를 수동으로 조정하는 데 약간의 시간이 소요될 수 있다는 것입니다.
몇 년 전,이 기술을 사용하여 주행 거리계를 기반으로 한 2 륜 레고 마인드 스톰 로봇을 제어했으며 충분히 잘 작동했습니다. 움직이려면 설정 점을 가지고 놀아야합니다.
물론 나중에 언급 한 LQR과 같은 고급 제어법을 사용하여 컨트롤러의 품질 (안정성, 견고성 등)을 향상시킬 수 있습니다.
행운을 빕니다!