Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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
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.
-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.
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.