• Nenhum resultado encontrado

Interac¸c˜ ao com a simula¸ c˜ ao

A usabilidade e facilidade de uso s˜ao aspectos importantes para qualquer software que ´e utilizado por humanos, por isso foi dada especial aten¸c˜ao `as ferramentas implementadas que possibilitam interagir directamente com a simula¸c˜ao e permitem retirar informa¸c˜ao extra da simula¸c˜ao.

Figura 3.22: Modelo adoptado para mover e rodar objectos no simulador

Interac¸c˜ao com o ambiente

O simulador tem dois modos de opera¸c˜ao, o modo de “Simula¸c˜ao” e o modo de “Edi¸c˜ao”. O modo de “Simula¸c˜ao” ´e o modo normal de opera¸c˜ao, onde o ve´ıculo, o ambiente e toda a interac¸c˜ao entre eles ´e simulada. No modo de “Edi¸c˜ao” a simula¸c˜ao ´e colocada em pausa, a f´ısica ´e interrompida, todas as comunica¸c˜oes s˜ao suspensas, e ´e dado ao utilizador a possi- bilidade de adicionar elementos `a simula¸c˜ao, ou de alterar a posi¸c˜ao e rota¸c˜ao de qualquer elemento existente no ambiente, utilizando um modelo de interac¸c˜ao semelhante `a que ´e us- ada em muitos programas de modela¸c˜ao 3D (ver Figura 3.22), este modelo ´e composto por trˆes setas que representam o movimento em um dos trˆes eixos (X, Y ou Z), e trˆes torus que representam as trˆes rota¸c˜oes poss´ıveis nesses eixos (Yaw, Roll e Pitch), bastando arrastar uma destas entidade com o rato para que o objecto se mova/rode no eixo escolhido. Por exemplo, arrastar a seta dos eixos dos Y (seta verde na Figura 3.22) ir´a fazer com que o obst´aculos se movimente para cima/baixo consoante a direc¸c˜ao de movimento do rato. Quando o simu- lador retoma ao modo de opera¸c˜ao ”Simula¸c˜ao”, todas as opera¸c˜oes retomam a sua execu¸c˜ao, incluindo a f´ısica, e por consequˆencia todos os objectos ficam sujeitos `a for¸ca gravitacional, eventuais objectos que estejam a pairar no ar caem no ch˜ao, e caso exista alguma intersec¸c˜ao entre objectos o simulador tenta resolvˆe-las, alterando a posi¸c˜ao dos objectos em quest˜ao.

Ferramentas de an´alise

Muitas vezes a melhor ferramenta de an´alise de dados ´e a vis˜ao humana, e para ajudar a an´alise e debugging do software o simulador providencia duas ferramentas visuais: o fantasma do robot e execu¸c˜ao passo a passo.

O fantasma do robot ´e uma representa¸c˜ao visual de onde o robot pensa que est´a na pista. Esta informa¸c˜ao ´e fornecida pelo software do robot que se liga ao simulador e envia esta informa¸c˜ao em cada ciclo. Esta ´e uma ferramenta opcional que quando usada fornece feedback imediato do erro de localiza¸c˜ao do robot, e ajuda a perceber o comportamento deste

com base na posi¸c˜ao onde ele pensa que est´a.

O software do robot possui a particularidade de bloquear na aquisi¸c˜ao de frames da cˆamara, o que significa que caso este n˜ao receba uma frame de nenhuma das cˆamaras todo o software fica indefinidamente em espera, o que pode ser aproveitado em favor do simulador. De modo a colocar a f´ısica em pausa basta reduzir a seu velocidade a zero, para colocar o soft- ware do robot em pausa basta interromper a comunica¸c˜ao, desta forma ´e poss´ıvel interronper toda a execu¸c˜ao (fisica e software do robot) sempre que se quer, e permitindo at´e a execu¸c˜ao passo a passo, onde a f´ısica e a comunica¸c˜ao desbloqueiam durante um ciclo, voltando a blo- quear no final desse ciclo. Esta funcionalidade permite observar passo-a-passo a execu¸c˜ao do c´odigo do lado do robot, e verificar o resultado do lado do simulador.

3.4.1 Interface Gr´afica

A interface gr´afica do simulador em si ´e bastante simples, uma vez que todo o trabalho de configura¸c˜ao da pista, ambiente e carro ´e feito por ficheiros de configura¸c˜ao. A interface foi constru´ıda com base na biblioteca Swing, a biblioteca gr´afica do Java, e disponibiliza algumas ferramentas e informa¸c˜ao adicional sobre a simula¸c˜ao, e a componente mais importante, a visualiza¸c˜ao 3D da simula¸c˜ao fornecida pelo jMonkey. Al´em desta interface gr´afica principal, para cada cˆamara simulada ´e criada uma janela independente cujo ´unico objectivo ´e mostrar o v´ıdeo capturado pela cˆamara.

De seguida ser´a apresentada a interface gr´afica do simulador e uma breve descri¸c˜ao de cada elemento vis´ıvel nessa interface.

a) Menu principal do simulador. Permite carregar uma nova pista ou um novo ambiente a partir do ficheiro de configura¸c˜ao, e criar o mapa de perspectiva inversa para uma das cˆamaras.

b) Modos de opera¸c˜ao do simulador, “Simula¸c˜ao” e “Edi¸c˜ao”.

c) Ferramentas do modo de “Edi¸c˜ao”. Permite seleccionar e mover um objecto, ou adicionar um obst´aculo, cone ou parque de estacionamento `a cena.

d) ´Area de visualiza¸c˜ao. Ser´a explicada em profundidade mais `a frente.

e) Controlos da simula¸c˜ao. Permitem escolher uma das trˆes cˆamaras dispon´ıveis: “Free” onde ´

e poss´ıvel movimentar a cˆamara principal com as teclas WASD, e alterar a sua rota¸c˜ao com o rato; “Focus” que mantˆem a cˆamara apontada para o carro mas permite o seu movimento com as teclas WASD, e “Chase” onde a cˆamara acompanha o movimento do carro, ficando a pairar 3 metros por cima deste. Os controlos permitem ainda escolher um dos seis sinais dispon´ıveis para serem mostrados nos pain´eis semaf´oricos, pausar a simula¸c˜ao e a execu¸c˜ao passo-a-passo.

f) Energia do carro. Tal como o carro real tem dois interruptores que fornecem energia `a camada baixo n´ıvel (carbase) e ao motor, o carro simulado tamb´em os tem, neste caso o interruptor da camada de baixo n´ıvel (carbase) faz com que as mensagens recebidas sejam ignoradas, e impede o envio de mensagens de informa¸c˜ao sensorial, e o interruptor do motor apenas ignora as ordens de velocidade recebidas.

g) Estat´ısticas de condu¸c˜ao. Inclui a localiza¸c˜ao absoluta do carro, do seu fantasma e a diferen¸ca entre as duas localiza¸c˜oes.

h) Posi¸c˜ao (X,Y,Z) e rota¸c˜ao (Yaw,Roll,Pitch) do objecto actualmente seleccionado no modo de “Edi¸c˜ao”. Permite saber com exactid˜ao as coordenadas de um dado objecto no mundo e permite moviment´a-lo/rod´a-lo inserindo directamente os valores de posi¸c˜ao/rota¸c˜ao de- sejada.

De seguida ser´a explicado cada elemento que existe na cena 3D e que fornece mais in- forma¸c˜ao ao utilizador.

Figura 3.24: Janela de visualiza¸c˜ao 3D da interface gr´afica.

a) Overlay quadriculado da pista, onde cada quadrado possui 1 metro de lado. Tem como principal objectivo possibilitar a localiza¸c˜ao r´apida de um dado objecto apenas olhando para quadrado onde ele est´a, oferecendo uma no¸c˜ao de escala para quem est´a a observar a simula¸c˜ao.

b) Fantasma do carro. Possui o mesmo modelo que o carro simulado mas ´e transparente e vermelho.

c) Carro simulado.

d) Sensores de obst´aculos. Cada linha representa o raio que o sensor emite para detectar obst´aculos. Caso o sensor detecte efectivamente um obst´aculo o comprimento da linha corresponder´a `a distˆancia entre o sensor e o obst´aculo, caso contr´ario a linha fica com um tamanho fixo de 2 metros.

e) Eixos do mundo. Cada eixo X,Y,Z ´e representado por uma seta de cor diferente, estando colocados na origem da pista.

f) Informa¸c˜ao diversa sobre a cena 3D, entre a qual o n´umero de objectos vis´ıveis pelo cˆamara, o n´umero de triˆangulos que esses objectos possuem no total e, o mais importante, o n´umero de ciclos por segundo (frames per second).

g) Velocidade actual do carro, em quil´ometros por hora. `

A excep¸c˜ao do carro simulado (item c) todos os restantes elementos s˜ao apenas vis´ıveis pela cˆamara principal. Para as cˆamaras simuladas estes elementos s˜ao invis´ıveis.

Documentos relacionados