O que mudou depois de 0.17.1?
| Área | Novo comportamento | Limite prático |
|---|---|---|
| Eixos do controlador | Mapeie cada comando stick para left_x, left_y, right_x, right_y ou nenhum; definir inversão e ganho. Os limites de caminhada, cabeça, corpo e rolo têm chaves separadas. | Isso muda o que o bloco pede, não a velocidade física comprovada ou habilidade política. As substituições locais podem ser diferentes. |
| Silêncio UDP curto | Depois de stale_ms sem um quadro de pad aceito, a caminhada para onde está; o bloqueio do remetente e o estado do botão retido permanecem. | O stale_ms padrão é 300 ms, não uma parada de emergência instantânea de hardware. |
| Silêncio UDP longo | Em timeout_ms, o cliente conta como desaparecido, seu bloqueio e retenção são liberados e o robô posteriormente tenta sentar se estiver em pé. | O timeout_ms padrão é 1000 ms e a solicitação sit ocorre cerca de um segundo depois. Uma habilidade ocupada pode recusar antes de tentar novamente. |
| Pacotes atrasados | Um datagrama suficientemente atrasado é descartado; enquanto os pacotes chegam, os resumos de links do netpadd relatam percentis de atraso, quedas tardias e paralisações. | Estes são diagnósticos e implementação upstream, não uma medição de rede feita por este site. |
O artigo 0.17.1 anterior registra essa versão, incluindo seu antigo tempo limite do cliente de 250 ms. Não leve esse número para 0.17.2: a nova configuração tem stale_ms = 300 e timeout_ms = 1000. O pad USB/Bluetooth e o pad UDP ainda compartilham o mesmo mapa de botões, mas o serviço UDP opcional é o escopo do tempo de rede de dois estágios. Daemon estável anterior 0.17.1 · 12 de outubro ↗ Daemon estável oficial 0.17.2 · 13 de outubro ↗ Fixado 0.17.2 UDP pad timing e diagnóstico de link ↗.
Registre a versão instalada e as substituições primeiro.
robotctl version
robotctl update status
robotctl update check daemon
robotctl configure --list
robotctl pad bindings
robotctl policy list
robotctl healthupdate check daemon verifica a fonte estável sem instalar. Salve a versão real da placa, substituições de configuração, ligações de botões e lista de políticas. Uma encomenda sem robô não tem nada para atualizar. O manifesto oficial da política v8 permanece inalterado desde a revisão de 13 de outubro; a liberação de um daemon não prova que um robô executa essa política. Controlador 0.17.2 fixado e comandos de atualização ↗ Manifesto oficial do conjunto de políticas v8 inalterado ↗.
Remapear mantém uma edição estreita e reversível.
Em um robô oficial compatível, execute sudo robotctl configure e pesquise pad_axes. O exemplo abaixo avança/trás no controle direito, gira com o controle esquerdo com ganho de 0,7 e estreita a faixa de comando de avanço/trás solicitada. É TOML para entrar no editor, não um comando shell:
[pad_axes.drive.vx]
source = "right_y"
[pad_axes.drive.vyaw]
source = "left_x"
gain = 0.7
[pad_drive]
vx_min = -0.2
vx_max = 0.3O modo de direção enviado (D-pad esquerdo) usa Y esquerdo para frente/trás, X esquerdo para metralhar e X direito para guinada, com as direções de metralhamento e guinada invertidas. A zona morta padrão é 0,1 e cada ligação começa no ganho 1,0. Os campos ausentes mantêm a origem e a direção enviadas. gain aplica-se antes da fixação até a deflexão total; source = "none" desativa esse comando. Remova uma substituição para retornar esse modo ao padrão. As alterações no eixo do pad e no limite da unidade atingem os controladores Bluetooth e UDP em cerca de um segundo, sem reiniciar os serviços; uma edição inválida deixa o mapeamento anterior ativo e é registrado. Mantenha o robô apoiado e teste um eixo de cada vez, pois um erro de sinal ou modo pode movê-lo inesperadamente. Alterar netpad.enabled, por outro lado, altera qual daemon de pad é executado e segue seu procedimento separado de aplicação/reinicialização. Controlador 0.17.2 fixado e comandos de atualização ↗ Padrões de eixo de almofada fixados e validação de substituição ↗ Robotctl configurado aplicar comportamento fixado ↗.
Entenda os dois limites de perda de UDP.
O pad UDP opcional permanece desativado por padrão e é apenas para LAN confiável: a porta 4210 não possui autenticação ou criptografia. Em 0.17.2, stale_ms é padronizado como 300 e deve estar abaixo de [safety] deadman_ms (padrão 500); timeout_ms o padrão é 1000 e deve ser pelo menos stale_ms. No primeiro limiar o robô para de andar enquanto o remetente mantém sua sessão. Se a nova entrada for retomada antes do segundo limite, esse remetente poderá continuar; o antigo estado do stick não é reproduzido. No segundo limite, a sessão é liberada e a resposta comum de ausência de pad pode solicitar uma parada cerca de um segundo depois. Nenhum dos estágios garante uma parada física imediata ou um assento bem-sucedido em todas as posturas. Sincronização do pad UDP 0.17.2 fixado e diagnóstico de link ↗ Exemplos de configuração de controlador fixado e netpad ↗ Implementação de datagrama UDP obsoleto e atrasado fixado ↗.
O receptor também rejeita datagramas que chegam tarde demais em relação à entrega mais rápida desse fluxo, portanto, pressionar botões em uma lista de pendências de Wi-Fi na fila não deve ser acionado após o fato. Enquanto os datagramas continuam chegando, ele registra um resumo link: para aproximadamente cada janela de amostra de dez segundos com p50/p99/max adicionado atraso, quedas tardias e paralisações. Uma interrupção completa de entrada não precisa produzir um novo resumo. Um remetente personalizado que define seu campo de carimbo de data/hora como zero não recebe essa verificação de atraso; o duckctl udp-pad oficial usa o caminho do cliente publicado. Estas são regras de software, não uma promessa sobre qualquer rede sem fio. Para inspecionar um daemon UDP em execução no robô:
journalctl -u netpadd -bO pacote de laptop duckctl 0.17.2 foi publicado para macOS, Linux e Windows. O guia de configuração UDP anterior ainda explica a ativação de LAN confiável; use os tempos 0.17.2 acima após a atualização. Publicado pacote de laptop duckctl 0.17.2 ↗.
Atualize somente quando a fonte estável e a placa corresponderem.
Apoie o robô, mantenha a energia estável e permita que os serviços daemon sejam reiniciados. Se o verificador estável oferecer 0.17.2 para a placa declarada, instale intencionalmente:
sudo robotctl update apply daemonCompare a versão em execução, a configuração, as ligações, a lista de políticas, o histórico de integridade e de atualização com a linha de base salva. Substituições de joystick configuradas e slots de política carregados manualmente merecem inspeção explícita; este site não possui nenhum resultado de atualização física para substituir essa verificação.
robotctl version
robotctl configure --list
robotctl pad bindings
robotctl policy list
robotctl health
robotctl update log
robotctl update showSe a atualização falhar, inspecione update show e update log antes de agir. Uma reversão manual do daemon precisa de uma versão anterior já instalada nessa placa e não reverte o conjunto de políticas v8 com versão independente:
sudo robotctl update rollback daemon
robotctl version
robotctl healthVerificação da fonte: . O escopo da verificação é indicado no guia; a revisão da fonte por si só não é um teste de hardware.
Para onde ir a seguir.
Diagnóstico MicroDuck: controle, CUDA e ONNX
Diferencie conexão Bluetooth, driver e botões antes de investigar problemas de navegador, instalação ou modelo.
Políticas MicroDuck: v8, substituições e restauração
Confira conjunto oficial e slot walk; atualizar o daemon não garante substituir uma política carregada manualmente.
O que você gostaria de entender a seguir?
Mantenha a fonte, seu ambiente e suas observações juntos.
Fontes e data de revisão
Fontes verificadas em 14 de outubro de 2026 · Fonte revisada
- Fonte original 1 · github.com / daemon-v0.17.1 ↗
- Fonte original 2 · github.com / daemon-v0.17.2 ↗
- Fonte original 3 · github.com / latest ↗
- Fonte original 4 · github.com / cheatsheet.md ↗
- Fonte original 5 · github.com / udp-pad.md ↗
- Fonte original 6 · github.com / pad_axes.rs ↗
- Fonte original 7 · github.com / robotd.toml ↗
- Fonte original 8 · github.com / configure.rs ↗
- Fonte original 9 · github.com / receiver.rs ↗
- Fonte original 10 · pypi.org / 0.17.2 ↗
- Fonte original 11 · huggingface.co / manifest.json ↗