RB2 places en cours d’exécution. (1 / 5 étapes)

Étape 1: La partie direction

Pour générer le script de 3 pièces principales sont à considérer : la partie « Directeur », qui peut être dérivée des caractéristiques matérielles, la partie « Contrôlées », les algorithmes traitant les différences (erreurs) entre les estimations et de réalité et de la partie « Réelle », comprenant les données des capteurs (actionneurs) utilisés, fournissant des informations sur la situation réelle de plus probable (!).

L’efficacité du script dépend fortement de l’exactitude des actionneurs utilisés. Par exemple : si les anciens marins auraient eu un système GPS, ils auraient des données plus précises sur leur position réelle.

En utilisant des actionneurs plus, différents, comme encodeurs, une boussole numérique, un retriever GPS (pour utilisation à l’extérieur) ou même un gyroscope, produirait plus de précision sur la situation réelle. Malheureusement, il rend la partie contrôlée un peu plus complexe, car il devait traiter l’influence pondérée des capteurs distincts afin de déterminer les données les plus précises sur la position réelle (« fusion capteur »).

Chaque actionneur utilisé, apportera au moins quelques particulière « bruit » dans les équations. Si un récepteur GPS aurait être récupération de données à une position stable, nous allons dire que 24 heures, le tracé de ces données serait éparpillé autour de la position réelle. À cet effet, la précision d’un système GPS est exprimée par 95 % des lectures relevant d’une certaine gamme (par exemple < 5 mètres). Pour faire face à filtrage de bruit du capteur et d’équilibrer le poids entre les cylindres séparés, il faut utiliser une boucle de régulation plus sophistiquée. Le filtre de Kalman est souvent utilisé pour cela.

Afin de garder les choses simples dans mes premières explorations, j’ai collé à un seul actionneur et utilisé uniquement les encodeurs. Ils génèrent des « tiques » par rotation des axes roue, fournissant ainsi des données sur le tournant réel des roues (ce qui en fait fournit des informations sur la vitesse ou distance).

Il y a beaucoup de différents encodeurs. Codeurs optiques utilisent souvent un disque segmenté pour mesurer les changements (de solide à non solides et vers l’arrière) avec un capteur infrarouge. La résolution (c'est-à-dire la quantité de tiques par révolution de l’axe de roue) de codeurs optiques est plutôt faible et limite ainsi la précision que l'on peut obtenir. Autres encodeurs rendent l’utilisation de disques magnétiques et ont une bien meilleure résolution. Codeurs optiques sont beaucoup moins cher et plus facile à tune/utilisation. Enfin les encodeurs peuvent être simple ou en quadrature. Ce dernier fournit aussi des informations sur le sens de la rotation de la roue.

RB2 a unique encodeurs optiques. Ils ne s’opposent à des restrictions ; surtout sur la précision (> = centimètres) et la fréquence de mesure (il faut au moins 1 tick d’entrer dans la partie contrôlée).

Maintenant nous allons plonger dans la partie « Directeur ». C’est la partie plus factuelle et toutes les variables nécessaires peut être calculés à l’avance et utilisés en tant que constantes dans le script. Si le script est destiné à être utilisé sur plusieurs robots différents, la partie « Directeur » doit être traitée dans la routine d’initialisation du script.

Quelques faits sur RB2 :

  • Le châssis est un Baron de Robot DF (4 moteurs, connectés en tant que 2 moteurs différentiels) + étage de fixation supplémentaires
  • Codeurs optiques sur les 2 roues avant, générant 20 tiques par révolution.
  • La distance entre le Centre des roues = 0,147 m.
  • Le diamètre de la roue = 0,065 m.

Ces faits peuvent servir à calculer certaines données importantes :

  • Le périmètre de la roue = 0,20 m (c.-à-d. Pi * le diamètre de la roue)
  • La quantité de tiques par mètre = 97,9 t/m (soit ticks_per_revolution / _perimeter de roue)
  • La full_turn_perimeter = 0,46 m (c.-à-d. wheel_center_distance * Pi) lorsque vous utilisez les deux côtés de la contre-révolution!! Je viendrai à celui plus tard lors d’une plongée en passant par un certain nombre de degrés
  • La quantité de ticks_per_full_turn = 45,2 t (c.-à-d. full_turn_perimeter * ticks_per_meter)
  • La quantité de ticks_per_degree = 0,13 t (ticks_per_full_turn / 360)

Nous avons donc déjà un grand nombre de données utiles, mais nous devons également quelques chiffres selon la vitesse. Nous avons besoin de connaître la vitesse maximale, que le robot pourrait atteindre. Parfois le fournisseur fournit des données sur le kit et/ou des moteurs, mais qui s’est avéré pour être loin. J’ai fait quelques calculs sur la rotation maximale sur les moteurs, en prenant le taux de déduction de l’engrenage en compte, mais qui s’est également avéré pour être loin.

Pour beaucoup de raisons évidentes (et moins évidents): différences fabrication légère (même si les acquis de la même série), un engrenage de résistance (lubrification), minuscule différences de roue (position, centrale diamètre), l’emprise des pneus, du poids de la voiture et comment elle est distribuée et beaucoup d’influences de l’environnement comme : la surface (résistance, inégalité, planéité) et la même résistance à l’air. Tous les facteurs qui ne peuvent être traités dans le modèle de contrôle et pourquoi certaines données probables doit être acquis par des tests dès le départ (en gardant autant facteurs aussi constante que possible).

La vitesse maximale du robot trouvera mieux en l’exécutant dans le même environnement à PWM maximale pour un certain temps et mesure la distance du milieu de cette course. Je pense que cela pourrait être mieux mesuré en comptant les tiques encodeur et recalculer ces derniers en mètres (cette opération prendra au moins le bruit de l’encodeur en compte).

RB2 est sorti avec 0,31 m/s (le fournisseur fourni 0,68 m/s). Avec ce chiffre, nous pouvons calculer une autre variable nécessaire : le max_ticks_per_second = 30,4 t/s (c.-à-d. ticks_per_meter * max_speed)

Enfin, nous devons la vitesse de décrochage. Cela se retrouve en testant : commencez par PWM 0.0 et augmenter la PWM jusqu'à ce que le robot commence vraiment à bouger. Il est courant d’être 5 à 30 % de votre totale portée PWM. Pour RB2, je suis sorti avec : 0.124 m/s.

Maintenant, nous avons toutes les données pour estimer la vitesse et la distance effectuée par le robot de franchir une certaine distance à une certaine vitesse. La figure ci-dessous montre le schéma typique d’une telle exécution.

Articles Liés

Grand écran de 8 * 8 couleur LED Funduino (colorduino) en cours d’exécution « plasma »

Grand écran de 8 * 8 couleur LED Funduino (colorduino) en cours d’exécution « plasma »

Un temps de retour, j'ai acheté une planche funduino et le pug de couleur LED 8 * 8 correspondant au module. Lorsque j'ai d'abord mis sous tension il il est pré-chargé avec une démo qui traversait un affichage simple, c'était vraiment cool, j'ai pens
En cours d’exécution plus sûres, sur des routes rurales

En cours d’exécution plus sûres, sur des routes rurales

Course rurale ajoute de nouveaux dangers, tels que le manque de ressources immédiates et dangers pour l'environnement, que de nombreux coureurs de niveau novice et adepte découvrent la dure. Ce guide est conçu pour aider les nouveaux coureurs à bien
Vélo en cours d’exécution indicateurs

Vélo en cours d’exécution indicateurs

ceux qui roulent dans la nuit de ce vélo en cours d'exécution indicateur contribue à prévenir les accidents, il brille brillant et n'importe qui peut facilement détecter le cycle.Étape 1: Matériel requis1. 9V Batteries - 22. led - 6 (préférez Orange/
Arduino IDE en cours d’exécution sur ChipKIT DP32

Arduino IDE en cours d’exécution sur ChipKIT DP32

Cette instructable fournit des processus étape par étape sur la façon d'exécuter des programmes arduino utilisant chipKIT DP32Étape 1: Matériel nécessaire : Matériel :ChipKIT DP32 (http://www.microchipdirect.com/ProductSearch.aspx?keywords=TDGL019)Câ
En cours d’exécution un à travers un champ de zéros

En cours d’exécution un à travers un champ de zéros

Dans les années 70, je travaillais pour Northern Telecom (Nortel Networks). J'ai assisté à un cours d'électronique numérique et une partie du cours traite de LED et tongs.Une des tâches que nous devions effectuer l'appelait exécutant un à travers un
Bonne forme pour montée &amp; descente en cours d’exécution

Bonne forme pour montée &amp; descente en cours d’exécution

apprendre à perfectionner votre formulaire en cours d'exécution sur les collines. Pour aider les participants à se préparer pour leurs activités sportives, volodalen.com propose également une gamme d'outils de formation en ligne et les plans de remis
En cours d’exécution à travers l’Amérique une seule frappe à la fois : création d’un Blog de course virtuel - Mile 1500 !

En cours d’exécution à travers l’Amérique une seule frappe à la fois : création d’un Blog de course virtuel - Mile 1500 !

La plupart du temps lorsque vous exécutez vous commencent et se terminent au même point.  Mais que se passerait-il si vous avez exécuté que vous pourriez et puis a commencé le lendemain de ce même point ?  Combien de temps cela prendrait-il vous rend
Comment construire un bassin d’eau en cours d’exécution pour le développement de plusieurs photos analogiques

Comment construire un bassin d’eau en cours d’exécution pour le développement de plusieurs photos analogiques

la construction d'une salle sombre pour développer vos photos est facile. Acheter les matériaux nécessaires et couvrir vos fenêtres. Après avoir développé les photos, vous devriez les mettre dans une bassine d'eau en cours d'exécution. Vous pouvez ac
En utilisant une tablette Wacom dans Ableton Live en cours d’exécution sur OSX

En utilisant une tablette Wacom dans Ableton Live en cours d’exécution sur OSX

Lorsque votre brillant nouveau Wacom pen se comporte erratiques sous Ableton Live en cours d'exécution sur OSX, il y a quelque chose que vous pouvez à ce sujet ! Le comportement typique est celui de boutons et de curseurs va tous à un extrême, le sec
Obtenir un noyau d’étincelle en cours d’exécution sans utiliser app Spark

Obtenir un noyau d’étincelle en cours d’exécution sans utiliser app Spark

L' Étincelle Core est un outil puissant--un CPU 32-bit, beaucoup de rangement sur puce et hors-die pour code et résultats, exigences de faible puissance et intégré dans la puce WiFi et antenne. Nombre d'appels Arduino et même de nombreuses bibliothèq
En cours d’exécution 3 moniteurs en installant la deuxième carte PCI Express

En cours d’exécution 3 moniteurs en installant la deuxième carte PCI Express

j'ai envie de courir 3 écrans sur mon PC, mais il avait seulement un slot pour carte vidéo unique. Cela signifiait que je pouvais courir seulement 1 carte vidéo et une seule carte vidéo habituellement prend uniquement en charge 2 moniteurs. Certaines
En cours d’exécution un filet maillant à recueillir des échantillons de poissons

En cours d’exécution un filet maillant à recueillir des échantillons de poissons

un filet maillant est une méthode d'échantillonnage utilisée par le MRN, le poisson et le Service de la faune. Cette technique permet à ces organisations de recueillir un grand nombre de poissons fins de recherche ou écloserie. Ce tutoriel va donner
FAT16 en cours d’exécution sur le Ti Launchpad

FAT16 en cours d’exécution sur le Ti Launchpad

Cette vidéo présente le code en action pour la lecture d'une carte SDvous aurez besoin de ce qui suit :N'importe quel morceau MSP430 avec USI et 4k ou plus flashune carte SDun capcitor (rien de plus que 10uf)Code Composer Studio 5 (grace facilite les
Bases de fusible avr : en cours d’exécution un avr avec une horloge externe

Bases de fusible avr : en cours d’exécution un avr avec une horloge externe

fusibles sont parmi les sujets plus difficiles que j'ai rencontré tout en découvrant la programmation de microcontrôleurs. Même après la recherche et la lecture intensivement, je ne pouvais pas parviennent encore à effacer mes concepts à leur sujet.