sBotics Wiki

Tutorial do Simulador usado pela OBR

Ferramentas do usuário

Ferramentas do site


rotina

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
rotina [2025/04/02 15:09] – [Relatório de Execução] adminrotina [2025/04/15 16:34] (atual) – edição externa 127.0.0.1
Linha 1: Linha 1:
 ====== Rotina ====== ====== Rotina ======
-explicar que rotina é a execução do [[Programação|código]] do usuário em uma determinada [[Arenas|arena]].  
  
-painel de rotina fica no canto superior esquerdo do sbotics e a visualização dos dados da rotina (como pontuação, tempo e multiplicadores) estão localizados no centro-topo da tela, como mostrados na imagem abaixo.+A rotina representa a execução do [[Programação|código]] do usuário em uma arena específica. O painel de rotina, localizado no canto superior esquerdo do sBotics, permite iniciar, parar reiniciar simulação. As informações da rotinacomo pontuação, tempo e multiplicadores, são exibidas no centro superior da tela, conforme ilustrado na imagem abaixo.
  
 {{ rotina-barra.png }} {{ rotina-barra.png }}
  
-a rotina é executada ao clicar no símbolo de play, e parada clicando no quadrado no mesmo local. +Para iniciar a rotina, clique no símbolo de "play". Para interrompê-laclique no quadrado no mesmo local. Caso deseje reiniciar o cenário, utilize o ícone de reinício (''↺'').
- +
-caso o usuário queira reiniciar todo o cenário para recomeçar a rotinabasta clicar no ícone de reinicio, representado por um círculo com uma seta (''↺'').+
  
 ===== Console ===== ===== Console =====
-o console é o principal método de saída/output do simulador sBotics (junto com o componente Buzzer e o LED). o usuário pode imprimir valores de sensores, escrever textos e descrever o passo-a-passo por texto do que o robô está executando 
  
-{{  console.png  }}+O console é a principal ferramenta de saída de dados no sBotics, juntamente com o componente Buzzer e o LED. Ele permite imprimir valores de sensores, exibir textos e descrever o passo a passo da execução do robô. 
 + 
 +{{ console.png }} 
 + 
 +> É possível limpar o console manualmente através do ícone de vassoura e acessar o registro detalhado clicando no ícone de documento, ambos localizados na parte direita do painel.
  
-> também é possível limpar o console manualmente através do ícone de vassoura e abrir o registro no ícone de documento, ambos presentes na direita do painel de console. 
 ==== Registro ==== ==== Registro ====
-O arquivo de registro é como um console mas que fica inteiramente fora do sBotics em um arquivo separado. Ele pode ser acessado através do painel de console clicando no ícone de DocumentoPode ser utilizado para gerar gráficos, ''.csv''e outras implementações complexas que o usuário queira fazer fora do sBotics a partir de dados gerados dentro do sBotics.+ 
 +O arquivo de registro, acessível através do ícone de "Documento" no painel do console, é um registro externo ao sBoticsEle permite gerar gráficos, arquivos ''.csv'' e outras implementações complexas a partir dos dados gerados durante a simulação.
  
 ===== Pontuador/Tracker ===== ===== Pontuador/Tracker =====
-o sbotics pontua a rotina baseado nos ladrilhos. ladrilhos possuem uma determinada pontuação e conforme o robô vai navegando esses ladrilhos a pontuação do ladrilho superado vai sendo somada (ou multiplicada) ao total. 
  
-o trajeto do sBotics formado por ladrilhos pode ser subdividido em partes menores (pelo uso de "**Checkpoints**")chamadas de "trajetos". Uma arena típica do sBotics pode ter 1, 2, 3 ou infinitos trajetos. Sair do caminho correto do trajeto pode resultar em uma "**Falha de Progresso**"+O sBotics utiliza ladrilhos para pontuar a rotina. Cada ladrilho possui um valor de pontuação, que é somado (ou multiplicado) ao total conforme robô navega pela arena. 
 + 
 +trajetoformado por ladrilhospode ser dividido em segmentos menores, chamados de "trajetos", utilizando "Checkpoints". Uma arena típica do sBotics pode conter um ou mais trajetos. Desviar do trajeto correto pode resultar em uma "Falha de Progresso".
  
 ==== Trajeto / Checkpoints ==== ==== Trajeto / Checkpoints ====
-como citado anteriormente, o trajeto é dividido em checkpoints. com o painel de rotina aberto, é possível visualizar os ladrilhos checkpoints pelo símbolo de seta laranja que aparece neles. a seta aponta na direção do trajeto que o robô será recolocado quando uma tentativa for iniciada naquele checkpoint. Caso o trajeto passe por aquele ladrilho em posições diferentes, múltiplas setas aparecerão. 
  
-desta forma, a arena abaixo quando considerados os checkpoints é subdividida em pequenas frações, e estas chamamos de "trajetos".+Como mencionado anteriormente, o trajeto é subdividido em checkpoints. No painel de rotina, os ladrilhos checkpoints são identificados por setas laranjas, que indicam a direção em que o robô será reposicionado ao iniciar uma nova tentativa a partir daquele checkpoint. Se o trajeto passar pelo mesmo ladrilho em posições diferentes, múltiplas setas serão exibidas. 
 + 
 +Dessa forma, a arena abaixo, ao considerar os checkpointsé segmentada em pequenos trajetos.
  
 {{arena.png?450}} {{arena-trajeto.png?450}} {{arena.png?450}} {{arena-trajeto.png?450}}
  
 ==== Falha de Progresso ==== ==== Falha de Progresso ====
-também como citado anteriormente, caso o robô saia do trajeto esperado um contador pode iniciar  
  
-===== Painel de Tentativas ===== +Caso robô se desvie do trajeto esperado, um contador de falha de progresso será exibido no canto inferior da interfaceindicando tipo de falha o tempo restante antes da penalização. No exemplo abaixo, o contador indica uma falha por inatividade do robô.
-{{ rotina-painel.png?200}} +
-com painel de rotina abertoé possível realizar novas tentativas ou pular para outras partes do percurso caso opção esteja disponível. também é possível visualizar status (em relação a tentativas trajetos) da rotina+
  
-{{ icons8-fuse-symbol-100.png?64 }}    ^ {{ icons8-refresh-100.png?64 }}  ^  {{ icons8-return-90.png?64 }}  ^ +{{ contador-lop.png?475 }}
-^  Trajeto  ^  Tentativa  ^  Total de Tentativas +
-| Número do trajeto que o robô está navegando. | Qual a tentativa dentro daquele trajeto. | Número de tentativas totais em todos os trajetos até o momento. |+
  
-//Note:// o painel de tentativas e novas tentativas etc só conseguem ser utilizadas se a arena for do tipo "linha"/"trajeto"arenas que não possuem trajetos não tem suporte a estas funcionalidades +Ao atingir zerouma nova tentativa é iniciada, forçando robô recomeçar.
-==== Nova Tentativa / Avançar ==== +
-é possível tentar de novo trajeto ou avançar para próximo [MELHORAR], isto reinicia posição do robô e **reinicia o código completamente**.+
  
-**Note que:** Em algumas arenaso botão de "Avançarsó poderá ser pressionado após um número mínimo de tentativas (no caso da OBR3).+Para falhas de progresso relacionadas ao trajetodesviar mais de dois ladrilhos resulta em uma falha "grave", enquanto desviar apenas um ladrilho resulta em uma falha "leve". O tempo concedido para correção varia de acordo com a configuração da arenasendo 50 segundos para falhas leves e 10 segundos para falhas graves na OBR.
  
-> Para manter valores entre tentativas, utilize **variáveis estáticas**, utilizando "''estatico numero''" / "''estatico texto''" / "''estatico booleano''" em rEduc ou 'static double' / 'static string' / 'static bool' em C#. +{{falha-leve.png?450}} {{falha-grave.png?450}}
-===== Relatório de Execução ===== +
-O que ocorre na rotina é salvo na parte inferior do painel de tentativas em dois relatórios (logs): Um ''simplificado'' e um ''detalhado''.+
  
-Ambos os logs permitem o usuário recriar o caminho do robô e entender em que parte do trajeto da linha o robô pontuoufalhou, etc. Este relatório detalhado também é enviado pelo sistema de competições para recriar o funcionamento do robô e evitar trapaças.+//Observe nas imagens acima que desviar um ladrilho é indicado por laranjaenquanto desviar dois ou mais é indicado por vermelho.//
  
-Exemplo de Relatório +===== Painel de Tentativas =====
-<code> +
-[0:00] Pontuação adicionada; +
-  ↳ 5 Pts. (×1,00); +
-  ↳ 1 @ 1.+
  
-[0:00] Entrou no ladrilho pela primeira vez: 0;+{{ rotina-painel.png?200}}
  
-[0:05] Superou ladrilho: 0;+O painel de rotina permite iniciar novas tentativas e avançar para outros trajetos, caso disponível. Ele também exibe o status da rotina em relação a tentativas e trajetos.
  
-[0:05] Entrou no ladrilho pela primeira vez: 1;+^ {{ icons8-fuse-symbol-100.png?64 }} ^ {{ icons8-refresh-100.png?64 }} ^ {{ icons8-return-90.png?64 }} ^ 
 +^  Trajeto  ^  Tentativa  ^  Total de Tentativas 
 +| Número do trajeto atual | Número da tentativa no trajeto atual | Número total de tentativas em todos os trajetos |
  
-[0:11] Pontuação adicionada; +> //Observação:// O painel de tentativas e as funcionalidades de nova tentativa e avanço só estão disponíveis em arenas do tipo "linha/trajeto".
-  ↳ 15 Pts. (×1,00); +
-  ↳ 1 @ 1.+
  
-[0:11] Pontuação adicionada; +==== Nova Tentativa / Avançar ====
-  ↳ 25 Pts. (×1,00); +
-  ↳ 1 @ 1.+
  
-[0:11] Superou ladrilho: 1;+É possível reiniciar o trajeto atual ou avançar para o próximo, reiniciando a posição do robô e o código.
  
-[0:11] Entrou no ladrilho pela primeira vez: 2;+ObservaçãoEm algumas arenas, o botão "Avançar" só estará disponível após um número mínimo de tentativas (3 na OBR).
  
-[0:18] Pontuação adicionada; +> Para manter valores entre tentativasutilize variáveis estáticas: "''estatico numero''" / "''estatico texto''" / "''estatico booleano''" em rEduc ou 'static double' / 'static string' / 'static bool' em C#.
-  ↳ 35 Pts. (×1,00); +
-  ↳ 1 @ 1.+
  
-[0:18] Superou ladrilho: 2;+===== Relatório de Execução =====
  
-[0:18] Entrou no ladrilho pela primeira vez: 3;+O relatório de execução, exibido na parte inferior do painel de tentativas, registra os eventos da rotina em dois formatossimplificado e detalhado.
  
-[0:28] Pontuação adicionada; +Ambos os relatórios permitem recriar o percurso do robô e identificar os pontos de pontuação e falhaO relatório detalhado é utilizado pelo sistema de competições para verificar a integridade da execução.
-  ↳ 45 Pts(×1,00); +
-  ↳ 1 @ 1.+
  
-[0:28] Superou ladrilho: 3;+**Exemplo de trecho do Relatório:**
  
-[0:28Entrou no ladrilho pela primeira vez: 4;+<code> 
 +[0:00Pontuação adicionada; 
 +↳ 5 Pts. (×1,00); 
 +↳ 1 @ 1.
  
-[0:35Pontuação adicionada; +[0:00Entrou no ladrilho pela primeira vez: 0;
-  ↳ 60 Pts. (×1,00); +
-  ↳ 1 @ 1.+
  
-[0:35] Superou ladrilho: 4;+[0:05] Superou ladrilho: 0;
  
-[0:35Pontuação adicionada; +[0:05Entrou no ladrilho pela primeira vez: 1;
-  ↳ 85 Pts. (×1,00); +
-  ↳ 1 @ 1.+
  
-[0:35] Entrou no ladrilho pela primeira vez: 5; +[0:11] Pontuação adicionada; 
- +↳ 15 Pts. (×1,00); 
-[0:41] Superou ladrilho: 5; +↳ 1 @ 1.
- +
-[0:41] Entrou no ladrilho pela primeira vez: 6; +
- +
-[0:48] Pontuação adicionada; +
-  ↳ 90 Pts. (×1,00); +
-  ↳ 1 @ 2. +
- +
-[0:48] Superou ladrilho: 6; +
- +
-[0:48] Entrou no ladrilho pela primeira vez: 7; +
- +
-[0:56] Pontuação adicionada; +
-  ↳ 100 Pts. (×1,00); +
-  ↳ 1 @ 2. +
- +
-[0:56] Superou ladrilho: 7; +
- +
-[0:56] Entrou no ladrilho pela primeira vez: 8; +
- +
-[1:04] Pontuação adicionada; +
-  ↳ 110 Pts. (×1,00); +
-  ↳ 1 @ 2. +
- +
-[1:04] Pontuação adicionada; +
-  ↳ 120 Pts. (×1,00); +
-  ↳ 1 @ 2. +
- +
-[1:04] Superou ladrilho: 8; +
- +
-[1:04] Entrou no ladrilho pela primeira vez: 9; +
- +
-[1:13] Pontuação adicionada; +
-  ↳ 130 Pts. (×1,00); +
-  ↳ 1 @ 2. +
- +
-[1:13] Superou ladrilho: 9; +
- +
-[1:13] Pontuação adicionada; +
-  ↳ 155 Pts. (×1,00); +
-  ↳ 1 @ 2. +
- +
-[1:13] Entrou no ladrilho pela primeira vez: 10; +
- +
-[1:21] Superou ladrilho: 10; +
- +
-[1:21] Entrou no ladrilho pela primeira vez: 11+
- +
-[1:28] Superou ladrilho: 11; +
- +
-[1:28] Entrou no ladrilho pela primeira vez: 14; +
- +
-[1:33] Nova Tentativa; +
-  ↳ 155 Pts. (×1,00); +
-  ↳ 2 @ 3. +
- +
-[1:33] Entrou no ladrilho: 10; +
- +
-[1:33] Pulo de trilha; +
- +
-[1:39] Entrou no ladrilho: 11; +
- +
-[1:45] Entrou no ladrilho: 14; +
- +
-[1:55] Entrou no ladrilho: 14; +
- +
-[2:08] Entrou no ladrilho: 14; +
- +
-[2:16] Entrou no ladrilho: 14; +
- +
-[2:27] Entrou no ladrilho: 14; +
- +
-[2:37] Entrou no ladrilho: 14; +
- +
-[2:38] Entrou no ladrilho: 14; +
- +
-[2:41] Entrou no ladrilho: 14; +
- +
-[2:42] Entrou no ladrilho: 14; +
- +
-[2:44] Entrou no ladrilho: 14; +
- +
-[2:51] Entrou no ladrilho: 14; +
- +
-[2:55] Entrou no ladrilho: 14; +
- +
-[2:56] Entrou no ladrilho: 14; +
- +
-[3:01] Entrou no ladrilho: 14; +
- +
-[3:11] Entrou no ladrilho: 14; +
- +
-[3:13] Entrou no ladrilho: 14; +
- +
-[3:16] Entrou no ladrilho: 14; +
- +
-[3:16] Entrou no ladrilho: 14; +
- +
-[3:22] Resgatou objeto; +
- +
-[3:22] Resgate Correto (Bonus); +
- +
-[3:22] Pontuação adicionada; +
-  ↳ 155 Pts. (×1,30); +
-  ↳ 2 @ 3. +
- +
-[3:39] Entrou no ladrilho: 14; +
- +
-[3:39] Entrou no ladrilho: 14; +
- +
-[3:50] Entrou no ladrilho: 14; +
- +
-[3:51] Entrou no ladrilho: 14; +
- +
-[4:01] Resgatou objeto; +
- +
-[4:01] Resgate Correto (Bonus); +
- +
-[4:01] Pontuação adicionada; +
-  ↳ 155 Pts. (×1,69); +
-  ↳ 2 @ 3. +
- +
-[4:03] Entrou no ladrilho: 14; +
- +
-[4:15] Entrou no ladrilho: 14; +
- +
-[4:19] Entrou no ladrilho: 14; +
- +
-[4:29] Entrou no ladrilho: 14; +
- +
-[4:29] Nova Tentativa; +
-  ↳ 155 Pts. (×1,69); +
-  ↳ 3 @ 3. +
- +
-[4:29] Entrou no ladrilho: 10; +
- +
-[4:29] Pulo de trilha; +
- +
-[4:30] Nova Tentativa; +
-  ↳ 155 Pts. (×1,69); +
-  ↳ 4 @ 3. +
- +
-[4:30] Entrou no ladrilho: 10; +
- +
-[4:31] Avançar; +
-  ↳ 155 Pts. (×1,69); +
-  ↳ 1 @ 4. +
- +
-[4:31] Entrou no ladrilho: 17; +
- +
-[4:37] Superou ladrilho: 17; +
- +
-[4:37] Entrou no ladrilho pela primeira vez: 18; +
- +
-[4:43] Pontuação adicionada; +
-  ↳ 175 Pts. (×1,69); +
-  ↳ @ 4. +
- +
-[4:43] Superou ladrilho: 18; +
- +
-[4:43] Entrou no ladrilho pela primeira vez: 19; +
- +
-[4:51] Superou ladrilho: 19; +
- +
-[4:51] Entrou no ladrilho pela primeira vez: 20; +
- +
-[4:57] Fora da trilha; +
- +
-[5:00] Rotina encerrada; +
-  ↳ 175 Pts. (×1,69); +
-  ↳ 1 @ 4. +
- +
-[5:00] Pontos: 296;+
 </code> </code>
rotina.1743606567.txt.gz · Última modificação: 2025/04/15 16:34 (edição externa)