2015-04-01 2 views
0

On m'a demandé de créer un robot suiveur de jambes (je l'ai déjà fait) et dans la deuxième partie de cette tâche, je dois développer un filtre de Kalman afin d'améliorer le processus suivant le robot. Le robot obtient de la personne la distance où elle est au robot et aussi l'angle (c'est un angle relatif, parce que la référence est le robot lui-même, pas des coordonnées xy absolues)Application d'un filtre de Kalman sur un robot suiveur de jambes

À propos de cette affectation J'ai un doute sérieux . Tout ce que j'ai lu, chaque échantillon que j'ai vu sur le filtre kalman a été dans une dimension (une distance de course de voiture ou un rocher tombant d'un bâtiment) et selon la tâche que je devrais l'appliquer en 2 dimensions. Est-il possible d'appliquer un filtre kalman comme celui-ci?

S'il est possible de calculer le filtre kalman en 2 dimensions alors je comprendrais que ce qu'on me demande de faire est de suivre les jambes de façon linéarisée, malgré qu'une personne marche bizarrement (avec des mouvements aléatoires) -> J'ai le doute sur la façon d'établir la fonction de la matrice d'état, quelqu'un pourrait-il me dire comment faire ou me dire où je peux trouver plus d'informations à ce sujet?

merci.

+0

Le filtre de Kalman peut être appliqué à un problème à n dimensions, ce qui n'est pas une limitation. Vous devez trouver ce que le modèle de mouvement est pour votre robot jambe. Si ce n'est pas linéaire, vous pouvez essayer d'appliquer le filtre de Kalman étendu. Par exemple, qu'est-ce qu'un robot "leg follower"? Un robot qui suit les jambes d'un humain? Est-ce un robot avec des jambes qui suit une ligne? Est-ce un robot attaché aux jambes humaines et estimer la position? Sans plus d'informations sur votre problème, il est difficile d'identifier votre problème spécifique, et j'hésite à vous lier à l'article wikipedia sur le filtre de Kalman. –

Répondre

0

Eh bien, vous devriez lire sur Kalman Filter. Fondamentalement, ce qu'il fait est d'estimer un état à travers sa moyenne et sa variance séparément. L'état peut être ce que vous voulez. Vous pouvez avoir des coordonnées locales dans votre état mais aussi des coordonnées globales. Notez que cette dernière entraînera certainement une dynamique non linéaire du système, auquel cas vous pourriez utiliser le filtre étendu de Kalman, ou pour être plus correct le filtre de Kalman discret continu, où vous traitez la dynamique du système de manière continue et les mesures en temps discret.

Exemple avec les coordonnées globales:

En supposant que vous avez une petite masse cubique qui peut avancer avec une vitesse v Vous pouvez simplement modéliser la dynamique seulement en coordonnées locales, où votre état s serait s = [v], ce qui est. modèle linéaire. Mais, vous pouvez également incorporer les coordonnées globales x et y, en supposant que nous ne nous déplaçons que sur un plan. Ensuite, vous auriez s = [x, y, phi, v]'. Nous avons besoin de phi pour garder une trace de l'orientation actuelle puisque le cube ne peut avancer que par rapport à son orientation bien sûr. Définissons phi comme l'angle entre la direction avant du cube et l'axe x. Ou en d'autres termes: Avec phi=0 le cube se déplacerait le long de l'axe des x, avec phi=90° il se déplacerait le long de l'axe des ordonnées.

La dynamique du système non linéaire avec coordonnées globales peuvent alors être écrits comme

s_dot = [x_dot, y_dot, phi_dot, v_dot]' 

avec

x_dot = cos(phi) * v 
y_dot = sin(phi) * v 
phi_dot = ... 
v_dot = ... (Newton's Law) 

En EKF (filtre de Kalman étendu) étape de prédiction vous utiliseriez le (discrétisée) équations ci-dessus pour prédire la moyenne de l'état dans la première étape et les équations linéarisées (et discrétisées) pour la prédiction de la variance.

Il y a deux choses à garder à l'esprit lorsque vous décidez ce que votre vecteur d'état s devrait ressembler à:

  • Vous pourriez être tenté d'utiliser mon exemple linéaire s = [v] puis intégrer la vitesse en dehors du filtre de Kalman afin d'obtenir les estimations de coordonnées globales. Cela fonctionnerait, mais vous perdriez l'awesomeness du filtre de Kalman puisque vous intégreriez seulement la moyenne de l'état, pas sa variance. En d'autres termes, vous n'auriez aucune idée de ce que sont les incertitudes actuelles pour vos coordonnées globales.
  • La deuxième étape du filtre de Kalman, la mise à jour de mesure ou de correction, nécessite que vous puissiez décrire la sortie de votre capteur en fonction de vos états. Il se peut donc que vous deviez ajouter des états à votre représentation juste pour pouvoir exprimer correctement vos mesures as z[k] = h(s[k], w[k])z sont des mesures et w est un vecteur de bruit avec une distribution gaussienne.