A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

DESENVOLVIMENTO DE UM MANIPULADOR COM DOIS GRAUS DE LIBERDADE CONTROLADO REMOTAMENTE VIA INTERNET Por Alberto José Alvares Luiz Sérgio Jordão Romariz Júnior.

Apresentações semelhantes


Apresentação em tema: "DESENVOLVIMENTO DE UM MANIPULADOR COM DOIS GRAUS DE LIBERDADE CONTROLADO REMOTAMENTE VIA INTERNET Por Alberto José Alvares Luiz Sérgio Jordão Romariz Júnior."— Transcrição da apresentação:

1 DESENVOLVIMENTO DE UM MANIPULADOR COM DOIS GRAUS DE LIBERDADE CONTROLADO REMOTAMENTE VIA INTERNET Por Alberto José Alvares Luiz Sérgio Jordão Romariz Júnior GRACO - Grupo de Automação e Controle - Engenharia Mecânica - UnB http://www.graco.unb.br/robwebcam alvares@graco.unb.br & luiz@graco.unb.br

2 Teleopera Introdução - Teleoperação ä Algumas Vantagens do Controle Remoto - Teleopera: ä Algumas Vantagens do Controle Remoto - Teleoperação: ä Mover objetos a distância; ä Otimizar o uso de transportes, materiais e pessoas; ä Atuar em ambientes perigosos; ä Minimizar os custos. ä Exemplos de Aplicações na Internet - TeleRobotics: ä Telerobot (Un. Western Australia - http://telerobot.mech.uwa.edu.au ); ä Bradford Robotic Telescope Observatory; ä WebRobot - RobWebLink (http://www.graco.unb.br); ä Observação do tempo nos EUA.

3 Teleopera http://telerobot.mech.uwa.edu.au Teleoperação - Exemplo http://telerobot.mech.uwa.edu.au

4 DESENVOLVIMENTO DE UM MANIPULADOR COM DOIS GRAUS DE LIBERDADE CONTROLADO REMOTAMENTE VIA INTERNET Por Alberto José Alvares Luiz Sérgio Jordão Romariz Júnior GRACO - Grupo de Automação e Controle - Engenharia Mecânica - UnB http://www.graco.unb.br/robwebcam alvares@graco.unb.br & luiz@graco.unb.br

5 Teleopera Introdução - Teleoperação ä Algumas Vantagens do Controle Remoto - Teleopera: ä Algumas Vantagens do Controle Remoto - Teleoperação: ä Mover objetos a distância; ä Otimizar o uso de transportes, materiais e pessoas; ä Atuar em ambientes perigosos; ä Minimizar os custos. ä Exemplos de Aplicações na Internet - TeleRobotics: ä Telerobot (Un. Western Australia - http://telerobot.mech.uwa.edu.au ); ä Bradford Robotic Telescope Observatory; ä WebRobot - RobWebLink (http://www.graco.unb.br); ä Observação do tempo nos EUA.

6 Teleopera http://telerobot.mech.uwa.edu.au Teleoperação - Exemplo http://telerobot.mech.uwa.edu.au

7 Teleopera http://webrobot.graco.unb.br Teleoperação - Exemplo http://webrobot.graco.unb.br

8 Arquitetura do Sistema ä ä Concepção e implementação de um sistema para controlar remotamente um manipulador com 2 graus de liberdade; ä ä Via de controle: Internet; ä ä Posiciona uma câmera de vídeo para adquirir imagens e vídeo “on-line”; ä ä Sistema RobWebCam - Robotic Web Camera.

9 Arquitetura do Sistema

10 Internet - TCP/IP ä ä Internet e Linguagens de programação ä TCP/IP; ä HTML; ä CGI; ä JAVA. ä Teleoperação

11 Projeto RobWebCam ä Considerações de Projeto ä Arquitetura aberta e de baixo custo; ä Manipulador com 2 GDL; ä Manipulador deverá suportar a câmera de vídeo (SunVideo ou QuickCam); ä 90º - vertical, 180º - horizontal; ä Acionamento por motores de passo.

12 Projeto RobWebCam ä Manipulador ä ä Requisitos Funcionais e Topologias;

13 Projeto RobWebCam ä ä Dimensionamento da Estrutura;

14 Projeto RobWebCam ä ä Dimensionamento dos Motores de Passo;

15 Projeto RobWebCam ä Alimentação dos Motores ä Transformador; ä Fonte de Tensão; ä Drive de Potência.

16

17 Projeto RobWebCam

18 ä Sistema Operacional LINUX: ä Multiusuário e multitarefa; ä Arquitetura cliente/servidor; ä Protocolo TCP/IP (Internet); ä Servidor de câmera de vídeo já disponível; ä Ter documentação de fácil acesso; ä Sistema aberto e de baixo custo; ä Facilidade para acessar a porta paralela e serial; ä Tem uma boa variedade de compiladores e outros tipos de programas que rodam em sua plataforma do tipo PC, Sparc, Alpha, entre outras.

19 Projeto RobWebCam ä Captura de Vídeo e Imagem ä Driver WebCam para Servidor WWW: Tecnologia Serverpush - Netscape; ä Câmera SunVideo - Frame Grabber (http://serpens.enm.unb.br); ä Câmera QuickCam - Connectix (http://omega.enm.unb.br). ä Programas voltados para Internet ä CGI - Common Gateway Interface (C++); ä Java; ä HTML e Servidor WWW.

20 Projeto RobWebCam

21

22 Programa Interfac.c ä #include ä #include ä /* class Interface versao para Linux / Unix. A classe Interface prove uma base de comunicacao para a classe Motor ä controlar um motor de passo ligado a porta paralela. Esta implementacao utiliza o comando "open", e pode ser usada para acesso ä a porta paralela sem acesso de ROOT. */ ä class Interface { private:intporta; ä public:Interface ();// construtor ä ~Interface ();// destrutor ä void send (int n); ä void waiting (int t); }; ä Interface :: Interface () ä // Construtor abre o acesso a porta paralela do computador ä {porta = open ("/dev/lp1",O_WRONLY|O_NONBLOCK,0); ä if (porta < 0) { ä printf ("Porta nao disponivel!\n"); ä exit (0); }} ä Interface :: ~Interface () ä // Destrutor que fecha o acesso a porta paralela do computador ä { close (porta); } ä void Interface :: send (int n) ä // Envia o inteiro n para a porta paralela ä { ä char cbuf = (char) n; int ibuf; ä if (write (porta,&cbuf,1) != 1) { ä printf ("Erro na porta."); ä exit (0); }} ä void Interface :: waiting (int t) ä // Faz uma interrupcao de t milisegundos no sistema ä {usleep (t*1000); }

23 Programa Motor.c ä #include "c:\prog\tourino\interfac.cpp" ä // Classe que define o objeto motor. Utiliza a classe Interface (interfac.cpp). espera-se que nao seja mudada para a versao Linux. ä int motor1_s [4] = {0x01,0x02,0x04,0x08}, ä motor2_s [4] = {0x10,0x20,0x40,0x80}, ä motor1_d [4] = {0x09,0x03,0x06,0x0C}, ä motor2_d [4] = {0x90,0x30,0x60,0xC0}; ä class Motor { ä private: ä intnumero,intervalo, tipo_excitacao, excitacao [4], ultima_excitacao; ä floatprecisao; ä public: ä voidset (int n);// define o motor usado ä void precision (float p);// define a precisao do motor ä void delay (int tempo);// define o intervalo entre passos ä void turn (int angle);// gira angulo ä voidwait (int time);// espera tempo excitado ä voidsstep (void);// define excitacao simples ä voiddstep (void);// define excitacao dupla ä void off (void);// desliga a excitacao do motor }; ä void Motor :: set (int n) ä {numero = n;if (tipo_excitacao) dstep (); else sstep (); } ä void Motor :: sstep (void) ä {if (numero == 0) { excitacao [0] = motor1_s [0] | motor2_s [0]; ä excitacao [1] = motor1_s [1] | motor2_s [1]; ä excitacao [2] = motor1_s [2] | motor2_s [2]; ä excitacao [3] = motor1_s [3] | motor2_s [3]; } ä if (numero == 1) { excitacao [0] = motor1_s [0]; ä excitacao [1] = motor1_s [1]; ä excitacao [2] = motor1_s [2]; ä excitacao [3] = motor1_s [3]; } ä if (numero == 2) { ä

24 Programa CGI ä #include ä #include ä #include "interfac.C" ä #include "motor.C" ä #include ä #include ä char nome[80] = "teste.mot"; ä void Le_comanda (void) ä { int inteiro; float real; ä FILE *arquivo; char comando[5],parametro [5]; class Motor M; ä if ((arquivo = fopen (nome,"rt")) == NULL) { puts ("Arquivo nao existe."); exit (0); } ä while (fscanf (arquivo,"%s",&comando) > 0) { ä if (strcmp (comando,"S") == 0) { ä fscanf (arquivo,"%s",&parametro); ä inteiro = atoi (parametro); M.set (inteiro); } ä if (strcmp (comando,"P") == 0) { ä fscanf (arquivo,"%s",&parametro); ä real = atof (parametro); M.precision (real); } ä if (strcmp (comando,"D") == 0) { ä fscanf (arquivo,"%s",&parametro); ä inteiro = atoi (parametro); M.delay (inteiro);} ä if (strcmp (comando,"T") == 0) { ä fscanf (arquivo,"%s",&parametro); ä inteiro = atoi (parametro); M.turn (inteiro);} ä if (strcmp (comando,"W") == 0) { ä fscanf (arquivo,"%s",&parametro); ä inteiro = atoi (parametro); ä M.wait (inteiro); } ä if (strcmp (comando,"SS") == 0) M.sstep (); ä if (strcmp (comando,"DS") == 0) M.dstep (); ä if (strcmp (comando,"O") == 0) M.off ();} ä fclose (arquivo); } int main (int argc,char *argv []) { ä printf("Content-type: text/plain \n\n"); ä Le_comanda (); }

25

26

27

28 Avaliação do Sistema ä Testes de Velocidade; ä Testes de Acionamento Remoto; ä Na UnB; ä Fora da Rede da UnB. ä Otimizações; ä Funcionamento por Um Ano; ä Sistema em Processo de Patenteamento.

29 Conclusão ä Inédito no Brasil; ä Apto as Aplicações Propostas; ä Atendeu aos Requisitos Iniciais; ä Possibilidade de Otimizações; ä Várias Aplicações Possíveis; ä Objetivos Alcançados; ä RobWebLink - Controle de Rôbo ABB com 6GL.

30 Teleopera http://webrobot.graco.unb.br Teleoperação - Exemplo http://webrobot.graco.unb.br

31 Arquitetura do Sistema ä ä Concepção e implementação de um sistema para controlar remotamente um manipulador com 2 graus de liberdade; ä ä Via de controle: Internet; ä ä Posiciona uma câmera de vídeo para adquirir imagens e vídeo “on-line”; ä ä Sistema RobWebCam - Robotic Web Camera.

32 Arquitetura do Sistema

33 Internet - TCP/IP ä ä Internet e Linguagens de programação ä TCP/IP; ä HTML; ä CGI; ä JAVA. ä Teleoperação

34 Projeto RobWebCam ä Considerações de Projeto ä Arquitetura aberta e de baixo custo; ä Manipulador com 2 GDL; ä Manipulador deverá suportar a câmera de vídeo (SunVideo ou QuickCam); ä 90º - vertical, 180º - horizontal; ä Acionamento por motores de passo.

35 Projeto RobWebCam ä Manipulador ä ä Requisitos Funcionais e Topologias;

36 Projeto RobWebCam ä ä Dimensionamento da Estrutura;

37 Projeto RobWebCam ä ä Dimensionamento dos Motores de Passo;

38 Projeto RobWebCam ä Alimentação dos Motores ä Transformador; ä Fonte de Tensão; ä Drive de Potência.

39

40 Projeto RobWebCam

41 ä Sistema Operacional LINUX: ä Multiusuário e multitarefa; ä Arquitetura cliente/servidor; ä Protocolo TCP/IP (Internet); ä Servidor de câmera de vídeo já disponível; ä Ter documentação de fácil acesso; ä Sistema aberto e de baixo custo; ä Facilidade para acessar a porta paralela e serial; ä Tem uma boa variedade de compiladores e outros tipos de programas que rodam em sua plataforma do tipo PC, Sparc, Alpha, entre outras.

42 Projeto RobWebCam ä Captura de Vídeo e Imagem ä Driver WebCam para Servidor WWW: Tecnologia Serverpush - Netscape; ä Câmera SunVideo - Frame Grabber (http://serpens.enm.unb.br); ä Câmera QuickCam - Connectix (http://omega.enm.unb.br). ä Programas voltados para Internet ä CGI - Common Gateway Interface (C++); ä Java; ä HTML e Servidor WWW.

43 Projeto RobWebCam

44

45 Programa Interfac.c ä #include ä #include ä /* class Interface versao para Linux / Unix. A classe Interface prove uma base de comunicacao para a classe Motor ä controlar um motor de passo ligado a porta paralela. Esta implementacao utiliza o comando "open", e pode ser usada para acesso ä a porta paralela sem acesso de ROOT. */ ä class Interface { private:intporta; ä public:Interface ();// construtor ä ~Interface ();// destrutor ä void send (int n); ä void waiting (int t); }; ä Interface :: Interface () ä // Construtor abre o acesso a porta paralela do computador ä {porta = open ("/dev/lp1",O_WRONLY|O_NONBLOCK,0); ä if (porta < 0) { ä printf ("Porta nao disponivel!\n"); ä exit (0); }} ä Interface :: ~Interface () ä // Destrutor que fecha o acesso a porta paralela do computador ä { close (porta); } ä void Interface :: send (int n) ä // Envia o inteiro n para a porta paralela ä { ä char cbuf = (char) n; int ibuf; ä if (write (porta,&cbuf,1) != 1) { ä printf ("Erro na porta."); ä exit (0); }} ä void Interface :: waiting (int t) ä // Faz uma interrupcao de t milisegundos no sistema ä {usleep (t*1000); }

46 Programa Motor.c ä #include "c:\prog\tourino\interfac.cpp" ä // Classe que define o objeto motor. Utiliza a classe Interface (interfac.cpp). espera-se que nao seja mudada para a versao Linux. ä int motor1_s [4] = {0x01,0x02,0x04,0x08}, ä motor2_s [4] = {0x10,0x20,0x40,0x80}, ä motor1_d [4] = {0x09,0x03,0x06,0x0C}, ä motor2_d [4] = {0x90,0x30,0x60,0xC0}; ä class Motor { ä private: ä intnumero,intervalo, tipo_excitacao, excitacao [4], ultima_excitacao; ä floatprecisao; ä public: ä voidset (int n);// define o motor usado ä void precision (float p);// define a precisao do motor ä void delay (int tempo);// define o intervalo entre passos ä void turn (int angle);// gira angulo ä voidwait (int time);// espera tempo excitado ä voidsstep (void);// define excitacao simples ä voiddstep (void);// define excitacao dupla ä void off (void);// desliga a excitacao do motor }; ä void Motor :: set (int n) ä {numero = n;if (tipo_excitacao) dstep (); else sstep (); } ä void Motor :: sstep (void) ä {if (numero == 0) { excitacao [0] = motor1_s [0] | motor2_s [0]; ä excitacao [1] = motor1_s [1] | motor2_s [1]; ä excitacao [2] = motor1_s [2] | motor2_s [2]; ä excitacao [3] = motor1_s [3] | motor2_s [3]; } ä if (numero == 1) { excitacao [0] = motor1_s [0]; ä excitacao [1] = motor1_s [1]; ä excitacao [2] = motor1_s [2]; ä excitacao [3] = motor1_s [3]; } ä if (numero == 2) { ä

47 Programa CGI ä #include ä #include ä #include "interfac.C" ä #include "motor.C" ä #include ä #include ä char nome[80] = "teste.mot"; ä void Le_comanda (void) ä { int inteiro; float real; ä FILE *arquivo; char comando[5],parametro [5]; class Motor M; ä if ((arquivo = fopen (nome,"rt")) == NULL) { puts ("Arquivo nao existe."); exit (0); } ä while (fscanf (arquivo,"%s",&comando) > 0) { ä if (strcmp (comando,"S") == 0) { ä fscanf (arquivo,"%s",&parametro); ä inteiro = atoi (parametro); M.set (inteiro); } ä if (strcmp (comando,"P") == 0) { ä fscanf (arquivo,"%s",&parametro); ä real = atof (parametro); M.precision (real); } ä if (strcmp (comando,"D") == 0) { ä fscanf (arquivo,"%s",&parametro); ä inteiro = atoi (parametro); M.delay (inteiro);} ä if (strcmp (comando,"T") == 0) { ä fscanf (arquivo,"%s",&parametro); ä inteiro = atoi (parametro); M.turn (inteiro);} ä if (strcmp (comando,"W") == 0) { ä fscanf (arquivo,"%s",&parametro); ä inteiro = atoi (parametro); ä M.wait (inteiro); } ä if (strcmp (comando,"SS") == 0) M.sstep (); ä if (strcmp (comando,"DS") == 0) M.dstep (); ä if (strcmp (comando,"O") == 0) M.off ();} ä fclose (arquivo); } int main (int argc,char *argv []) { ä printf("Content-type: text/plain \n\n"); ä Le_comanda (); }

48

49

50

51 Avaliação do Sistema ä Testes de Velocidade; ä Testes de Acionamento Remoto; ä Na UnB; ä Fora da Rede da UnB. ä Otimizações; ä Funcionamento por Um Ano; ä Sistema em Processo de Patenteamento.

52 Conclusão ä Inédito no Brasil; ä Apto as Aplicações Propostas; ä Atendeu aos Requisitos Iniciais; ä Possibilidade de Otimizações; ä Várias Aplicações Possíveis; ä Objetivos Alcançados; ä RobWebLink - Controle de Rôbo ABB com 6GL.


Carregar ppt "DESENVOLVIMENTO DE UM MANIPULADOR COM DOIS GRAUS DE LIBERDADE CONTROLADO REMOTAMENTE VIA INTERNET Por Alberto José Alvares Luiz Sérgio Jordão Romariz Júnior."

Apresentações semelhantes


Anúncios Google