Ir para o conteúdo
Fonte revisada

MicroDuck 0.17.1: controle UDP e recuperação

Confira versões de 12 de outubro, entrada UDP opcional em LAN confiável e atualização de políticas separada do daemon.

Em 13 de outubro, GitHub marcava 0.17.1, publicada dia 12, como estável mais recente. Desde 0.16.2, X/Y/LB/RB não têm função padrão. 0.17.0 adiciona controle UDP opcional para LAN confiável; duckctl pode rodar no notebook via uvx.
A Pollen Robotics lançou o daemon estável 0.16.2 às 12h28 UTC, 0.16.3 às 12h35, 0.17.0 às 13h11 e 0.17.1 às 14h22 em 12 de outubro de 2026. O GitHub apontou mais recentemente para 0.17.1 nesta revisão de 13 de outubro. Este site verificou os lançamentos e a fonte fixa; ele não atualizou nem dirigiu um robô físico.

Qual lançamento trouxe qual mudança?

Mudanças estáveis após 0.16.1
LiberarMudança visível ao usuárioO que verificar
Daemon estável oficial 0.16.2 · 12 de outubro ↗Os chutes com LB/RB deixam de ter associação padrão; X/Y/LB/RB ficam disponíveis para habilidades. A faixa padrão dos comandos de avanço e recuo passa a ±0,4 m/s, e a de rotação a ±1,0 rad/s. O relaxamento das articulações após uma queda fica ativado por padrão. O script de inicialização aponta para o conjunto de políticas v8.Esses são padrões de configuração e limites de comando, não velocidade medida ou prova de que sua política instalada foi alterada. As substituições locais persistem.
Daemon estável oficial 0.16.3 · 12 de outubro ↗Corrige um classificador de pacote PyPI para duckctl.Esta é uma correção de empacotamento, não um recurso de movimento adicional.
Daemon estável oficial 0.17.0 · 12 de outubro ↗Adiciona netpadd opcional: um gamepad de laptop pode enviar o estado do pad por UDP em uma LAN confiável.Ele está desabilitado por padrão e desliga o daemon do teclado Bluetooth enquanto estiver habilitado.
Daemon estável oficial 0.17.1 · 12 de outubro ↗Suprime o alerta para uma queda do pad em menos de um segundo. duckctl udp-pad pode descobrir um robô nomeado sem um IP; macOS Y é invertido por padrão.Uma perda sustentada ainda segue o caminho deadman/sit. Verifique a versão do daemon em execução e a orientação do pad.

O guia 0.16.1 mais antigo descreve com precisão esse lançamento, quando LB/RB eram chutes. Na versão 0.16.2 e posterior, inspecione robotctl pad bindings antes de esperar qualquer ação bumper; as vinculações definidas manualmente podem ser diferentes. Os valores de velocidade 0,16,2 são limites de comando solicitados, não uma velocidade máxima medida. Gamepad 0.17.1 fixado e referência de atualização ↗ Padrões e parâmetros de segurança do robotd fixados ↗.

Salve o estado de execução antes de uma atualização.

Linha de base do robô somente leitura
robotctl version
robotctl update status
robotctl update check daemon
robotctl configure --list
robotctl pad bindings
robotctl policy list
robotctl policy check
robotctl health

update check daemon verifica a fonte estável sem instalar. Mantenha a versão específica da placa, a configuração local, as ligações reais do pad e a lista de políticas juntas. Uma encomenda sem robô não tem daemon para atualizar. Gamepad 0.17.1 fixado e referência de atualização ↗.

Use duckctl no laptop quando for útil.

Pollen Robotics publica duckctl 0.17.1 para Linux, macOS e Windows. Com uv já instalado, uvx duckctl --name ROBOT_NAME info executa o cliente empacotado; este é um comando de laptop, não uma instalação de daemon no robô. O pad UDP opcional pode usar um IP literal do robô sem descoberta de Bluetooth:

No laptop, substitua o IP de exemplo
uvx duckctl udp-pad 192.168.1.42

Sem IP, uvx duckctl --name ROBOT_NAME udp-pad resolve o robô via Bluetooth; DUCK_ROBOT também pode selecionar um robô. No macOS 0.17.1 já inverte Y por padrão; adicione --invert-y somente se a direção real do stick ainda estiver errada. Este site verificou a publicação e a fonte do pacote, não uma conexão de pad. Instalação do duckctl fixada e comandos de laptop ↗ Pacote duckctl publicado e rodas de plataforma ↗.

Habilite o UDP apenas em um robô oficial compatível e em uma LAN confiável.

O controle UDP está desativado por padrão. Sua porta 4210 liga IPv4 em todas as interfaces quando habilitada, sem autenticação ou criptografia. Qualquer pessoa que possa alcançá-lo pode dirigir ou desligar o robô. Não é um caminho de controle remoto da Internet. No robô, use sudo robotctl configure para definir netpad.enabled = true, salve e aceite seu plano para reiniciar ambos os daemons de pad. Se você editou o arquivo manualmente ou ignorou a etapa de aplicação, execute a reinicialização você mesmo; não interrompa o pad duas vezes sem motivo: Fixado robotctl configure apply e comportamento de reinicialização de serviço ↗.

Somente se o configure não se aplica: reinicie e verifique
sudo systemctl restart padd netpadd
systemctl is-active padd netpadd

Na saída de verificação, padd deve estar inativo e netpadd ativo. Se o configure já tiver aplicado sua reinicialização, execute systemctl is-active padd netpadd sem a reinicialização extra. A configuração sobrevive à reinicialização e atualização de software até ser desligada. Para restaurar o Bluetooth, defina netpad.enabled = false com sudo robotctl configure e aceite o plano de aplicação de dois serviços (ou reinicie ambos manualmente apenas se tiver sido ignorado); espere ativo/inativo nessa ordem. Se nenhum dos serviços for iniciado, inspecione o diário:

Diagnosticar os daemons do pad
systemctl is-active padd netpadd
journalctl -u netpadd -b -n 80

CONNECTED significa que este remetente foi aceito; REFUSED significa que outro remetente possui o robô. Sem pad, duckctl não envia nada. Ctrl-C finaliza o envio; o robô para após o tempo limite de homem morto configurado e tenta sentar cerca de um segundo depois, se estiver em pé. Isso é um comportamento retardado do software, não uma garantia de parada física instantânea. O tempo limite da rede é padrão de 250 ms e deve estar abaixo da configuração de homem morto do robô; evite alterá-lo sem ler os limites documentados. Fixado configuração do pad UDP 0.17.1, limite de confiança e recuperação ↗.

Atualize o daemon e o conjunto de políticas como decisões separadas.

Se o verificador estável oferecer um daemon compatível com a placa, dê suporte ao robô, mantenha a energia estável e permita a reinicialização dos serviços. Instale intencionalmente e compare a versão em execução, as ligações, as políticas e a integridade com a linha de base salva:

Instale um daemon estável disponível
sudo robotctl update apply daemon
Verifique o que está realmente rodando
robotctl version
robotctl pad bindings
robotctl policy list
robotctl health
robotctl update log
robotctl update show

O script inicial mudou sua tag de política padrão para v8 em 0.16.2, mas a política oficial definiu versões de forma independente. Verifique robotctl policy check e policy list ; um slot de caminhada carregado manualmente permanece uma substituição após uma atualização oficial do conjunto. O manifesto v8 velstand relata uma recuperação de queda mais suave e melhor rastreamento de guinada, enquanto o autor do RL ainda relata curvas fracas ou em rajadas a 0,3 rad/s. Nenhuma das declarações é uma medida deste site. Script de semente de política oficial fixado ↗ Manifesto oficial do conjunto de políticas na revisão v8 fixa ↗ Desenvolvimento e limites de RL velstand v8 fixados ↗.

Se a atualização do daemon falhar, leia update show e update log primeiro. A reversão manual requer uma versão anterior do daemon já instalada naquela placa; ele não restaura um conjunto de políticas atualizado separadamente:

Reverter somente quando um daemon anterior estiver instalado
sudo robotctl update rollback daemon
robotctl version
robotctl health

Para onde ir a seguir.

CONTINUE A CONVERSA

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 13 de outubro de 2026 · Fonte revisada

  1. Fonte original 1 · github.com / daemon-v0.16.2 ↗
  2. Fonte original 2 · github.com / daemon-v0.16.3 ↗
  3. Fonte original 3 · github.com / daemon-v0.17.0 ↗
  4. Fonte original 4 · github.com / daemon-v0.17.1 ↗
  5. Fonte original 5 · github.com / latest ↗
  6. Fonte original 6 · github.com / cheatsheet.md ↗
  7. Fonte original 7 · github.com / udp-pad.md ↗
  8. Fonte original 8 · github.com / configure.rs ↗
  9. Fonte original 9 · github.com / duckctl.md ↗
  10. Fonte original 10 · github.com / lib.rs ↗
  11. Fonte original 11 · github.com / robotd.toml ↗
  12. Fonte original 12 · pypi.org / 0.17.1 ↗
  13. Fonte original 13 · huggingface.co / manifest.json ↗
  14. Fonte original 14 · github.com / velstand_policy.md ↗