Sei sulla pagina 1di 11

Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3.

ISSN 2357-8904

TTULO: SISTEMA MOBILE-SERVIDOR PARA GERENCIAMENTO DE DESPACHO DE


EMPILHADEIRAS
CATEGORIA: CONCLUDO
REA: ENGENHARIAS E TECNOLOGIAS
SUBREA: COMPUTAO E INFORMTICA

INSTITUIO: UNIVERSIDADE FEDERAL DE SO CARLOS

AUTOR(ES): GABRIEL PERRI PINHEIRO


ORIENTADOR(ES): ORIDES MORANDIN JUNIOR, VINICIUS FERNANDES CARID

CATEGORIA CONCLUDO

Sistema mobile-servidor para gerenciamento de despacho de empilhadeiras


Resumo
Conforme citado por muitos autores, os AGVs (veculos autoguiados) possuem
inmeras vantagens, como flexibilidade, aumento na produo, etc. em relao aos
veculos guiados por operadores, como o caso da empilhadeira. Como no Brasil, o
custo dos AGVs elevado, somente algumas grandes empresas esto investindo na
substituio

das

empilhadeiras

por

AGVs.

Nesse

contexto,

um

sistema

computadorizado usando tcnicas de inteligncia artificial na ponderao de


mltiplas variveis capaz de gerenciar os veculos em tempo real de maneira
eficiente. No caso dos AGVs, existe a facilidade de que os mesmos j possuem
computadores embarcados no seu hardware. Porm na empilhadeira, o processo
de deciso normalmente feito pelo prprio operador ou por terceiros, assim, se
cada operador possuir um smartphone com um sistema embarcado, o mesmo
recebe instrues do computador central que tem a capacidade de avaliar todos os
clculos e definir a melhor estratgia possvel. Assim esse trabalho visa desenvolver
um sistema embarcado em smartphone, e um sistema servidor, que far os clculos
e enviar instrues para o smartphone, permitindo que seja usado no
gerenciamento das empilhadeiras os mesmos mtodos usados em AGVs
Introduo
No cenrio atual de rpido desenvolvimento tecnolgico e tendo em vista a
constante procura pela minimizao de custos associados logstica e distribuio
de bens, pode-se vislumbrar que em breve ser necessria a mecatronizao ou a
robotizao de portos, centros de armazenagem e distribuio de produtos no
Brasil. Deve-se ressaltar que essa j uma realidade em pases da Europa, sia e
Amrica do Norte e que essencial para a reduo do custo Brasil, ou seja,
deficincias em infra-estrutura, excesso de legislaes e impostos, etc. que
aumentam os custos dos produtos, tornando tanto a indstria, como o comrcio no
Brasil menos competitivos quando comparados com outros pases.
A movimentao interna de materiais na indstria pode assumir custos significativos
em face da natureza do processo produtivo (MARTINS e ALT, 2009). Uma melhor
eficincia no manuseio de materiais torna-se fundamental para o aumento da
produtividade, diminuio de custos, cumprimento de prazos, etc.
1

CATEGORIA CONCLUDO

Independente do tipo de sistema de transporte, automtico (AGVs) ou manual


(empilhadeiras), a deciso de atendimento precisa ser em tempo real. Isso dificulta
na ponderao de mltiplas variveis, muitas vezes obrigando a deciso se basear
em apenas uma varivel, por exemplo, que atenda o que solicitou primeiro ou que
atenda quem estiver mais perto, etc. (CARID, 2011).
Nesse contexto, um sistema computadorizado usando tcnicas de inteligncia
artificial na ponderao de mltiplas variveis capaz de gerenciar os veculos em
tempo real de maneira eficiente. No caso dos AGVs, existe a facilidade de que os
mesmos j possuem computadores embarcados no seu hardware. Porm na
empilhadeira, o processo de deciso normalmente feito pelo prprio operador ou
por terceiros, assim, se cada operador possuir um equipamento (e.g. smartphone)
com sistema embarcado, o mesmo recebe instrues do computador central que
tem a capacidade de avaliar todos os clculos e definir a melhor estratgia possvel.
Objetivo
O objetivo geral do projeto fazer com que seja possvel gerenciar sistemas de
transportes que usam empilhadeiras, autonomamente utilizando tcnicas de
inteligncia artificial e avaliando mltiplas variveis na tomada de deciso. Dessa
forma o objetivo geral se divide em dois objetivos especficos: desenvolver um
sistema para ser usado em smartphone, onde o operador receber instrues de um
computador central sobre os trabalhos que sero executados; desenvolver um
sistema que funcionar no computador central intermediando o sistema autnomo
de tomada de deciso e o sistema mobile do smartphone, ou seja, esse sistema
servidor receber informaes do operador (como por exemplo sua localizao),
passar essa informao para o sistema de tomada de deciso, que retornar as
instrues de trabalho, que por sua vez o servidor replicar essas informaes para
o sistema mobile.
Metodologia
Primeiramente foi definida a plataforma mobile a ser usada no projeto. Foram
analisadas algumas plataformas existentes e cada uma foi investigada para
encontrar suas vantagens e desvantagens. As plataformas investigadas foram:

iPhone (Apple)

Java (Oracle)
2

CATEGORIA CONCLUDO

Android (Google)

Windows Mobile 6.0 ~ 6.5.3 (Microsoft)

Windows Phone 7.0 (Microsoft)

O desenvolvimento dos sistemas foi feito em C++, ento tambm foi investigada a
melhor plataforma para desenvolvimento do sistema servidor, entre:

Microsoft Visual Studio 2010

Borland C++ Builder

Posteriormente foram estudadas as possveis formas de comunicao entre os dois


sistemas. Assim, atravs de uma rede wireless, e atravs de protocolos e sockets a
comunicao mobile-servidor foi concretizada. O sistema servidor tambm
necessitaria se comunicar localmente com uma terceira aplicao, que seria o
sistema controlador, ou de tomada de deciso, porm essa parte seria uma
integrao com outro projeto de iniciao cientfica. Na figura 1 exemplificado o
sistema como um todo e destaca qual parte o escopo desse projeto.

Figura 1 Viso geral do sistema

A princpio o operador informa sua localizao no smartphone. O sistema mobile


encaminha essa informao para o sistema servidor que por sua vez encaminha
para o sistema de tomada de deciso. O sistema de deciso faz os clculos e envia
para o sistema servidor a ordem da tarefa a ser cumprida, que encaminha a mesma
para o sistema mobile para que o operador possa cumprir a tarefa. Uma ideia futura
para o trabalho usar triangulao de antenas para determinar automaticamente a
3

CATEGORIA CONCLUDO

posio do operador no layout de fbrica, deixando o processo mais automatizado e


criando grficos de visualizaes para melhor controle.
Desenvolvimento / Resultados
Estudo sobre as plataformas disponveis para desenvolvimento do aplicativo
mobile:
Para a definio da plataforma mobile a ser usada no projeto foram pesquisadas e
listadas algumas plataformas existentes e cada uma foram investigadas para
encontrar suas vantagens e desvantagens. Para ajudar na escolha da plataforma
mobile a ser usada no projeto, foram testadas algumas ferramentas que auxiliam na
programao de cada uma. A seguir uma viso geral sobre elas:
iPhone: Devido a fortes desvantagens para escolha dessa plataforma, nenhuma
ferramenta de desenvolvimento foi testada.
Android / Java: A primeira ferramenta para auxlio no desenvolvimento (para
Android) usado foi o aplicativo Titanium, da empresa Appcelerator. Trata-se de uma
interface de traduo de linguagens Web para aplicativos Android. Porm, o uso
dessa ferramenta no se mostrou muito til, pois seria necessrio o aprendizado das
linguagens web suportadas, alm da configurao de componentes de UI (User
Interface) ser completamente manual. Para a Android, tambm necessrio ter a
instalao dos SDKs e plug-ins apropriados [1], [2], [3].
Windows Mobile 6.0/6.5/6.5.3: Para o desenvolvimento para Windows Mobile,
necessrio ter o Visual Studio 2005 ou 2008 instalado e os SDKs associados
verso desejada [4].
Windows Phone 7.0: Devido a fortes desvantagens para escolha dessa plataforma,
as investigaes no se aprofundaram [5].
Como o foco para a escolha da plataforma era a possibilidade de obter resultados
rpidos, foi decidido que a primeira verso do projeto seria para Windows Mobile
6.5/6.5.3.
Visualizao do aplicativo mobile:
Ao carregar o aplicativo no celular, a pgina inicial do aplicativo abrir. A primeira
tela a aba de configurao de conexo (figura 2). Nela pede-se para preencher
com a identificao do veculo, o hostname (nmero de ip do servidor) e a porta de
4

CATEGORIA CONCLUDO

conexo (indicada no servidor). Com exceo do cdigo do veculo, essas


informaes devem ser passadas ao usurio pelo responsvel tcnico.

Figura 2 Imagem da primeira tela do aplicativo

Aps o preenchimento correto dos campos, ao selecionar a opo "conectar", o


aplicativo faz a conexo com o servidor e, caso ela seja feita corretamente, ele
automaticamente direciona o aplicativo para a tela "Principal". Tal tela onde o
usurio controla as informaes relacionadas ao seu deslocamento, ou seja, sua
posio, o prximo destino e o seu estado, conforme ilustrado na figura 3.
O campo "posio" pode ser alterado pelo prprio usurio, que deve confirmar
selecionando a opo "alterar". Porm o campo "destino" no pode ser alterado
manualmente. Quando o veculo no puder receber uma tarefa, por quaisquer
motivos, o usurio deve alterar o estado para "indisponvel". Assim, nenhum destino
novo ser recebido.

Figura 3 Tela principal do dispositivo

Figura 4 Tela de recebimento de tarefas

Figura 5 Atualizao da tela principal

Por outro lado, quando o veculo est pronto para realizar uma tarefa, o usurio deve
atualizar seu estado para "disponvel", de forma que o aplicativo fique a espera de
5

CATEGORIA CONCLUDO

um novo destino. Quando um destino recebido, uma caixa de dilogo aberta


como pode ser visto na figura 4.
Se o usurio aceitar o novo destino, o campo "destino" automaticamente
atualizado e o estado modificado para "Em trnsito" (Figura 5). Caso contrrio, seu
estado modificado para "indisponvel".
Aps aceitar um novo destino, o usurio deve levar o veculo at ele. Feito isto, a
opo "Cheguei" deve ser selecionada para informar ao servidor que a tarefa foi
concluda. Assim o estado atualizado automaticamente para "disponvel", assim
como a posio atual do veculo.
A aba "Ajuda", serve para tirar dvidas que possam surgir para o usurio. Nela esto
explicaes tais como estas, tambm ilustradas com figuras de modo a deixar o
mais intuitivo possvel.
Estudo sobre as plataformas disponveis para desenvolvimento do servidor:
Ainda na perspectiva de que a primeira entrega deve priorizar o tempo, o processo
de seleo do servidor ocorreu da seguinte forma: Listagem de plataformas
investigadas:

Microsoft Visual Studio 2010


Borland C++ Builder

O fator decisivo foi a facilidade de acesso a uma licena completa primeira opo,
visto que alunos da UFSCar possuem a licena da ELMS, relacionados a produtos
da Microsoft.
Visualizao do servidor:
Executando o cdigo do sistema no computador, o servidor comear a ser rodado e
a seguinte tela deve aparecer no computador (figura 6). Logo em seguida, o usurio
deve escolher o endereo de IP selecionado na caixa de dilogo correspondente.
Aps escolher o IP e pass-lo ao usurio do aplicativo Mobile, juntamente com o
nmero da porta, o usurio do aplicativo Mobile deve tentar realizar a conexo entre
ambos. Caso a conexo seja feita com sucesso, um veculo dever ser listado na
caixa de dilogo situado a direita do servidor, informando o nmero do veculo
conectado, assim como sua posio e seu estado atual, conforme ilustrado na figura
7.
6

CATEGORIA CONCLUDO

Figura 6 Configurando IP

Figura 7 Verificando estados dos veculos

Para enviar um novo destino a um veculo, o usurio deve digitar um ID


(identificador) de um veculo conectado e um novo destino na caixa de dilogo
situada esquerda do servidor.
Se o usurio digitar um ID de veculo que no esteja listado no servidor, uma janela
avisar o usurio que o veculo no foi encontrado. Se o veculo que o usurio
deseja enviar um novo destino estiver com o estado "indisponvel" ou "em trnsito",
uma outra janela avisar que o veculo no pode receber um novo destino. Assim o
usurio do servidor dever esperar o veculo estar com o estado "disponvel" para
poder enviar um novo destino.
Quando isto acontecer e o usurio do servidor enviar um novo destino, o estado do
veculo em questo aparecer como "indisponvel" at o usurio do Mobile aceitar,
ou no, o novo destino.

Figura 8 Enviando tarefas aos veculos


7

CATEGORIA CONCLUDO

Caso o usurio do aplicativo Mobile aceite o novo destino, o status do veculo


mudar automaticamente para "Em trnsito" na tela do servidor, at que o usurio
do veculo avise, via aplicativo Mobile, que chegou ao destino, atualizando assim
sua posio e tornando-se disponvel para receber um novo destino atravs do
servidor como mostrado na Figura 8.
Estudo sobre a comunicao entre aplicativo mobile e servidor:
Para cumprir os requisitos para o funcionamento do produto, uma forma de
comunicao entre o celular e um desktop era necessria. Por isso, uma
investigao sobre a melhor forma de realizar esta comunicao foi iniciada.
Existem muitas possibilidades de realizar esta comunicao: SMS, GPRS, Bluetooth,
Wi-Fi, entre outras. Dentre as caractersticas de cada uma, a interface Wi-Fi foi a
escolhida.
Dentre os pontos negativos desta escolha, destaca-se o alcance limitado da
interface (quando comparado a SMS e GPRS, por exemplo) e o risco de quedas de
conexo. Por outro lado, dentre os pontos positivos, destaca-se a grande
flexibilidade da interface, pois possvel a criao de uma rede LAN (Local Area
Network) comum permitindo o uso de praticamente qualquer protocolo de
comunicao usado para redes locais ou at mesmo a criao de um protocolo
adaptado. Alm disso, atualmente, as maiorias dos dispositivos mveis so
nativamente compatveis com a rede, assim como os computadores, permitindo a
fcil adaptao entre plataformas. Outro aspecto positivo a facilidade de
implementao em cdigo, devido ao grande nvel de uso de uma rede LAN para
comunicao.
Na transferncia de dados por rede a melhor opo encontrada foi a uso de Sockets.
Com a programao sendo realizada em C# ou Visual C++, fez-se a escolha do
Framework .NET da Microsoft possui classes especficas para manipulao de
sockets encontradas no namespace System.Net.Sockets que abstraem e facilita a
realizao da comunicao [6].
Uma vez decidido o uso do System.Net.Sockets a investigao de como fazer
iniciou e decidiu-se que seria usado o protocolo TCP por comunicao via um IP
(v.4) e uma porta. Este tipo de comunicao baseado no formato cliente-servidor,
ou seja, um servidor (no nosso caso, rodando em um desktop central) monitora uma
8

CATEGORIA CONCLUDO

determinada porta do computador esperando comunicaes; enquanto cada cliente


(no nosso caso, os celulares), por sua vez, requisita a conexo com o IP do
computador do servidor na porta monitorada pelo servidor. Uma vez estabelecida a
comunicao, os dados podem ser transferidos.
Implementao da Comunicao e Fluxo de Dados:
O processo de comunicao comea pelo servidor. Ele deve estar em um processo
de espera, aguardando em uma determinada porta por tentativas de comunicao
por parte do cliente. Esta espera realizada por um mtodo no esttico da classe
TcpListener. O mtodo retorna um objeto do tipo TcpClient que representa o cliente
que se conectou. Para possibilitar a conexo com vrios clientes, o mtodo de
espera por conexes est em um ciclo e, para cada cliente conectado, uma nova
thread criada para gerenciar a conexo.
Do lado do cliente, uma chamada do mtodo Connect usada passando por
parmetro o hostname (pode ser o ip) do computador onde est o servidor e a porta
em que ele est aguardando. Com isso, a conexo estabelecida. Uma vez
estabelecida a conexo, alguns dados iniciais so transmitidos.
Estas informaes so recebidas pelo servidor e um novo objeto do tipo Veculo
criado e colocado em um vetor de veculos conectados. Aps esta troca de
informaes iniciais, no lado do servidor, a thread responsvel por gerenciar aquele
veculo conectado entra em um estado de leitura, esperando pela escrita de um
cdigo por parte do cliente.
Este cdigo determina qual o tipo da informao que vem em seguida, para que o
servidor seja capaz de interpret-lo. Se o cdigo for 1, a informao a ser transmitida
em seguir uma atualizao do status do veculo; se for 2, corresponde a uma
atualizao na posio do veculo. Por outro lado, o cliente envia informaes de
atualizao de posio e de estado quando o usurio indica por meio da interface
visual.
Consideraes Finais
Nesse projeto foi desenvolvida uma plataforma que d condies de usar um
sistema inteligente de despacho de AGV em sistemas de produo que usam
empilhadeiras no transporte de materiais, no qual uma realidade nas empresas do
Brasil. Nesse sentido foi desenvolvido um aplicativo para desktop, chamado de
9

CATEGORIA CONCLUDO

servidor, que tem por objetivo controlar as aes e um aplicativo para smartphone,
chamado de mobile, que tem por objetivo interagir com o operador da empilhadeira
passando as tarefas e recebendo a localizao. Tambm foi desenvolvida uma
forma de comunicao entre os sistemas mencionados para troca de informaes.
Essa plataforma foi testada e se mostrou eficaz. O sistema pronto em funcionamento
pode ser visto no vdeo:
http://www.youtube.com/watch?v=_Ad2Ivp5lmE

Fontes Consultadas
AGUIRRE, L. A., Enciclopdia de automtica: controle e automao. So Paulo: Blucher, 2007.
450 p
ALVAREZ, R. D. R.; ANTUNES JR., J. A. V. Takt-time: conceitos e contextualizao dentro do
Sistema Toyota de Produo.Gesto & Produo, v. 8, p. 1-18, 2001.
CARID, V. F., Modelo Adaptativo Fuzzy Gentico, Preditivo e Mutliobjetivo para Despacho de
AGVs. So Carlos, 2011.
CARVALHO, A. C. P. L. F.; BRAGA, A. P.; LUDERMIR, T. B. Computao evolutiva. In: REZENDE,
S. O. (Ed.). Sistemas inteligentes: fundamentos e aplicaes. Barueri: Editora Manole, p. 225-248,
2003.
MARTINS, P. G.; LAUGENI, F. P. Administrao da produo. So Paulo: Saraiva, 2005.
QUEIRS, R.; Programao para Dispositivos Mveis em Windows Mobile 6 - Curso Completo,
Editora: Lidel - Zamboni, 488p, 2008.
WIGLEY, A.; MOTH, D.; FOOT, P., Microsoft Mobile Development Handbook, Editora: Microsoft
Press, 651 p., 2007.
Links:
[1] Titanium Mobile Development Environment (Acesso em: 15/10/2012)
Disponvel em: http://www.appcelerator.com/products/titanium-mobile-application-development/
[2] Developers Tools - Android SDK: (Acesso em: 15/10/2012)
Disponvel em: http://developer.android.com/sdk/index.html
[3] Oracle Java SE (Acesso em: 15/10/2012)
Disponvel em: http://www.oracle.com/technetwork/java/javase/downloads/index.html
[4] Getting Started in Developing Applications for Windows Mobile 6 (Acesso em: 17/10/2012)
Disponvel em: http://msdn.microsoft.com/pt-br/library/bb158522.aspx
[5] Getting Started with Windows Phone Development (Acesso em: 17/10/2012)
Disponvel em: http://msdn.microsoft.com/en-us/library/ff402529(v=vs.92).aspx
[6] Microsoft MSDN - Namespace System.Net.Sockets (Acesso: 22/10/2012)
Disponvel em: http://msdn.microsoft.com/pt-br/library/sb27wehh.aspx.

10

Potrebbero piacerti anche