Aller au contenu
Source examinée

MicroDuck 0.17.2 : délais UDP et axes de manette

Distinguez absence d’entrée, expiration du client et récupération avec les délais spécifiques à la version du 13 octobre.

0.17.2 est sortie le 13 octobre et était latest le 14. Elle permet de modifier les axes. Après 300 ms sans entrée fraîche, la marche s’arrête en conservant la session ; à 1000 ms le client est considéré absent, avec tentative d’assise environ une seconde après.
Pollen Robotics a publié le démon stable 0.17.2 le 13 octobre 2026 à 09h46 UTC. GitHub l'a signalé en dernier lieu lors de cette revue du 14 octobre. Ce site a lu la version et corrigé le commit 35b71a2 ; il n'a pas installé de mise à jour, piloté un robot ou mesuré la synchronisation Wi-Fi.

Qu'est-ce qui a changé après la 0.17.1 ?

Modifications publiées dans la version 0.17.2
ZoneNouveau comportementLimite pratique
Axes du contrôleurMappez chaque commande stick sur left_x, left_y, right_x, right_y ou none ; régler l'inversion et le gain. Les limites de marche, de tête, de corps et de rouleau ont des touches séparées.Cela change ce que demande le pad, pas la vitesse physique prouvée ou les compétences politiques. Les remplacements locaux peuvent différer.
Court silence UDPAprès stale_ms sans cadre de pad accepté, la marche s'arrête là où elle se trouve ; le verrouillage de l'expéditeur et l'état du bouton maintenu restent.stale_ms par défaut est de 300 ms, il ne s'agit pas d'un arrêt d'urgence matériel instantané.
Long silence UDPÀ timeout_ms, le client compte comme parti, son verrou et reste dégagé, et le robot tente plus tard de s'asseoir s'il est debout.timeout_ms par défaut est de 1 000 ms, puis la demande de sit suit environ une seconde plus tard. Une compétence occupée peut refuser avant de réessayer.
Paquets retardésUn datagramme suffisamment tardif est supprimé ; pendant l'arrivée des paquets, les résumés des liens netpadd signalent les centiles de retard, les abandons tardifs et les blocages.Il s'agit d'une mise en œuvre et d'un diagnostic en amont, et non d'une mesure du réseau par ce site.

L'article précédent 0.17.1 enregistre cette version, y compris son ancien délai d'attente client de 250 ms. Ne portez pas ce numéro dans 0.17.2 : la nouvelle configuration a stale_ms = 300 et timeout_ms = 1000. Le pad USB/Bluetooth et le pad UDP partagent toujours la même carte de boutons, mais le service UDP en option correspond à la portée de la synchronisation réseau en deux étapes. Démon stable précédent 0.17.1 · 12 octobre ↗ Démon stable officiel 0.17.2 · 13 octobre ↗ Épinglé 0.17.2 Synchronisation du pad UDP et diagnostic de liaison ↗.

Enregistrez d'abord la version installée et les remplacements.

Référence du robot en lecture seule
robotctl version
robotctl update status
robotctl update check daemon
robotctl configure --list
robotctl pad bindings
robotctl policy list
robotctl health

update check daemon vérifie la source stable sans l'installer. Enregistrez la version actuelle de la carte, les remplacements de configuration, les liaisons de boutons et la liste des stratégies. Une précommande sans robot n'a rien à mettre à jour. Le manifeste officiel de la politique v8 est inchangé par rapport à la révision du 13 octobre ; une version de démon ne prouve pas qu'un robot exécute cette politique. Contrôleur 0.17.2 épinglé et commandes de mise à jour ↗ Manifeste officiel de l'ensemble de politiques v8 inchangé ↗.

Remappez les bâtons avec une modification étroite et réversible.

Sur un robot compatible officiel, exécutez sudo robotctl configure et recherchez pad_axes. L'exemple ci-dessous met en avant/arrière sur le stick droit, tourne avec le stick gauche à un gain de 0,7 et réduit la plage de commande avant/arrière demandée. C'est TOML à saisir dans l'éditeur, pas une commande shell :

Exemples de remplacements de configuration, pas de commandes de terminal
[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.3

Le mode de conduite fourni (D-pad gauche) utilise le Y gauche pour l'avant/l'arrière, le X gauche pour le mitraillage et le X droit pour le lacet, les directions de mitraillage et de lacet étant inversées. La zone morte par défaut est de 0,1 et chaque liaison commence au gain de 1,0. Les champs manquants conservent leur source et leur direction d'expédition. gain s'applique avant le serrage jusqu'à la déviation complète ; source = "none" désactive cette commande. Supprimez un remplacement pour rétablir ce mode par défaut. Les modifications de l'axe du pad et de la limite du lecteur atteignent les contrôleurs Bluetooth et UDP en une seconde environ sans redémarrer les services ; une modification non valide laisse le mappage précédent actif et est enregistrée. Gardez le robot soutenu et testez un axe à la fois, car une erreur de signe ou de mode peut le déplacer de manière inattendue. Changer netpad.enabled, en revanche, change le démon pad qui s'exécute et suit sa procédure d'application/redémarrage distincte. Contrôleur 0.17.2 épinglé et commandes de mise à jour ↗ Paramètres par défaut de l'axe du pad épinglé et validation de remplacement ↗ Robotctl épinglé configure le comportement d'application ↗.

Comprenez les deux seuils de perte UDP.

Le pad UDP en option reste désactivé par défaut et est destiné uniquement à un réseau local de confiance : le port 4210 n'a ni authentification ni cryptage. Dans la version 0.17.2, stale_ms est par défaut 300 et doit être inférieur à [safety] deadman_ms (par défaut 500) ; timeout_ms est par défaut 1000 et doit être au moins stale_ms. Au premier seuil, le robot s'arrête de marcher tandis que l'expéditeur maintient sa session. Si une nouvelle entrée reprend avant le deuxième seuil, cet expéditeur peut continuer ; l'ancien état du stick n'est pas rejoué. Au deuxième seuil, la session est libérée et la réponse ordinaire au pad-gone peut demander une mise en place environ une seconde plus tard. Aucune des deux étapes ne garantit un arrêt physique immédiat ou une position assise réussie dans chaque posture. Synchronisation du pad UDP 0.17.2 épinglé et diagnostics de liaison ↗ Exemples de configuration de contrôleur et netpad épinglés ↗ Implémentation UDP obsolète et tardive de datagramme épinglé ↗.

Le récepteur rejette également les datagrammes qui arrivent trop tard par rapport à la livraison la plus rapide de ce flux, de sorte que les pressions sur les boutons dans un retard Wi-Fi en file d'attente ne devraient pas se déclencher après coup. Pendant que les datagrammes continuent d'arriver, il enregistre un résumé link: pour environ chaque fenêtre d'échantillon de dix secondes avec un délai supplémentaire p50/p99/max, des abandons tardifs et des blocages. Une panne complète d’entrée ne nécessite pas nécessairement de produire un nouveau résumé. Un expéditeur personnalisé qui définit son champ d'horodatage à zéro ne reçoit pas ce contrôle de retard ; le duckctl udp-pad officiel utilise le chemin client publié. Ce sont des règles logicielles et non une promesse concernant un réseau sans fil. Pour inspecter un démon UDP en cours d'exécution sur le robot :

Lire les diagnostics du lien netpadd

Le package pour ordinateur portable duckctl 0.17.2 est publié pour macOS, Linux et Windows. Le précédent Guide de configuration UDP explique toujours l'activation du réseau local de confiance ; utilisez les horaires 0.17.2 ci-dessus après la mise à niveau. Package pour ordinateur portable duckctl 0.17.2 publié ↗.

Mettez à niveau uniquement lorsque la source stable et la carte correspondent.

Soutenez le robot, maintenez l’alimentation stable et autorisez le redémarrage des services démons. Si le vérificateur stable propose 0.17.2 pour la carte déclarée, installez intentionnellement :

Installer un démon stable proposé
sudo robotctl update apply daemon

Comparez la version en cours d’exécution, la configuration, les liaisons, la liste des stratégies, l’historique de santé et de mise à jour avec la référence enregistrée. Les remplacements de joystick configurés et les emplacements de stratégie chargés manuellement méritent une inspection explicite ; ce site n'a aucun résultat de mise à niveau physique pour remplacer cette vérification.

Vérifiez le résultat de l'exécution
robotctl version
robotctl configure --list
robotctl pad bindings
robotctl policy list
robotctl health
robotctl update log
robotctl update show

Si la mise à jour échoue, inspectez update show et update log avant d'agir. Une restauration manuelle du démon nécessite une version précédente déjà installée sur cette carte, et elle ne restaure pas l'ensemble de règles v8 versionné indépendamment :

Uniquement si une version précédente du démon est installée
sudo robotctl update rollback daemon
robotctl version
robotctl health

Où aller ensuite.

CONTINUER LA CONVERSATION

Qu’aimeriez-vous comprendre ensuite ?

Gardez la source, votre environnement et vos observations ensemble.

Sources et date de vérification

Sources vérifiées le 14 octobre 2026 · Source examinée

  1. Source originale 1 · github.com / daemon-v0.17.1 ↗
  2. Source originale 2 · github.com / daemon-v0.17.2 ↗
  3. Source originale 3 · github.com / latest ↗
  4. Source originale 4 · github.com / cheatsheet.md ↗
  5. Source originale 5 · github.com / udp-pad.md ↗
  6. Source originale 6 · github.com / pad_axes.rs ↗
  7. Source originale 7 · github.com / robotd.toml ↗
  8. Source originale 8 · github.com / configure.rs ↗
  9. Source originale 9 · github.com / receiver.rs ↗
  10. Source originale 10 · pypi.org / 0.17.2 ↗
  11. Source originale 11 · huggingface.co / manifest.json ↗