Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior |
rotina [2025/04/02 15:11] – [Falha de Progresso] admin | rotina [2025/04/15 16:34] (atual) – edição externa 127.0.0.1 |
---|
====== Rotina ====== | ====== Rotina ====== |
explicar que rotina é a execução do [[Programação|código]] do usuário em uma determinada [[Arenas|arena]]. | |
| |
o 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 e reiniciar a simulação. As informações da rotina, como 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ê-la, clique 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 rotina, basta 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 “Documento”. Pode ser utilizado para gerar gráficos, ''.csv''s 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 sBotics. Ele 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 o robô navega pela arena. |
| |
| O trajeto, formado por ladrilhos, pode 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 no canto inferior da interface, com o | |
{{ contador-lop.png?400 }} | Caso o robô se desvie do trajeto esperado, um contador de falha de progresso será exibido no canto inferior da interface, indicando o tipo de falha e o tempo restante antes da penalização. No exemplo abaixo, o contador indica uma falha por inatividade do robô. |
| |
| {{ contador-lop.png?475 }} |
| |
| > Ao atingir zero, uma nova tentativa é iniciada, forçando o robô a recomeçar. |
| |
| Para falhas de progresso relacionadas ao trajeto, desviar 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 arena, sendo 50 segundos para falhas leves e 10 segundos para falhas graves na OBR. |
| |
| {{falha-leve.png?450}} {{falha-grave.png?450}} |
| |
| //Observe nas imagens acima que desviar um ladrilho é indicado por laranja, enquanto desviar dois ou mais é indicado por vermelho.// |
| |
===== Painel de Tentativas ===== | ===== Painel de Tentativas ===== |
| |
{{ rotina-painel.png?200}} | {{ rotina-painel.png?200}} |
com o 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 o status (em relação a tentativas e trajetos) da rotina | |
| |
^ {{ icons8-fuse-symbol-100.png?64 }} ^ {{ icons8-refresh-100.png?64 }} ^ {{ icons8-return-90.png?64 }} ^ | 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. |
| |
| ^ {{ icons8-fuse-symbol-100.png?64 }} ^ {{ icons8-refresh-100.png?64 }} ^ {{ icons8-return-90.png?64 }} ^ |
^ Trajeto ^ Tentativa ^ Total de Tentativas ^ | ^ 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. | | | Número do trajeto atual | Número da tentativa no trajeto atual | Número total de tentativas em todos os trajetos | |
| |
| > //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". |
| |
> //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 | |
==== Nova Tentativa / Avançar ==== | ==== Nova Tentativa / Avançar ==== |
é possível tentar de novo trajeto ou avançar para o próximo [MELHORAR], isto reinicia a posição do robô e **reinicia o código completamente**. | |
| |
**Note que:** Em algumas arenas, o botão de "Avançar" só poderá ser pressionado após um número mínimo de tentativas (no caso da OBR, 3). | É possível reiniciar o trajeto atual ou avançar para o próximo, reiniciando a posição do robô e o código. |
| |
| Observação: Em algumas arenas, o botão "Avançar" só estará disponível após um número mínimo de tentativas (3 na OBR). |
| |
| > Para manter valores entre tentativas, utilize variáveis estáticas: "''estatico numero''" / "''estatico texto''" / "''estatico booleano''" em rEduc ou 'static double' / 'static string' / 'static bool' em C#. |
| |
> 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#. | |
===== Relatório de Execução ===== | ===== 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ô pontuou, falhou, etc. Este relatório detalhado também é enviado pelo sistema de competições para recriar o funcionamento do robô e evitar trapaças. | O relatório de execução, exibido na parte inferior do painel de tentativas, registra os eventos da rotina em dois formatos: simplificado e detalhado. |
| |
| Ambos os relatórios permitem recriar o percurso do robô e identificar os pontos de pontuação e falha. O relatório detalhado é utilizado pelo sistema de competições para verificar a integridade da execução. |
| |
| **Exemplo de trecho do Relatório:** |
| |
**Exemplo de trecho de Relatório:** | |
<code> | <code> |
[0:00] Pontuação adicionada; | [0:00] Pontuação adicionada; |
↳ 5 Pts. (×1,00); | ↳ 5 Pts. (×1,00); |
↳ 1 @ 1. | ↳ 1 @ 1. |
| |
[0:00] Entrou no ladrilho pela primeira vez: 0; | [0:00] Entrou no ladrilho pela primeira vez: 0; |
| |
[0:11] Pontuação adicionada; | [0:11] Pontuação adicionada; |
↳ 15 Pts. (×1,00); | ↳ 15 Pts. (×1,00); |
↳ 1 @ 1. | ↳ 1 @ 1. |
</code> | </code> |