Skip to content

Latest commit

 

History

History
109 lines (82 loc) · 3.84 KB

README.md

File metadata and controls

109 lines (82 loc) · 3.84 KB

v4s webots

Projeto Very Small Size Soccer Simulation (V4S) pelo Webots, utilizando comunicação tcp/ip.

Sobre

Robo girando
Base de uma simulação de um time de Very Small Size Soccer feita no webots. Os robôs receberão os comandos através de protocolo tcp/ip e o simulador irá rodar a partida.

A ideia é poder simular de forma realista e personalizável o time de Very Small Size Soccer da ERUS, mas pode ser modificada para simular outros robôs de Very Small Size Soccer.

Webots PROTOs

De acordo com o manual de referência do Webots:

"A PROTO node is defined in a PROTO file. A PROTO file ends with a .proto extension. It lists the fields of the PROTO and defines how these fields impact the underlying object which is defined using base nodes and/or PROTO nodes."

Neste projeto estão definidos quatro PROTOs. Neles, temos alguns campos que podem ser modificados:

v4s_soccer_field

  • fieldName : String
    O nome do objeto v4s_soccer_field
  • fieldTexture : [url]
    url da textura do campo

soccer_referee_supervisor

  • supervisorRange : float
  • supervisorBaudRate : int
  • robotController : String

Ball

  • translation : float[3]
    Posição do objeto na simulação
  • rotation : rotation
    Rotação do objeto na simulação
  • radius : float
    Raio da bola
  • mass : float
    Massa do objeto

V4SRobot

  • translation : float[3]
    Posição do objeto na simulação
  • rotation : rotation
    Rotação do objeto na simulação
  • bodyMass : float
    Massa do corpo do robô
  • wheelsMass : float
    Massa de cada roda
  • robotController : String
    Controlador (código) do robô
  • robotName : String
    Nome do robô
  • robotAppearance : Appearance
    Aparência do robô
  • wheelsAppearance : Appearance
    Aparência de cada roda
  • synchronization : Boolean

Controles

Os controles disponíveis neste projeto permitem controlar os robôs de very small size soccer de forma remota através de protocolo tcp/ip. Os robôs abrem cada um uma porta de acordo com seu time e id:

Time/id 1 2 3
Blue 40001 40002 40003
Yellow 30001 30002 30003

E utilizam JSON-RPC, um protocolo de chamada de procedimento remoto codificado em JSON, para responder aos comandos. Para fazer um robô mover-se, basta enviar para o endereço dele um objeto JSON:

{
    'method'  : 'move',
    'params'  : [vel-dir, vel-esq],
    'jsonrpc' : '2.0',
    'id'      : id
}

Para controlar e obter informações da simulação, um controle é aberto na porta 4002. Os serviços disponíveis são:

  • stop_sim : parar a simulação
  • start_sim : iniciar a simulação
  • reset_sim : reiniciar a simulação
  • reset_objects : reposicionar os objetos na posição inicial
  • get_state : obter estado de jogo (responde um dict python)

camera da simulação


E para conseguir as imagens da câmera, o método utilizado é get_frame, onde você pode utilizar com o parâmetro "array" para conseguir a imagem como um array tridimensional de inteiros com os valores RGB de cada pixel da imagem. As imagens são 240px x 200px. Um exemplo da chamada é:
{
    'method'  : 'get_frame',
    'params'  : ['array'],
    'jsonrpc' : '2.0',
    'id'      : id
}

Dados da Equipe:

O VSSS-ERUS é uma equipe dedicada a implementação do desafio Very Small Size Soccer para competições. É um projeto da ERUS - Equipe de Robótica da UFES, e diversos documentos sobre o projeto podem ser encontrados no site da equipe.

Trabalhando neste sub-projeto