1
SERVIDOR WEB PARA CONTROLE REMOTO DE SERVIDOR WEB PARA CONTROLE REMOTO DE ROBÔS ROBÔS M M Ó Ó VEIS VEIS Autor: Rafael Eiji Yamada Orientadora: Dra. Eliane Gomes Guimarães(DRVC/CenPRA) Co-orientador: Prof. Dr. Eleri Cardozo(FEEC/Unicamp) Servidor Servidor WEB WEB Os experimentos deste trabalho são realizados na área de robótica. Para isso temos a disposição robôs móveis Pioneer 3-DX. Para permitir o acesso remoto de forma portável dos robôs foi desenvolvido um servidor WEB que permite o envio de comandos ao robô utilizando o protocolo HTTP, permitindo assim que um navegador de Internet comum sirva de interface para o controle de robôs disponibilizados pelo REALabs-BOT WebLab. O acesso ao robô é feito através de páginas dinâmicas CSP. Páginas dinâmicas têm seu conteúdo criado dinamicamente, podendo assim mostrar o resultado do comando do robô no navegador de Internet. As páginas CSP fazem a comunicação entre o usuário e o ARIA, que é uma API de comandos ao robô disponibilizada pelo fabricante do robô. Servidor WEB GET /vel.csp?vel=100 HTTP/1.1 servidorThread thread do comando pthread_create Aria Robot->setvel(100) Para cada requisição enviada ao servidor uma thread servidorThread é criada. Essa thread permite que requisições simultâneas possam ser atendidas. Quando um comando é enviado ao robô, o servidor verifica se o comando existe. Verificada a existência do comando, uma nova thread é criada. A nova thread executa o código C++ que está presente na página CSP e envia o comando para o Aria, que também utiliza C++. Por fim, o Aria envia o comando ao robô. As páginas dinâmicas CSP são páginas html com trechos de código em linguagem C++. Essas páginas são pré- compiladas e quando requisitadas ao servidor, executam o código em C++. Como a API do robô é escrita em C++ é possível a execução de comandos no robô. Ao término da execução do comando, o status do comando é enviado e apresentado no navegador. <csp> <@ #include "auxiliar.h" %> <% char *temp; int x, y, th; ArPose pos; temp = obtem_parametro("x", parametros); x = atoi(temp); free(temp); printf("x = %d\n", x); temp = obtem_parametro("y", parametros); y = atoi(temp); free(temp); printf("y = %d\n", y); temp = obtem_parametro("ang", parametros); th = atoi(temp); free(temp); printf("th = %d\n", th); pos.setPose((double)x, (double)y, (double)th); robot->moveTo(pos); %> <html> <h3>Posicao do robo</h3> Posicao do robo foi atualizada para (<%= x %>, <%= y %>) e angulo de <%= th%>. <br> <br> <a href="index.html">Voltar para index.html</a>; </html> </csp> Para enviar um comando para o robô, abre-se uma das páginas HTML existentes. Essas páginas HTML contém campos a serem preenchidos, que são os parâmetros do comando que será enviado ao robô. Antes de qualquer comando ser enviado a conexão com o robô deve ser estabelecida. Isto pode ser feito no botão conectar também presente nas páginas HTML. Alternativamente, pode-se requisitar a própria página CSP para o envio de um comando. Para isso basta digitar o comando desejado, colocando os parâmetros e seus valores após o sinal de interrogação e cada parâmetros separado pelo símbolo “&”. REALabs REALabs - - BOT BOT (Remotely (Remotely Acessible Acessible Laboratory) Laboratory) Para carregar uma página qualquer do servidor, basta digitar o endereço IP do robô seguido da porta de comunicação. Programa Principal Servidor Parser Cabeçalho executa executa executa O servidor WEB é dividido em quatro partes: programa principal, parser, servidor e cabeçalho. O parser é responsável pela identificação do recurso solicitado e os parâmetros que vêm com a mensagem recebida do cliente. O servidor procura pelo recurso e o retorna para o usuário. O cabeçalho cria o cabeçalho de retorno do servidor para o cliente. Clie n t e Navegador Computador de bordo Aria Servidor Páginas CSP Ac e s s a Executa Retorna resposta O servidor WEB criado é executado no computador de bordo ou no dispositivo ligado à porta serial do robô. Todos os recursos disponíveis, página HTML e CSP também ficam embarcados no computador de bordo do robô.

REALabs -BOT (Remotely Acessible Laboratory) SERVIDOR … · As páginas dinâmicas CSP são páginas html com trechos de código em linguagem C++. Essas páginas são pré-compiladas

Embed Size (px)

Citation preview

Page 1: REALabs -BOT (Remotely Acessible Laboratory) SERVIDOR … · As páginas dinâmicas CSP são páginas html com trechos de código em linguagem C++. Essas páginas são pré-compiladas

SERVIDOR WEB PARA CONTROLE REMOTO DESERVIDOR WEB PARA CONTROLE REMOTO DE ROBÔSROBÔS MMÓÓVEISVEISAutor: Rafael Eiji Yamada Orientadora: Dra. Eliane Gomes Guimarães(DRVC/CenPRA) Co-orientador: Prof. Dr. Eleri Cardozo(FEEC/Unicamp)

ServidorServidor WEBWEB

Os experimentos deste trabalho são realizados na área de robótica. Para isso temos a disposição robôs móveis Pioneer 3-DX.

Para permitir o acesso remoto de forma portável dos robôs foi desenvolvido um servidor WEB que permite o envio de comandos ao robô utilizando o protocolo HTTP, permitindo assim que um navegador de Internet comum sirva de interface para o controle de robôs disponibilizados peloREALabs-BOT WebLab.

O acesso ao robô é feito através de páginas dinâmicas CSP. Páginas dinâmicas têm seuconteúdo criado dinamicamente, podendo assim mostrar o resultado do comando do robô no navegador de Internet. As páginas CSP fazem a comunicação entre o usuário e o ARIA, que é uma API de comandos ao robô disponibilizada pelo fabricante do robô.

Servidor WEB

GET /vel.csp?vel=100 HTTP/1.1servidorThread

thread do comando

pthread_createAria

Robot->setvel(100)

Para cada requisição enviada ao servidor uma thread servidorThread é criada. Essa thread permite que requisições simultâneas possam ser atendidas. Quando um comando é enviado ao robô, o servidor verifica se o comando existe. Verificada a existência do comando, uma nova thread é criada. A nova thread executa o código C++ que está presente na página CSP e envia o comando para o Aria, que também utiliza C++. Por fim, o Aria envia o comando ao robô.

As páginas dinâmicas CSP são páginas html com trechos de código em linguagem C++.

Essas páginas são pré-compiladas e quando requisitadasao servidor, executam o códigoem C++.

Como a API do robô é escritaem C++ é possível a execução de comandos no robô.

Ao término da execução do comando, o status do comando éenviado e apresentado no navegador.

<csp><@ #include "auxiliar.h" %><%char *temp;int x, y, th;ArPose pos;temp = obtem_parametro("x", parametros);x = atoi(temp);free(temp);printf("x = %d\n", x);temp = obtem_parametro("y", parametros);y = atoi(temp);free(temp);printf("y = %d\n", y);temp = obtem_parametro("ang", parametros);th = atoi(temp);free(temp);printf("th = %d\n", th);pos.setPose((double)x, (double)y, (double)th);robot->moveTo(pos);%><html><h3>Posicao do robo</h3>Posicao do robo foi atualizada para (<%= x %>, <%= y %>) e angulo de <%= th%>.<br><br><a href="index.html">Voltar para index.html</a>;</html></csp>

Para enviar um comando para o robô, abre-se uma das páginas HTML existentes. Essas páginas HTML contém campos a serempreenchidos, que são os parâmetros do comando que será enviado ao robô.

Antes de qualquer comando ser enviado a conexão com o robô deve ser estabelecida. Istopode ser feito no botão conectar tambémpresente nas páginas HTML.

Alternativamente, pode-se requisitar a própria página CSP para o envio de um comando. Para isso basta digitar o comandodesejado, colocando os parâmetros e seusvalores após o sinal de interrogação e cadaparâmetros separado pelo símbolo “&”.

REALabsREALabs--BOTBOT(Remotely (Remotely AcessibleAcessible Laboratory)Laboratory)

Para carregar uma página qualquer do servidor, basta digitar o endereço IP do robôseguido da porta de comunicação.

Programa

Principal Servidor

Parser Cabeçalho

executa

executa

executa

O servidor WEB é dividido em quatropartes: programa principal, parser, servidore cabeçalho. O parser é responsável pelaidentificação do recurso solicitado e osparâmetros que vêm com a mensagemrecebida do cliente. O servidor procura pelorecurso e o retorna para o usuário. O cabeçalho cria o cabeçalho de retorno do servidor para o cliente.

Clie n te

Na ve ga do r

Com puta dor de bordo

Aria

S e rvidor

Pá g ina s CS P

Ace s s aExe cu ta

Re torna

re s pos ta

O servidor WEB criado éexecutado no computador de bordoou no dispositivo ligado à portaserial do robô.

Todos os recursosdisponíveis, página HTML e CSP também ficam embarcados no computador de bordo do robô.