sistema mobile_servidor para gerenciamento de despacho de empilhadeiras

11
Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3. ISSN 2357-8904 TÍTULO: SISTEMA MOBILE-SERVIDOR PARA GERENCIAMENTO DE DESPACHO DE EMPILHADEIRAS TÍTULO: CATEGORIA: CONCLUÍDO CATEGORIA: ÁREA: ENGENHARIAS E TECNOLOGIAS ÁREA: SUBÁREA: COMPUTAÇÃO E INFORMÁTICA SUBÁREA: INSTITUIÇÃO: UNIVERSIDADE FEDERAL DE SÃO CARLOS INSTITUIÇÃO: AUTOR(ES): GABRIEL PERRI PINHEIRO AUTOR(ES): ORIENTADOR(ES): ORIDES MORANDIN JUNIOR, VINICIUS FERNANDES CARIDÁ ORIENTADOR(ES):

Upload: cristiano-marcal-toniolo

Post on 17-Dec-2015

4 views

Category:

Documents


3 download

DESCRIPTION

Uso de conceitos de modelagem e desenvolvimento para celular com a tecnologia android.

TRANSCRIPT

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

    TTULO: SISTEMA MOBILE-SERVIDOR PARA GERENCIAMENTO DE DESPACHO DEEMPILHADEIRASTTULO:

    CATEGORIA: CONCLUDOCATEGORIA:

    REA: ENGENHARIAS E TECNOLOGIASREA:

    SUBREA: COMPUTAO E INFORMTICASUBREA:

    INSTITUIO: UNIVERSIDADE FEDERAL DE SO CARLOSINSTITUIO:

    AUTOR(ES): GABRIEL PERRI PINHEIROAUTOR(ES):

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

  • CATEGORIA CONCLUDO

    1

    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.

  • CATEGORIA CONCLUDO

    2

    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)

  • CATEGORIA CONCLUDO

    3

    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

  • CATEGORIA CONCLUDO

    4

    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

  • CATEGORIA CONCLUDO

    5

    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

  • CATEGORIA CONCLUDO

    6

    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.

  • CATEGORIA CONCLUDO

    7

    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

  • CATEGORIA CONCLUDO

    8

    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

  • CATEGORIA CONCLUDO

    9

    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

  • CATEGORIA CONCLUDO

    10

    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.