Seguidor de Linha com controle PID: mudanças entre as edições
Sem resumo de edição |
|||
Linha 8: | Linha 8: | ||
;[[Ações de Controle PID sobre o Seguidor de Linha]]: Descrição das ações de Controle PID sobre o Seguidor de Linha, hipóteses e problemas a serem experimentados. | ;[[Ações de Controle PID sobre o Seguidor de Linha]]: Descrição das ações de Controle PID sobre o Seguidor de Linha, hipóteses e problemas a serem experimentados. | ||
==Controle de velocidade de robô Seguidor de Linha== | ==Controle de velocidade de robô Seguidor de Linha== | ||
Linha 74: | Linha 33: | ||
:*O autor não implementou o controle '''Ki'''. | :*O autor não implementou o controle '''Ki'''. | ||
==Ajuste de parâmetros via Bluetooth== | ==Hardware do Robô Seguidor de Linha== | ||
===Vetor de sensores QTR-8=== | |||
O '''vetor de sensores de reflectância QTR-8''' possui '''8 leds IR/fototransistores''' (emissores infravermelho/receptores) montados em uma única placa, projetado para ser utilizado em '''seguidores de linha'''. | |||
Há dois tipos de sensores '''QTR-8''': | |||
*[https://www.pololu.com/product/960 QTR-8A]: Utiliza leitura analógica dos sensores | |||
*[https://www.pololu.com/product/961 QTR-8RC]: Utiliza portas digitais para fazer leitura dos sensores | |||
;Biblioteca para Arduíno: [https://www.pololu.com/docs/0J19 Arduino Library for the Pololu QTR Reflectance Sensors] | |||
==Outros protótipos de hardware testados== | |||
===Ajuste de parâmetros via Bluetooth=== | |||
Para facilitar o ajuste dos parâmetros, foi introduzido um módulo bluetooth no robô para que os parâmetros sejam transferidos via Bluetooth de um aplicativo em um celular Android. | Para facilitar o ajuste dos parâmetros, foi introduzido um módulo bluetooth no robô para que os parâmetros sejam transferidos via Bluetooth de um aplicativo em um celular Android. | ||
Linha 83: | Linha 56: | ||
*https://appinventor.pevest.com/2015/01/23/part-1-basic-bluetooth-communications-using-app-inventor/ | *https://appinventor.pevest.com/2015/01/23/part-1-basic-bluetooth-communications-using-app-inventor/ | ||
*https://appinventor.pevest.com/2017/01/06/part-3-bluetooth-communications-with-2-arduino-devices-using-app-inventor/ | *https://appinventor.pevest.com/2017/01/06/part-3-bluetooth-communications-with-2-arduino-devices-using-app-inventor/ | ||
===Vetor de Sensores e Determinação do Erro=== | |||
O '''Seguidor de Linha''' utiliza um '''vetor com sete sensores''' para seguir a linha e determinar o '''erro''' do robô em relação a linha. | |||
Dependendo da posição do vetor sobre a linha, '''apenas um''' ou '''dois sensores''' podem reconhecer a linha ao mesmo tempo, como mostra as figuras abaixo <ref NAME=LabGaragem>http://labdegaragem.com/profiles/blogs/tutorial-rob-seguidor-de-linha-com-controle-pid-e-ajustes-por</ref>: | |||
[[Arquivo:VetorSensores1.png|400px]] | |||
:Apenas sensor central (s3) reconhece a linha. | |||
[[Arquivo:VetorSensores2.png|400px]] | |||
:Sensor central (s3) e sensor (s4) reconhecem a linha. | |||
;Possibilidades para o vetor de sensores: Quando o sensor central está sobre a linha o erro é zero. | |||
:Quando o carrinho deriva para esquerda, sensibilizando os sensores a direita do ponto central, o erro é positivo. Quando deriva para direita, sensibilizando os sensores a esquerda do ponto central, o erro é negativo. | |||
Sensores | |||
0 1 2 3 4 5 6 | |||
------------- | |||
1 0 0 0 0 0 0 --> Erro -6 | |||
1 1 0 0 0 0 0 --> Erro -5 | |||
0 1 0 0 0 0 0 --> Erro -4 | |||
0 1 1 0 0 0 0 --> Erro -3 | |||
0 0 1 0 0 0 0 --> Erro -2 | |||
0 0 1 1 0 0 0 --> Erro -1 | |||
'''0 0 0 1 0 0 0 --> Erro 0''' | |||
0 0 0 1 1 0 0 --> Erro 1 | |||
0 0 0 0 1 0 0 --> Erro 2 | |||
0 0 0 0 1 1 0 --> Erro 3 | |||
0 0 0 0 0 1 0 --> Erro 4 | |||
0 0 0 0 0 1 1 --> Erro 5 | |||
0 0 0 0 0 0 1 --> Erro 6 | |||
==Materiais sobre Seguidor de Linha com controle PID== | ==Materiais sobre Seguidor de Linha com controle PID== |
Edição das 12h07min de 4 de junho de 2019
Seguidor de Linha com controle PID
Teoria sobre Sistemas de Controle PID
- Sistemas de Controle
- Um resumo da teoria sobre Sistemas de Controle em Malha Fechada e do Controle Proporcional Integral Derivativo.
Ações de Controle PID sobre o Seguidor de Linha
- Ações de Controle PID sobre o Seguidor de Linha
- Descrição das ações de Controle PID sobre o Seguidor de Linha, hipóteses e problemas a serem experimentados.
Controle de velocidade de robô Seguidor de Linha
Um robô Seguidor de Linha equipado com motores de corrente contínua tem seu controle de velocidade e sentido de rotação a partir de tensão elétrica variável aplicada em seus terminais:
- Sentido de rotação: Tensão positiva gira em um sentido e tensão negativa em outro sentido;
- Velocidade: Controlada pela amplitude da tensão aplicada.
- Arduíno e Ponte H
- Com o Arduíno equipado com um módulo Ponte H permite o controle de motores de corrente contínua através de saídas digitais e analógicas:
- O sentido de rotação dos motores é realizado a partir de saídas digitais, com LOW para um sentido e HIGH para o outro.
- O controle da velocidade dos motores é realizado a partir de "saídas analógicas", com modulação PWM de 8 bits, correspondendo a valores decimais entre O e 255. Estes valores correspondem a faixa entre 0 V e 5 V em caso de tensão nominal de 5 V.
- Entretanto, dependendo dos motores, a faixa de ajuste da velocidades geralmente varia de valorMínimo a 255, onde o valorMínimo é a modulação PWM mínima para romper a inércia dos motores (algo entre 40 e 80, dependendo do tipo de motores e do peso do robô).
- Funcionamento do Seguidor de Linha e a ação do Controle
- Suponha que um Seguidor de Linha seja programado para percorrer a pista com uma velocidade normal estabelecida com a modulação PWM velNormal = 120 e que tenhamos somente o controle proporcional ativo, com Kp = 20.
- Suponha que em dado momento tenhamos erro = 1, com o robô derivando para esquerda.
- Neste caso, a ação do controle proporcional modificará a trajetória do robô aumentando a velocidade do motor esquerdo e diminuindo a velocidade do motor direito:
velMotorEsq = velNormal + Kp * erro = 120 + 20 * 1 = 140 velMotorDir = velNormal - Kp * erro = 120 - 20 * 1 = 100
- Ajuste dos parâmetros PID
- O projeto apresentado em [1] utiliza motores de passo também controlados por modulação PWM. O autor sugere iniciar com Kp = 25, com Ki = 0 e Kd = 0.
- Experimentalmente foi aumentando o valor de Kp de forma que o robô continuasse a seguir linha de forma estável. O autor chegou a um valor de Kp = 50 após testes.
- Posteriormente, ajustou novo valor para Kp e Kd para 1/2 Kp utilizado com o controle proporcional único e prosseguiu com novos testes.
- O autor não implementou o controle Ki.
Hardware do Robô Seguidor de Linha
Vetor de sensores QTR-8
O vetor de sensores de reflectância QTR-8 possui 8 leds IR/fototransistores (emissores infravermelho/receptores) montados em uma única placa, projetado para ser utilizado em seguidores de linha.
Há dois tipos de sensores QTR-8:
- QTR-8A: Utiliza leitura analógica dos sensores
- QTR-8RC: Utiliza portas digitais para fazer leitura dos sensores
- Biblioteca para Arduíno
- Arduino Library for the Pololu QTR Reflectance Sensors
Outros protótipos de hardware testados
Ajuste de parâmetros via Bluetooth
Para facilitar o ajuste dos parâmetros, foi introduzido um módulo bluetooth no robô para que os parâmetros sejam transferidos via Bluetooth de um aplicativo em um celular Android.
O aplicativo foi desenvolvido com o App Inventor.
A comunicação usando Bluetooth foi construída baseado nos exemplos apresentados em:
- https://appinventor.pevest.com/2015/01/23/part-1-basic-bluetooth-communications-using-app-inventor/
- https://appinventor.pevest.com/2017/01/06/part-3-bluetooth-communications-with-2-arduino-devices-using-app-inventor/
Vetor de Sensores e Determinação do Erro
O Seguidor de Linha utiliza um vetor com sete sensores para seguir a linha e determinar o erro do robô em relação a linha.
Dependendo da posição do vetor sobre a linha, apenas um ou dois sensores podem reconhecer a linha ao mesmo tempo, como mostra as figuras abaixo [1]:
- Apenas sensor central (s3) reconhece a linha.
- Sensor central (s3) e sensor (s4) reconhecem a linha.
- Possibilidades para o vetor de sensores
- Quando o sensor central está sobre a linha o erro é zero.
- Quando o carrinho deriva para esquerda, sensibilizando os sensores a direita do ponto central, o erro é positivo. Quando deriva para direita, sensibilizando os sensores a esquerda do ponto central, o erro é negativo.
Sensores 0 1 2 3 4 5 6 ------------- 1 0 0 0 0 0 0 --> Erro -6 1 1 0 0 0 0 0 --> Erro -5 0 1 0 0 0 0 0 --> Erro -4 0 1 1 0 0 0 0 --> Erro -3 0 0 1 0 0 0 0 --> Erro -2 0 0 1 1 0 0 0 --> Erro -1 0 0 0 1 0 0 0 --> Erro 0 0 0 0 1 1 0 0 --> Erro 1 0 0 0 0 1 0 0 --> Erro 2 0 0 0 0 1 1 0 --> Erro 3 0 0 0 0 0 1 0 --> Erro 4 0 0 0 0 0 1 1 --> Erro 5 0 0 0 0 0 0 1 --> Erro 6
Materiais sobre Seguidor de Linha com controle PID
- Projetos
- http://labdegaragem.com/profiles/blogs/tutorial-rob-seguidor-de-linha-com-controle-pid-e-ajustes-por
- http://www.roboliv.re/conteudo/pid-controle-proporcional-integral-derivativo
- http://www.andrix.com.br/robo-seguidor-de-linha-utilizando-um-controlador-proporcional-derivativo-pd-com-arduino/
- http://www.andrix.com.br/robo-seguidor-de-linha-utilizando-um-controlador-proporcional-derivativo-pd-com-arduino/
- https://www.instructables.com/id/PID-Based-Line-Following-Robot-With-POLALU-QTR-8RC/
- Artigos e TCCs
- http://www2.uesb.br/computacao/wp-content/uploads/2014/09/ROB%C3%94-SEGUIDOR-DE-LINHA-AUT%C3%94NOMO-UTILIZANDO-O-CONTROLADOR-PROPORCIONAL-DERIVATIVO-EM-UMA-PLATAFORMA-DE-HARDWARE-SOFTWARE-LIVRE.pdf
- http://sistemaolimpo.org/midias/uploads/230c61ca8833329f9ffc867a89566dcd.pdf
- http://sistemaolimpo.org/midias/uploads/576de7878a7614e9d80c2907103fc4c7.pdf
- http://repositorio.roca.utfpr.edu.br/jspui/bitstream/1/7105/1/PB_COENC_2016_1_04.pdf
Referências
--Evandro.cantu (discussão) 08h58min de 16 de maio de 2018 (BRT)