4
Abstract - Develop new strategies and methods for solving problems, from a programming platform, whose main objective is the creation of innovative logic in which students are induced to put into practice any and all knowledge in the area of programming, without the need of domain of a specific language. I. INTRODUÇÃO Somos alunos da Comphaus Educacional uma das mais prestigiadas instituições educacionais nas áreas de Computação e Robótica e que oferece um amplo rol de projetos em seu portfólio. CHS Team é o nome com que, hoje, as equipes da Comphaus apresentam-se no Brasil e no exterior. Esta marca congrega, através dos esforços diários de gestores, pesquisadores, professores, mentores e alunos, todas as conquistas anteriores que construíram a tradição vitoriosa que representa. Este artigo tem como finalidade apresentar um pouco dos nossos trabalhos, pesquisas e estratégias que desenvolvemos durante a nossa preparação para a CBR/LARC (Competição Brasileira de Robótica/Latin American Robotics Competition) 2015. Nossa Equipe possui um particularidade interessante. Nossa Equipe é constituída por membros de vários partes do Brasil, entre eles de Ourinhos, interior de São Paulo, do Rio de Janeiro e de Pernambuco. Figura 1: Plataforma CsBot Simulator 2015 II. OBJETIVO Esta modalidade de competição tem como objetivo uma disputa entre duas equipes em uma espécie jogo cuja duração máxima é de 8 minutos e consiste em uma plataforma que possui dois mapas, sendo eles denominados de mundo 1 e mundo 2. Cada equipe possui dois robôs, um disponível em cada mundo, a diferença entre os robôs de cada equipe é a sua coloração podendo ser, a partir de um sorteio, azul ou vermelha. O robô 1 pode fazer uso de 3 a 5 minutos no mundo 1 e o tempo restante poderá ser utilizado pelo Robô 2 no mundo 2. A equipe tem como princípio básico programar seus robôs para navegar e coletar objetos em ambos os mundos. Somente um robô pode estar em execução por vez. Quando robô 1 move-se em mundo 1, robô 2 deve estar no modo de espera. Quando o robô 2 estiver em funcionamento, robô 1 mantém-se parado até o fim do jogo, então assim que concluir a missão do mundo 1 o robô respectivo deve se teletransportar para o mundo 2, assim ativando o robô de tal mundo. Um jogo começa com robô 1 navegando em mundo 1.Onde tal robô procura por três tipos de objetos: vermelho, verde e preto, cabe dizer também, que cada objeto possui seu valor especifico em determinadas áreas do mapa. O robô tem que recolher os objetos e depois depositá-los na caixa de coleta para que receba pontos. Porém ele não pode coletar mais de 6 objetos sem que tais sejam depositados. Bônus serão concedidos para cada conjunto de objetos vermelho, verde e preto coletados e depositado em uma única viagem. Vence a Equipe que possuir a maior pontuação. III. Estratégias Após um longo período de testes, discussões e pesquisas, começamos a formular as estratégias que estaríamos utilizando na competição, para representarmos o nosso país pela primeira vez em um evento mundial de robótica. A principio, possuíamos como plano inicial a utilização de comandos e condições mais específicos, como por exemplo a utilização dos Eixos X e Y, para melhor localização e movimentação de nosso robô na arena. Também colocamos como meta a melhoria e a maior velocidade de localização dos objetos e obstáculos, assim como a "Trap" e paredes espalhadas pelo Mundo. 1. Ignorando Objetos quando Cheio: De acordo com alguns testes, percebemos que mesmo após o nosso robô coletar os seis objetos que ele é capaz de carregar, ele continua perdendo tempo numa tentativa fracassada de coletar mais objetos, então pensamos em uma estratégia para que no momento em que a quantidade máxima de objetos permitidos for alcançada, o nosso robô parasse de procura-los e partisse rumo a área de coleta. Figura 3: exemplo para coletar objeto Verde. Projeto de Robô para modalidade CoSpace Secondary, LARC 2015 CHS KARTHUS Diego Pereira de Oliveira, João Marcos Barros Fernandes, Leonardo Santander da Silva, Vladson Henrique Ribeiro Marinhos. Laboratório de Robótica, Comphaus

Projeto de Robô para modalidade CoSpace Secondary, LARC 2015sistemaolimpo.org/midias/uploads/41e24f48254bdaaf3ee458a... · 2015-07-13 · IV. Conclusão Percebemos que o CoSpace

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Projeto de Robô para modalidade CoSpace Secondary, LARC 2015sistemaolimpo.org/midias/uploads/41e24f48254bdaaf3ee458a... · 2015-07-13 · IV. Conclusão Percebemos que o CoSpace

Abstract - Develop new strategies and methods for solving

problems, from a programming platform, whose main objective is

the creation of innovative logic in which students are induced to

put into practice any and all knowledge in the area of

programming, without the need of domain of a specific language.

I. INTRODUÇÃO

Somos alunos da Comphaus Educacional uma das mais

prestigiadas instituições educacionais nas áreas de

Computação e Robótica e que oferece um amplo rol de

projetos em seu portfólio.

CHS Team é o nome com que, hoje, as equipes da

Comphaus apresentam-se no Brasil e no exterior. Esta marca

congrega, através dos esforços diários de gestores,

pesquisadores, professores, mentores e alunos, todas as

conquistas anteriores que construíram a tradição vitoriosa que

representa. Este artigo tem como finalidade apresentar um

pouco dos nossos trabalhos, pesquisas e estratégias que

desenvolvemos durante a nossa preparação para a CBR/LARC

(Competição Brasileira de Robótica/Latin American Robotics

Competition) 2015.

Nossa Equipe possui um particularidade interessante.

Nossa Equipe é constituída por membros de vários partes do

Brasil, entre eles de Ourinhos, interior de São Paulo, do Rio

de Janeiro e de Pernambuco.

Figura 1: Plataforma CsBot Simulator 2015

II. OBJETIVO

Esta modalidade de competição tem como objetivo uma

disputa entre duas equipes em uma espécie jogo cuja duração

máxima é de 8 minutos e consiste em uma plataforma que

possui dois mapas, sendo eles denominados de mundo 1 e

mundo 2. Cada equipe possui dois robôs, um disponível em

cada mundo, a diferença entre os robôs de cada equipe é a sua

coloração podendo ser, a partir de um sorteio, azul ou

vermelha. O robô 1 pode fazer uso de 3 a 5 minutos no mundo

1 e o tempo restante poderá ser utilizado pelo Robô 2 no mundo

2.

A equipe tem como princípio básico programar seus robôs

para navegar e coletar objetos em ambos os mundos. Somente

um robô pode estar em execução por vez. Quando robô 1

move-se em mundo 1, robô 2 deve estar no modo de espera.

Quando o robô 2 estiver em funcionamento, robô 1 mantém-se

parado até o fim do jogo, então assim que concluir a missão do

mundo 1 o robô respectivo deve se teletransportar para o

mundo 2, assim ativando o robô de tal mundo.

Um jogo começa com robô 1 navegando em mundo 1.Onde

tal robô procura por três tipos de objetos: vermelho, verde e

preto, cabe dizer também, que cada objeto possui seu valor

especifico em determinadas áreas do mapa. O robô tem que

recolher os objetos e depois depositá-los na caixa de coleta para

que receba pontos. Porém ele não pode coletar mais de 6

objetos sem que tais sejam depositados. Bônus serão

concedidos para cada conjunto de objetos vermelho, verde e

preto coletados e depositado em uma única viagem. Vence a

Equipe que possuir a maior pontuação.

III. Estratégias

Após um longo período de testes, discussões e pesquisas,

começamos a formular as estratégias que estaríamos

utilizando na competição, para representarmos o nosso país

pela primeira vez em um evento mundial de robótica.

A principio, possuíamos como plano inicial a utilização

de comandos e condições mais específicos, como por exemplo

a utilização dos Eixos X e Y, para melhor localização e

movimentação de nosso robô na arena. Também colocamos

como meta a melhoria e a maior velocidade de localização dos

objetos e obstáculos, assim como a "Trap" e paredes

espalhadas pelo Mundo.

1. Ignorando Objetos quando Cheio:

De acordo com alguns testes, percebemos que mesmo

após o nosso robô coletar os seis objetos que ele é capaz de

carregar, ele continua perdendo tempo numa tentativa

fracassada de coletar mais objetos, então pensamos em uma

estratégia para que no momento em que a quantidade máxima

de objetos permitidos for alcançada, o nosso robô parasse de

procura-los e partisse rumo a área de coleta.

Figura 3: exemplo para coletar objeto Verde.

Projeto de Robô para modalidade CoSpace Secondary, LARC 2015

CHS KARTHUS

Diego Pereira de Oliveira, João Marcos Barros Fernandes, Leonardo Santander da Silva, Vladson Henrique Ribeiro Marinhos. Laboratório de Robótica, Comphaus

Mentor: Bruna Ianaconi Fusco

Laboratório de Robótica, Comphaus

Rua Aurélia, 1380- São Paulo- SP.

E-mail do mentor: [email protected]

CHS Karthus

Page 2: Projeto de Robô para modalidade CoSpace Secondary, LARC 2015sistemaolimpo.org/midias/uploads/41e24f48254bdaaf3ee458a... · 2015-07-13 · IV. Conclusão Percebemos que o CoSpace

Conforme pode-se observar (Figura 3), seguimos o

padrão comum para definir a "Condition" e a "Action", porém

logo abaixo na área onde encontramos a "Advanced

Condition", definimos: "LoadedObjects<7". Portanto assim

estamos dizendo que, o nosso robô apenas encontrará o objeto

definido se a variável pré definida pelo sistema, onde se

armazena a quantidade de objetos ja coletados for Menor do

que 7, ou seja 6.

2. Depositando Objetos apenas quando cheio:

Durante todo o processo de desenvolvimento do

programa, notamos também que o robô sempre perdia muito

tempo depositando um ou dois objetos, o que não colaborava

muito para o sucesso de nosso programa, então partindo do

mesmo principio acima, porém de forma inversa, pensamos

em determinar o depósito dos objetos de forma padrão, como

já era de costume, e definimos que apenas realizaria o depósito

de tais objetos quando a variável "LoadedObjects" for maior

que 5, ou seja 6. podemos notar essa definição na imagem

abaixo.

Figura 4: Depósito de Objetos

3. Mantendo-se na Zona Especial:

Sabemos que, de acordo com as regras, existem áreas no

mapa que são chamadas de zonas especiais, onde a pontuação

dos objetos coletados nesta área são equivalentes ao dobro.

Portanto, decidimos utilizar desta área para desenvolvermos

uma estratégia que consideramos inovadora. Após vários

testes, encontramos um método de fazer com que o nosso robô

fique "Preso" dentro desta área para assim obtermos a maior

pontuação.

Utilizamos a seguinte linha de pensamento:

- Sempre quando o robô entrar na área azul, será escrito o valor

um na variável que criamos chamada de "Blue".

- Assim sempre o a Variável "Blue" tiver como valor 1, duas

condições são chamadas, denominamos elas de "Outside Blue

Left" e "Outside Blue Right".

- Ou seja, sempre que esta variável for verdade o robô não

conseguirá sair da área azul especial, a menos que a

quantidade de objetos coletados for maior ou igual a 6.

- O Robô apenas sairá da Zona especial quando já estiver

cheio, assim ele procurará imediatamente a Caixa de Coleta.

Figura 5: In Blue

Quando o Robô identificar que esta na Zona especial, a

partir da leitura dos sensores de cor e se a variável onde os

objetos estão armazenados for menor que 6, então escreve-se

o valor 1 para a Variável "Blue".

Figura 6: Outside Blue Right

Podemos perceber na imagem acima, que o valor

definido, seria o valor do piso comum, então se "Blue == 1",

ou seja, se a variável "blue" possuir como valor o numero 1,

então o robô ficará preso nesta área até que a variável

"LoadedObjects" for maior que 6, então ele procurará a caixa

de coleta para depositar seus objetos.

4. Utilizando X e Y

Continuamos com o processo de pesquisa e

desenvolvimento de novas estratégias, e nos deparamos com

uma situação bastante preocupante no Mundo 2. A linha que

está disponível no mundo referido, para delimitar a arena é

extremamente pequena, e os sensores do robô do mundo

virtual não conseguem identificar, por esse motivo ele sempre

sofre a penalidade, pois sai da área permitida.

Analisamos as orientações disponíveis juntamente com

as regras e descobrimos algo realmente interessante e

inovador. Temos disponível na plataforma um sistema de

orientação e posicionamento X e Y, que segue mesma linha de

raciocínio do Plano Cartesiano.

Page 3: Projeto de Robô para modalidade CoSpace Secondary, LARC 2015sistemaolimpo.org/midias/uploads/41e24f48254bdaaf3ee458a... · 2015-07-13 · IV. Conclusão Percebemos que o CoSpace

-Plano Cartesiano

Criado por René Descartes, o plano cartesiano consiste em

dois eixos perpendiculares, sendo o horizontal chamado de

eixo das abscissas e o vertical de eixo das ordenadas. O plano

cartesiano foi desenvolvido por Descartes no intuito de

localizar pontos num determinado espaço. As disposições dos

eixos no plano formam quatro quadrantes, mostrados na figura

a seguir:

Figura 7: Plano Cartesiano

Imaginemos que todo a plataforma foi desenhada em cima do

Primeiro Quadrante do plano Cartesiano:

Figura 8: Representação do Mapa no Plano Cartesiano

Na própria plataforma existe uma espécie de sensor, que

exibe a posição do robô de acordo com as posições X e Y.

Pensando nisso desenvolvemos a nossa mais nova e complexa

estratégia. Então quando estiver próximo de Zero o robô estiver

na abscissa X, ele tende a se desviar e retornar ao centro do

mapa e continuar em sua cassada por mais objetos. Assim

também ocorre quando estiver mais próximo de zero na

ordenada Y e quando o valor de X ou de Y for muito elevado,

forçando-o assim a se manter dentro da arena.

Figura 9: Sensor mostrando a posição do Robô em relação

a X e Y.

Para aumentar a precisão das curvas nessa situação,

começamos a estudar de forma mais aprofundada o sensor

Compass, disponível na plataforma. Este sensor funciona

basicamente como uma bússola, porém trabalhamos com os

valores exibidos. De acordo com os teste realizados

descobrimos que quando o robô esta apontado para cima o

valor apresentado é zero e que sua posição vai ser definida no

sentido Anti-Horário partindo de 0 a 360.

Apenas para concluir, podemos citar como exemplo:

Quando o Robô estiver com o valor X próximo a zero, ou seja,

esta próximo da borda lateral esquerda, e o compass estiver

indicando o valor menor do que 90º, isso significa que o nosso

robô esta semi direcionado para o Norte do mapa, então a

curva será para cima ou para esquerda, dependendo do ponto

de vista do observador, e será vice e versa caso o valor seja

maior que 90º. E assim em todas as outras possibilidades que

possam surgir.

Figura10: Exemplo da movimentação do robô próximo a

borda.

Page 4: Projeto de Robô para modalidade CoSpace Secondary, LARC 2015sistemaolimpo.org/midias/uploads/41e24f48254bdaaf3ee458a... · 2015-07-13 · IV. Conclusão Percebemos que o CoSpace

IV. Conclusão

Percebemos que o CoSpace Rescue é uma importante

ferramenta que propicia a nós alunos, uma variedade incrível

para desenvolvermos estratégias e formas de pensamentos

inovadores que nos faz refletir e por fim aprimorar os nossos

pensamentos e discussões quando o assunto é lógica de

programação.

No processo do desenvolvimento de nosso programa

aprendemos muito, e aprimoramos mais a nossa capacidade de

estratégia e lógica, fazendo com que as nossas chances de

desenvolvimento intelectual fossem aumentadas. Ao

realizarmos este trabalho houve interação de todo o grupo e

aperfeiçoamos nossas habilidades comunicativas, com a

partilha de nossos conhecimentos e descobertas. Estamos bem

confiantes e felizes com os resultados obtidos até o momento.

Agradecimentos

A todos os integrantes do Laboratório da Comphaus, amigos e

professores.

Referências

[1] Disponível em

< http://cospacerobot.org/competition/cospace-rescue>

Acesso em: 03/07/2015.

[2] Disponível em

<http://rcj.robocup.org/rcj2015/rescue_cospace_2015.pd

f> Acesso em: 03/07/2015.

[3] Disponível em

< http://www.brasilescola.com/matematica/plano-

cartesiano.htm> Acesso em: 03/07/2015.

[4] Disponível em

< http://www.infoescola.com/geografia/bussola/>

Acesso em: 03/07/2015.