Dec 06, 2018 메시지를 남겨주세요

로봇을 다루기위한 모터 제어 시스템 설계

2 시스템 소프트웨어 설계

2.1μC / OS-II 아키텍처

μC / OS-II는 높은 실행 효율성, 작은 풋 프린트, 우수한 실시간 성능 및 확장 성을 갖춘 휴대형 이식 형 ROM이며, croppable, 선점 형 실시간 멀티 태스킹 운영 체제 커널입니다. 기능상 가장 작은 커널은 2KB로 컴파일 될 수 있습니다. μC / OS-II는 C 및 어셈블리 언어로 작성됩니다. 대부분의 코드는 C로 작성됩니다. 프로세서와 밀접한 관련이있는 코드 중 일부만 어셈블리 언어로 작성됩니다. μC / OS-II는 태스크 스케줄링, 태스크 관리, 시간 관리, 메모리 관리, 태스크 간 통신 및 동기화와 같은 기본 기능 만 포함합니다.

2.2μC / OS-II 시스템에서의 과제 배정

μC / OS-II 시스템을 STM32F107에 성공적으로 이식 한 후 μC / OS-II 기반 프로그래밍은 대형 애플리케이션을 상대적으로 독립적 인 작업으로 나누어 수행된다. 각 태스크의 우선 순위가 정의되고 μC / OS-II 커널이 이러한 태스크를 스케줄하고 관리합니다.

소프트웨어 설계 아이디어는 로봇의 실제 작동에 따라 스티어링 기어의 모터 속도와 조향 위치를 직렬 포트를 통해 알려주는 것입니다. 모터의 속도는 증 분식 엔코더의 설정 값과 비교되고 폐 루프 제어는 속도 PID 알고리즘에 의해 구현됩니다. 조향 기어의 위치는 주로 절대 값 엔코더가 현재 위치를 피드백하고 스티어링 기어의 속도가 동작 시간 요구 사항에 따라 조정됩니다. 이 핸들링 로봇의 모터 제어 시스템 소프트웨어에 의해 실현되는 기능은 다음과 같습니다.

◆ 상위 시스템은 모터 속도, 조향 각도 및 작동 시간을 제공합니다.

모터 속도와 좋은 정적 및 동적 성능을 지속적으로 조정해야합니다. 속도는 PI 알고리즘에 의해 계산되지 않습니다.

◆ 스티어링 기어가 지정된 각도에 빠르게 도달해야하고, 위치 피드백이 스티어링 기어의 주어진 속도의 조정으로 사용됩니다.

◆ 특정 오류 방지 기능이 있습니다. 모터가 차단되고 전류가 너무 크면 스티어링 기어가 리미트 스위치에 닿으면 드라이브 모듈을 정지해야합니다.

위의 기능을 구현하려면 응용 프로그램 디자인을 다음 작업으로 나눌 수 있습니다.

1 작업을 시작하십시오. 시스템을 초기화하고 초기 모터 상태를 만든 다음 자체를 삭제하고 잠자기 작업을 시작하십시오.

2 모터 및 스티어링 기어 보호 작업. 과전류 또는 리미트 스위치가 활성화되면 외부 인터럽트에 응답하는 데 사용됩니다. 인터럽트 상태가 입력되면 작업 세마포어가 전송됩니다. 작업 프로그램은 세마포어가 유효한지 감지하고 작업에 응답하고 출력을 중단합니다. 작업 우선 순위는 0으로 설정됩니다.

3 호스트 컴퓨터 주어진 작업. 상위 컴퓨터가 모터 및 스티어링 기어를 제어하는 데 사용되며 작업 우선 순위가 1로 설정됩니다. 호스트 컴퓨터 데이터 입력 레지스터가 생성되면 인터럽트가 생성되어 수신 된 바이트를 호스트 컴퓨터의 주어진 태스크의 세마포어를 버퍼하고 해제한다; 세마포어가 탐지되면 작업이 실행을 시작하고 해당 바이트가 실행됩니다. 이 정보는 해당 모터 속도 및 조향 기어 위치 정보로 파싱되어 해당 변수에 값을 할당합니다.

4 모터 속도 제어 작업. 모터의 폐쇄 루프 속도 조절의 경우, 작업 우선 순위는 레벨 2로 설정됩니다.

5 스티어링 기어 제어 작업. 지정된 시간 내에 스티어링 기어가 지정된 위치에 도달하도록 제어하는 데 사용되며 작업 우선 순위는 수준 3으로 설정됩니다.

2.3 작업 시작

주 프로그램에서 μC / OS-II의 다른 작업을 호출하기 전에 시스템 초기화 함수 OSInit ()을 호출하여 μC / OS-II의 모든 변수와 데이터 구조를 초기화하십시오. 동시에 유휴 작업 OS_TaskIdle ()을 설정하면이 작업은 항상 준비 상태가됩니다. 시작 작업을 설정하기 위해 OSTaskCreate () 함수를 호출하십시오. OSStart ()를 호출하고, 제어를 μC / OS-II 커널에 전송하고, 멀티 태스킹을 시작하십시오.

시작 작업은 주 프로그램에서 생성되며 세 가지 주요 기능이 있습니다.

1 (PWM 출력 모듈, 시리얼 포트, ADC 모듈, 입력 레벨 인터럽트 기능, 타이머).

2 시스템에서 사용하는 신호의 양을 설정하십시오.

3 시스템의 다른 작업을 설정합니다.

마지막으로 OSTaskDel (OS_PRIO_SELF)을 호출하여 자체를 삭제하고 잠자기 작업을 시작하십시오. 주요 프로그램 작업 흐름이 그림 4에 나와 있습니다.

2.4 모터 속도 제어 작업

증 분식 엔코더가 외부 인터럽트를 생성 할 때마다 작업 세마포어가 인터럽트 상태로 실행됩니다. 태스크 프로그램은 세마포어가 유효하고 작업에 응답 함을 감지합니다. 이 작업은 현재 모터 속도와 주어진 속도 비교를 측정하여 폐쇄 루프 제어를 구현합니다. 모터 속도 제어 작업 흐름은 그림 5에 나와 있습니다.

2.5 조향 기어 제어 작업

서보 제어는 타이머에 의해 기준 시간을 생성하고 매 정해진 시간마다 세마포어를 전송하며 작업은 한 번 실행됩니다. 서보 제어 태스크는 절대치 인코더로 측정 된 위치와 주어진 위치를 비교하여 남은 시간에 따라 서보의 속도를 조정합니다. 서보 제어 작업 흐름은 그림 6과 같습니다.

3 시스템 전기 기계 인터페이스

로봇의 조향 기어는 DC 모터에 연결된 30 : 1 감속기로 구성됩니다. 절대 위치 인코더는 스티어링 기어에 연결되어 있으며 스티어링 기어의 각도 신호를 드라이브 제어 보드에 보냅니다. 로봇 앞바퀴의 두 축은 변속기로드로 연결됩니다. 상기 샤프트들 중 하나는 전동 벨트에 의해 조향 기어에 연결되어, 조향 기어가 회전 할 때 변속기 벨트가 변속기로드를 구동하여 2 개의 전방 휠이 동 기적으로 회전 할 수 있도록한다. 후륜 구동 모터는 증분 형 엔코더에 직접 연결된 DC 모터입니다. 감속비가 25 : 1 감속기로 감소 된 후 후륜이 기계식 차동 장치에 의해 구동됩니다. 증분 인코더의 신호는 드라이브 제어 보드로 전송됩니다. 전기 기계 시스템의 구조는 그림 7에 나와 있습니다.

결론

본 논문에서는 핸들링 로봇의 모터 및 서보 컨트롤러 하드웨어 설계를 구현한다. 실시간 운영 시스템 μC / OS-II는 STM32F107에 성공적으로 임베딩되어 모터 및 스티어링 기어의 속도 폐쇄 루프 실험이 완료됩니다. Cortex-M3 코어 컨트롤러 및 μC / OS-II 시스템의 다중 작업 실시간 성능의 특성을 활용하여 후속 로봇 이미지 비디오 캡처 및 탐색 추적을위한 소프트웨어 및 하드웨어 기반을 제공합니다. 기존의 PI 알고리즘이 개선되어 모터의 속도 및 전류 이중 폐 루프 제어가 실현 될 수 있다면 로봇 모터의 특성이 향상 될 것이며 처리 로봇의 적용 가능성은 더욱 커질 것이다.



문의 보내기

whatsapp

teams

이메일

문의