Sistema de Controle para Veículo Autônomo (SCVA)
Alexandre Félix , Fernando Eduardo Bastos , Paula Ghedini Der Agopian, Marcelo Kazuchi Abe, Márcio Callejon, Renata Hakemi Rudokas Shimura, Suzana Capassi Baltuilhe, Profº. Dr. Renato Giacomini.
Resumo – O problema de transporte de cargas num ambiente de produção industrial, ou mesmo em portos, aeroportos ou armazéns logísticos torna-se mais crítico à medida em que cresce a necessidade de flexibilidade e reconfiguração dos percursos e tipos de cargas. O presente trabalho apresenta o resultado do desenvolvimento de um sistema completo, que explora tecnologias recentes e de baixo custo. O Sistema de Controle para Veículo Autônomo, SCVA, é um sistema em que um veículo desprovido de operador segue rotas otimizadas, definidas por um software especialmente desenvolvido. Tais rotas são baseadas numa estrutura de sinais definidos fisicamente por linhas pintadas no chão da área de deslocamento do material.
Através de um sistema de comunicação por rádio freqüência, o veículo e o computador que executa o software comunicam-se, para trocar informações de posição, direção a seguir e estado do percurso.
Por ser um sistema autônomo, que dispensa infra-estrutura como trilhos, guias ou suportes físicos, o SCVA apresenta uma solução extremamente flexível e de baixo custo.
I. Introdução
O Sistema de Controle para Veículo Autônomo (SCVA) é um projeto desenvolvido por alunos da Faculdade de Engenharia Industrial e consiste em um sistema de controle para movimentação de um veículo dentro de uma empresa, depósito, portos, aeroportos ou qualquer outro meio onde seja necessária a movimentação de objetos sem a interferência humana.
Normalmente um sistema de transporte automatizado necessita de mudanças custosas e demoradas no ambiente para a sua implementação ou reconfiguração, como instalação de trilhos ou guias para o transporte. O presente projeto visa um veículo de transporte que não dependa de trilhos nem de operador para a seu funcionamento, que seja capaz de se guiar através de simples marcas pintadas no chão e definir as rotas através de um software específico. Com o sistema de comunicação implementado através de rádio-frequência, também deve dispensar a necessidade de cabos longos pelo trajeto.
O sistema proposto é dividido em dois subsistemas:
O sistema de localização e roteamento é desempenhado por um computador tipo PC, onde existe um software capaz de tomar decisões de percurso. Uma grande vantagem de se utilizar um software para este sistema é sua flexibilidade, pois toda a informação de percurso é tratada por um banco de dados que pode ser modificado sem grandes complicações. O computador também é quem comanda quando o veículo deve ou não entrar em operação.
O subsistema de controle de direção fica localizado, ao contrário do subsistema de localização e roteamento, no próprio veículo. É todo implementado em hardware, para garantir o cumprimento dos requisitos de tempo real e baixo custo. Toda a parte digital desse subsistema é descrita em VHDL ( Very High Speed Integrated Circuit Hardware Description Language), linguagem criada pelo departamento de defesa americano (DoD) e padronizada em 1993 pela norma IEEE-STD-1164/93 [1], de modo que pode ser implementado em lógica programável ou em dispositivo semicondutor fabricado especialmente para a aplicação [2], [3]. No protótipo desenvolvido, a parte digital está implementada num componente FPGA Field Programmable Gate Array) fabricado pela Altera Corporation. Este subsistema é encarregado de receber a ordem do computador, processar esta informação, devolver o "status" do veículo para o computador, iniciar a movimentação do veículo e assegurar que o mesmo leia as marcas do chão e mantenha-se no percurso. O veículo possui um sensor CCD que "lê" o chão para localizar as marcas de direção. Essa informação é processada pelo próprio veículo, medindo digitalmente o desvio da rota (em curvas ou cruzamentos) e realizando a devida correção. O tipo de controle é proporcional, ou seja, se a linha estiver perto do centro do veículo a correção é pequena, caso contrário a correção é grande.
II Descrição do Sistema
Hardware
A parte digital do subsistema de controle de direção realiza todo o controle de tração, direção e comunicação do veículo, trocando sinais com os circuitos de acionamento de potência, (motor e servos de direção), com o sensor CCD e com os módulos de comunicação R.F.
A interface do sensor CCD é composta pelos sinais abaixo descritos:
Estando alimentado e tendo os sinais de entrada definidos, o sensor devolve um sinal com duração correspondente aos 64 ciclos de clock, contendo a informação analógica de luminosidade de cada pixel, conforme a figura 1.

Fig.1 – Sinais de interface com o sensor CCD
Assim, por diferença de luminosidade pode-se definir que tipo de marca está sendo lida e sua posição. A conversão AD se dá por um circuito AGC (Automatic Gain Control) e discriminador de limiar. O sinal de posição é levado a um controlador proporcional, cuja saída modula em largura de pulso o sinal para posicionamento das rodas de direção.
Software
O software é o centro de todas as informações e foi desenvolvido para rodar em qualquer ambiente Windows.
O subsistema de localização e roteamento usa um banco de dados, onde armazena as informações dos caminhos percorridos, como:
Há ainda a interface homem/máquina gráfica, de onde são comandados os pontos iniciais e finais de transporte, composta por uma tela onde é apresentado:
Mapa com os possíveis caminhos do veículo, incluindo a origem e destino de cada trecho;
Controles de direção manual
Monitoração do veículo
O usuário seleciona o ponto de partida e chegada do veículo, então o software de controle se encarrega de fazer com que o veículo chegue ao seu destino. A figura 2 apresenta a tela de interface do protótipo.
O software estabelece uma comunicação bidirecional via Radio-Frequência (RF) com o veículo, conforme o protocolo de comunicação descrito posteriormente. Através dessa comunicação, ele recebe sinais do hardware que indicam a condição do veículo.
Ao serem definidos a origem e o destino, é acessado o banco de dados para decidir o melhor caminho. Como critérios de decisão temos:
O caminho com o menor número de cruzamentos: no banco de dados estão armazenados todos os percursos possíveis e o número de cruzamentos de cada um. Quando o usuário seleciona a origem e o destino, o programa prevê todos os possíveis caminhos entre esses dois pontos, então consulta o banco de dados e verifica qual desses possíveis caminhos tem o menor número de cruzamentos, isto é, qual será o caminho mais curto até o destino selecionado;

Fig.2 – Tela principal de operação do protótipo
O caminho mais rápido ou de menor distância; consulta o tempo de percurso de cada trecho, bem como a distância de cada um deles armazenados no banco de dados.
O caminho sem interrupções pré-definidas: toda vez que o veículo fizer algum percurso entre a origem e o destino, o software armazenará no banco de dados se ele encontrou alguma interrupção, desse modo se o próximo percurso a ser percorrido incluir esse trecho com a interrupção, o software saberá que não deve escolher este trecho e procurar por outro no qual o veículo possa chegar ao destino sem problemas;
O caminho em que obteve o maior número de sucessos até o momento: do mesmo modo que o programa armazena os trechos que possuem obstáculo, ele também armazena quais os caminhos que o veículo percorreu e que não teve nenhum tipo de problema no decorrer do percurso, esses caminhos terão prioridade na escolha dos percursos futuros;
Decisão nos cruzamentos:
Ao encontrar um cruzamento, o veículo avisa o computador, mais precisamente o software, e este verifica qual a próxima direção que o veículo deve seguir e envia um sinal para o mesmo, que prontamente obedece se dirigindo para o próximo cruzamento.
Se o cruzamento encontrado for o ponto final do trajeto, o software avisa que o percurso foi concluído e aguarda pela escolha de um novo trajeto.
Desvio da linha
Caso ocorra um desvio, proposital ou não, em que o veículo saia da linha que estava seguindo, ele irá avisar o software e aguardar. Para avisar o programa, o veículo envia o sinal que indica a perda da linha, então o operador, ao receber a mensagem, tomará as devidas providências para que o veículo retorne à linha.
Protótipo do Veículo
O protótipo foi montado utilizando-se componentes de um carrinho comum de controle remoto, com distância entre eixos diminuída, para facilitar as curvas, e substituição do motor, por um de menor potência e com maior redução na transmissão, a fim de propiciar um efeito de escala de velocidade. Para fazer o acoplamento do CCD com o carro e possibilitar a leitura de uma faixa maior do chão, foi utilizado um conjunto de lentes semelhante à de um "scanner" de mão que possui um espelho para redirecionar a imagem no sentido horizontal para o sensor, pois o CCD fica deitado em relação do chão.
Para iluminar o chão foi utilizado um conjunto de 3 diodos-laser, acoplados de forma a conseguir uma luz bastante uniforme e concentrada.
A figura 3 mostra o protótipo em movimento, seguindo uma marca traçada a caneta. Note-se que a posição da linha em relação ao sensor pode ser lida num display colocado na plataforma do carro.

Fig.3 – Protótipo em movimento
O sistema de direção foi implementado utilizando-se um servomotor FUTABA S148 .O servomotor possui 3 entradas, sendo uma VCC de 5v, GND e outra como entrada do sinal de controle.
O motor de tração do veículo utilizado é um motor DC de uso geral com tensão de trabalho de aproximadamente 5v. A corrente máxima exigida pelo motor no veículo é de aproximadamente 200mA.
Para o veículo conseguir um melhor desempenho no traçado da linha, foi utilizado um sistema diferencial, que permite que durante uma curva, as rodas traseiras girem com velocidades diferentes e assim as rodas da frente não derrapem.
A placa controladora possui uma saída para permitir que o veículo acione o motor ou não. Como a corrente de saída deste controlador não pode ultrapassar 25mA, foi utilizado um circuito para trabalhar como chaveador a fim de se amplificar a corrente.
A implementação de um filtro de alimentação é importante, pois quando o motor entra em operação, por se tratar de um motor de corrente contínua, gera ruídos que podem interferir no funcionamento do controlador.
Todos os componentes utilizados neste projeto possuem uma tensão de trabalho de 5v, como a principal fonte de alimentação é uma bateria de 7,2v, foram utilizados reguladores de tensão (7805) para permitir uma boa filtragem de ruídos e manter a corrente constante.
Comunicação
Para se fazer a transmissão dos dados entre o veículo e o microcomputador, foram utilizados circuitos de comunicação fabricados pela WenShing.
O tipo do sinal transmitido e recebido segue o padrão de comunicação assíncrona da porta serial do computador, em que foi adotada a seguinte convenção:
Taxa Paridade stop bits start bits
600bit/s N 1 1
O sistema foi projetado utilizando um protocolo simples, onde o veículo apenas se comunica se o computador permitir, pois se utiliza de um único canal de comunicação.
Os sinais de envio e resposta são sincronizados: o micro envia um sinal para o veículo a cada aproximadamente 100ms, o veículo processa este sinal e o devolve entre este intervalo em que o micro não transmite.
Os transmissores e receptores ambos trabalham com 5v e os sinais de entrada também. Como o sinal do conversor de RS-232 para TTL (MAX232) trabalha normalmente com nível lógico 1, utilizou-se um inversor a fim de que durante o período em que o computador espera o sinal do veículo, ele não continue transmitindo nada e não interfira no sinal de resposta.
Note-se que o sinal que é transmitido é perfeitamente sincronizado com o recebido.
O bloco do conversor TTL/RS232 ou RS232/TTL foi inserido para tornar compatível o tipo de sinal que o micro trabalha com o resto do sistema. Para fazer esta conversão, foi utilizado um MAX-232, que permite fazer esta conversão sem o auxilio de fonte simétrica, bastando apenas 5v de alimentação.
O sinal TX e RX do computador é invertido para ser transmitido. Para fazer esta inversão foram utilizadas portas lógicas comuns. No caso do veículo, não foi necessário utilizar este componente para inverter, visto que é mais prático converter o sinal internamente no FPGA da Altera.
A comunicação não necessita de seqüência de caracteres muito grande, por isso é transmitido apenas um único caracter, que já é o bastante para a comunicação.
A tabela 1 nos descreve os caracteres que o computador envia para o veículo:
Tabela 1 – Protocolo de comunicação
|
Caracter Função |
|
A manda o veículo andar |
|
D manda o veículo virar a direita |
|
E manda o veículo virar a esquerda |
|
P manda o veículo parar |
|
N* mantém a comunicação com o veículo permitindo que o mesmo indique o seu "status" |
A tabela 2 descreve os caracteres que o veículo envia para o computador:
Tabela 2 – Protocolo de comunicação
|
Caracter |
Função |
|
B |
indica que o veículo encontrou um cruzamento (linha larga) |
|
L |
indica que o veículo perdeu a linha |
|
N** |
indica que o veículo está com a linha OK. |
* Quando o computador não tem nenhum dado relevante ao percurso para enviar para o veículo, ele envia este caracter para permitir que o veículo indique a sua situação com relação a linha.
** Quando o veículo está em perfeitas condições, ele envia este caracter para permitir ao software detectar que o veículo está recebendo perfeitamente as informações que estão sendo passadas a ele.
III. Conclusões
Os experimentos realizados com o protótipo demonstraram sua viabilidade e facilidade de implementação a baixo custo.
O veículo mostrou-se bem comportado, com relação ao controle de direção e o software de posicionamento e roteamento ficou bastante confiável. Um aspecto ainda frágil do sistema é a comunicação RF, que parece muito susceptível a interferências, mas pode-se conseguir resultado melhor se for aumentada a potência do transmissor.
IV. Referências
[1] Mazor, S. Langstraat, P. A Guide to VHDL. Kluwer Academic Publishers, Boston, 1993.
[2] Scarpino, F. VHDL and AHDL Digital System Implementation. Prentice Hall, New Jersey, 1998.
[3] Skahill, K. VHDL for Programmable Logic. Addison Wesley, Reading, Massachusetts, 1996.