sBotics Wiki

Tutorial do Simulador usado pela OBR

Ferramentas do usuário

Ferramentas do site


editor_de_ladrilhos

Editor de Ladrilhos

No sBotics, o editor de ladrilhos oferece a capacidade de personalizar cada ladrilho da arena, permitindo um controle minucioso sobre o ambiente de simulação. Além disso, é possível importar e exportar ladrilhos para arquivos sTiles ou json, para utilizar em outras arenas. Cada ladrilho possui um conjunto de configurações padrão, que podem ser ajustadas para criar cenários únicos e desafiadores.

As configurações padrão de um ladrilho são representadas em formato JSON, conforme o exemplo abaixo:

Dados Básicos:

"image": "https://cdn.sbotics.net/connector?_token=wdwMzUKdhGpNJIO6QRcFSKbCIh4RyDEa5LzDsYAw&cmd=file&target=fls2_VGlsZXMvc3RyYWlnaHQtbGluZS5wbmc", // Imagem do ladrilho
"markable": false, // Permite checkpoints manuais (depreciado)
"has_checkpoint": false, // Indica se o ladrilho possui checkpoint
"is_ramp": false, // Indica se o ladrilho é inclinado/rampa
"is_endgoal": false, // Indica se o ladrilho é o objetivo final
"rescue_zone": false, // Indica se o ladrilho faz parte de uma sala de resgate
"enter_score": { ... },
"exit_score": { ... },
"random_type": "none" // Tipo de aleatorização (none, straight, curve)
  • “image”: URL da imagem do ladrilho.
  • “markable”: Permite a criação de checkpoints manuais (depreciado).
  • “has_checkpoint”: Indica se o ladrilho possui um checkpoint.
  • “is_ramp”: Indica se o ladrilho é uma rampa/inclinado.
  • “is_endgoal”: Indica se o ladrilho é o objetivo final da arena.
  • “rescue_zone”: Indica se o ladrilho faz parte de uma sala de resgate.
  • “exits”: Define as saídas do ladrilho, controlando a direção em que o robô pode se mover (ler mais sobre abaixo).
  • “enter_score”: Objeto de Pontuação da pontuação ao entrar no ladrilho pela primeira vez.
  • “exit_score”: Objeto de Pontuação da pontuação ao sair do ladrilho pela primeira vez.
  • “random_type”: Determina se o ladrilho pode ser substituído por outro tipo durante a aleatorização da arena (usando o botão de “dado”). Os valores possíveis são “none” (padrão/desativado), “straight” e “curve”.

Saídas do Ladrilho

No arquivo JSON de configuração do ladrilho, existe uma configuração extremamente importante para arenas com percurso/caminho: As saídas do ladrilho. As saídas do ladrilho informam aonde o simulador deve buscar o próximo ladrilho para seguir o percurso.

Todo ladrilho tem 4 lados de entrada e 5 saídas possíveis: a, A, b, B e blocked (sem saída naquele lado).

"exits": {
    "side_a": "exit_A",
    "side_b": "blocked",
    "side_A": "exit_a",
    "side_B": "blocked"
},

No sBotics, a linha formada pela arena começa pelo ladrilho final em direção a “ladrilhos-checkpoint”, sendo o último checkpoint encontrado o ladrilho que o robô vai iniciar.

Desta forma, os “side_” representam o lado do ladrilho que o robô deve sair e “exit_” o lado que o robô é suposto de entrar para sair daquele lado (já que a referência side e exit começam “ao contrário”).

Em um exemplo clássico deste sistema, é possível ver como um beco sem saída deve ser configurado pelo simulador:

Pode parecer confuso pensar que entrando por “A” se sai em “a” no ladrilho antes do beco, porém considerando que estamos seguindo a linha ao contrário faz bastante sentido.

Aviso: No Ladrilho de Início, todos os “side_” devem ser “blocked”;

Objetos

Além das configurações de ladrilhos, o editor também permite adicionar objetos à arena. Esses objetos podem ter diferentes tipos, pontuações de resgate e a capacidade de servir como pontos de evacuação (evacuation_bonus).

As propriedades dos objetos incluem:

  • Material (m): Define a cor do objeto, utilizando as cores disponíveis no sBotics:
    • Branco, Cinza, Cinza Escuro, Preto, Verde, Lima, Verde-azulado, Ciano, Azul, Roxo, Magenta, Rosa, Vermelho, Marrom, Laranja e Amarelo.
  • Tipo (t): Define o formato do objeto.
  • Peso (w): Define a massa do objeto (objetos com massa diferente de 0 são afetados pela gravidade).
  • Reiniciar Posição: Permite ativar se o objeto será reiniciado a sua posição inicial a cada nova tentativa (válido apenas para objetos não estáticos).
  • Posição (X, Y, Z): Define a posição do objeto na arena.
  • Rotação (X, Y, Z): Define a rotação do objeto (em graus).
  • Escala (X, Y, Z): Define o tamanho do objeto.
  • Pontuação de Resgate: Define a pontuação por resgatar o objeto.
Se o objeto for do tipo “Evacuation Point” (área de resgate), é possível especificar bônus para alguns tipos de resgate usando um Objeto de Pontuação para cada tipo de objeto a ser bonificado dentro de “evacuation_bonus”:

Exemplo abaixo retirado da área de resgate vermelha de arenas OBR:
"evacuation_bonus": {
    "ObjectDeadVictim": {
        "points": 0,
        "multiplier": 1.4,
        "attempt_points": [],
        "attempt_multipliers": []
    }
}

Para referenciar tipos de objetos a serem resgatados, utilize o esquema de nomeação do nome do objeto em inglês, com as iniciais em maiúsculo, precedido por “Object”: ObjectCuboid, ObjectRescueKit, ObjectLiveVictim, etc…

Se o objeto for de qualquer outro tipo, é possível definir uma pontuação que será concedida por resgatar o objeto em qualquer área de resgate, utilizando um objeto de pontuação:

"rescue_score": {
    "points": 0,
    "multiplier": 1,
    "attempt_points": [],
    "attempt_multipliers": []
}

Para alterar arenas como um todo, veja Editor de Arenas.

editor_de_ladrilhos.txt · Última modificação: 2025/04/15 16:34 por 127.0.0.1