Comment calculer ou mettre à jour la position d'un robot à entraînement différentiel avec des capteurs incrémentaux?
Un capteur incrémentiel est attaché à chacune des deux roues différentielles. Les deux capteurs déterminent la distance resp. leur roue a roulé pendant un temps connu .Δ r i g h t Δ t
Tout d'abord, supposons que le centre entre les deux roues marque la position du robot. Dans ce cas, on pourrait calculer la position comme:
«Dériver» ces équations en supposant que les deux roues roulaient en ligne droite (ce qui devrait être approximativement correct pour les petites distances), j'obtiens:
Où est l'angle d'orientation du robot. Pour le changement de cet angle, j'ai trouvé l'équation
Où est la distance entre les deux roues.
Étant donné que et dépendent de , je me demande si je devrais d'abord calculer la nouvelle en ajoutant ou si je devrais plutôt utiliser la "vieille" ? Y a-t-il une raison d'utiliser l'un sur l'autre?Δ y θ θ Δ θ θ
Supposons maintenant que le centre entre les deux roues ne marque pas la position du robot. Au lieu de cela, je veux utiliser un point qui marque le centre géométrique de la boîte englobante du robot. Ensuite, et deviennent:
"Dériver" le premier donne:
Il y a maintenant une dépendance sur . Est-ce une raison pour utiliser le "nouveau" ?
Existe-t-il une meilleure méthode pour effectuer une mise à jour simultanée de la position et de l'orientation? Peut-être utiliser des nombres complexes (même approche qu'avec des quaternions en 3D?) Ou des coordonnées homogènes?
la source
la source