Est-il possible à la fois de déplacer et de stabiliser un robot à deux roues sans gyroscopes?

15

Avec un robot à deux roues comme celui-ci , j'ai réussi à le stabiliser tout en le maintenant immobile. Cela a été fait en utilisant un système de contrôle de rétroaction numérique en lisant la position des roues pour déterminer la position, et la force électromotrice arrière naturelle des moteurs de roue a été utilisée dans la boucle de rétroaction pour déterminer la vitesse. Il a été maintenu stable avec un contrôleur PID, qui a été conçu en utilisant un algorithme de locus racine pour le maintenir stable et moduler les paramètres de performance (tels que le pourcentage de dépassement, le temps de stabilisation, etc.). Je voulais essayer de le garder stable tout en le propulsant vers l'avant, mais je n'arrivais pas à comprendre comment concevoir un contrôleur linéaire capable de le faire. Est-il possible de propulser le robot vers l'avant et le garder stable en utilisant un contrôleur de rétroaction sur les roues, ou un gyroscope est-il nécessaire?

Zetta Suro
la source
1
Y a-t-il une raison particulière pour laquelle vous ne pouvez pas utiliser un gyroscope? Juste par intérêt.
berry120
Il s'agit d'une mission que j'ai accomplie lors de mon dernier mandat. On nous a attribué le robot et nous ne pouvions utiliser que ce qui nous avait été donné. La mission n'était que de le maintenir immobile, mais je me demandais simplement si (et si oui, comment) il pouvait avancer et rester stable.
Zetta Suro

Réponses:

4

Vous pouvez utiliser d'autres façons de mesurer l'orientation, comme un accéléromètre, un suivi optique des marqueurs ou un capteur de profondeur pointé vers le sol.

AlcubierreDrive
la source
Un capteur de distance optique pointant vers le sol est un très bon moyen de mesurer l'inclinaison du robot. N'oubliez pas qu'il mesurera l'inclinaison réelle, alors qu'un gyroscope mesure le taux de changement d'inclinaison
Rocketmagnet
2

Si vous avez réussi à le rendre stable dans une configuration stationnaire, je ne vois pas vraiment comment il serait beaucoup plus difficile de le rendre stable pour une vitesse constante. Du point de vue du modèle de système, ce serait effectivement la même chose, à l'exception de certains décalages de vitesse. Si les transitions entre les vitesses ne sont pas très importantes, elles devraient se situer dans la plage des perturbations du système naturel.

Jakob
la source
2

Vous avez besoin de certains capteurs pour détecter l'état du système.

Linéarisez d'abord le système sous forme d'espace d'état, puis considérez les capteurs dont vous disposez. Vérifiez ensuite si elle est observable. S'il est observable, vous pouvez alors introduire les états estimés dans votre contrôleur.

Actuellement, il semble que vous utilisiez la position de la roue et l'EMF arrière (pour la vitesse) comme mesures directes. Sans vérifier la matrice d'observabilité, je ne sais pas si le système est observable.

ronalchn
la source
2

Mathématiquement, le fait que vous ayez maintenant une rotation (la plupart du temps) élimine ce paramètre en tant que paramètre de contrôle possible. Fondamentalement, vous devrez repenser votre algorithme pour accepter une composante de vitesse angulaire grande et variable tout en utilisant toujours la vitesse angulaire dans vos commentaires. Moins cela est bruyant, meilleur est le résultat probable simplement parce que vous allez probablement appliquer un différentiel de position pour dériver un autre paramètre de contrôle. Ou plutôt c'est une façon. Il semble donc que vous ayez besoin d'une autre entrée de contrôle, mais ce n'est pas nécessairement un accéléromètre. Vous pouvez faire un horizon, un emplacement de marqueur fixe ou même des capteurs d'inclinaison.

espace réservé
la source