Table des matières:

Programmation événementielle dans FTC : 4 étapes
Programmation événementielle dans FTC : 4 étapes

Vidéo: Programmation événementielle dans FTC : 4 étapes

Vidéo: Programmation événementielle dans FTC : 4 étapes
Vidéo: Les Bases de la Programmation | Comment créer un Programme informatique ? 2024, Juillet
Anonim
Programmation événementielle dans FTC
Programmation événementielle dans FTC

Cette année, notre équipe a beaucoup travaillé sur le développement de logiciels événementiels pour notre robot. Ces programmes ont permis à l'équipe de développer avec précision des programmes autonomes et même des événements télé-op reproductibles. Comme le travail logiciel qu'il demande est complexe, nous avons décidé de partager les connaissances que nous avons acquises sur le développement de code événementiel pour les robots FTC.

Étape 1: Qu'est-ce que la programmation événementielle ?

En termes généraux, la programmation événementielle, selon Techopedia, est le développement de programmes qui répondent aux entrées des utilisateurs. En ce sens, de nombreux programmes sont considérés comme pilotés par des événements, y compris le programme télé-op d'une équipe, qui s'appuie sur les entrées d'un contrôleur géré par l'homme pour mener toute action. Cependant, en termes de travail effectué par notre équipe, la programmation événementielle consiste à créer un logiciel à partir de diverses entrées; en d'autres termes, nous documentons les événements en fonction des entrées des contrôleurs et des capteurs, puis nous pouvons mettre ces événements en file d'attente et utiliser le fichier pour réexécuter l'événement enregistré.

Cette méthode de développement de programmes pour notre robot présente plusieurs avantages:

  • Il nous permet de créer des programmes autonomes précis. Étant donné que nous créons le logiciel en temps réel tout en subissant l'événement, les valeurs des capteurs collectées et utilisées seront très précises, car elles proviennent directement de l'événement d'origine.
  • Il nous permet de créer rapidement des programmes autonomes. Faire des programmes autonomes est aussi simple que d'enregistrer une série d'événements et d'ajuster l'événement si nécessaire.
  • Il nous permet de créer des processus automatiques pour la télé-op. Pour les actions répétées en télé-op, la programmation événementielle nous permet d'enregistrer ces actions et d'attribuer l'événement à un bouton pendant les périodes de match contrôlées par le conducteur. Ces événements automatisés peuvent être influencés par des capteurs pour permettre leur exécution précise.

Étape 2: Flux logique de la programmation événementielle

Flux logique de la programmation événementielle
Flux logique de la programmation événementielle

Ce qui suit décrit le flux logique d'un programme événementiel: le rouge représente la création d'un événement et le bleu représente l'appel de l'événement. Pour créer un événement, une séquence d'entrées est prise en charge par l'action du robot et enregistrée en tant qu'événements; ces événements sont écrits dans un fichier. Pour appeler un événement, ce fichier est lu et les entrées sont envoyées à un processeur d'événements pour transformer le code du fichier en action robotique.

Étape 3: Créateur d'événements

Créateur d'événements
Créateur d'événements
Créateur d'événements
Créateur d'événements

Les créateurs d'événements sont utilisés pour documenter des actions ou des « événements » basés sur une variété de capteurs et de boutons. Comme le robot effectue des actions sur le terrain, une classe de créateur d'événements crée des événements pour chacune de ces actions en parallèle, en référençant l'événement classé dans une classe d'événements. Après avoir été créé, l'événement est placé dans une file d'attente d'événements dans la classe events: le premier événement prend la première place, puis le deuxième événement prend la première place et repousse tous les événements en dessous, et cela continue jusqu'à ce que le programme s'arrête. Lorsque le programme est arrêté, les événements sont envoyés dans un fichier au format lisible par l'homme, tel qu'un fichier JSON. Ce fichier peut être utilisé pour mieux améliorer les routines autonomes.

L'exemple de code ci-dessus définit les paramètres de l'événement, qui dans ce cas est un virage à l'aide d'un capteur IMU. Nous mettons ensuite l'événement en file d'attente dans la file d'attente des événements. Enfin, nous tronquons l'événement, ce qui réinitialise essentiellement l'événement afin que nous puissions l'utiliser pour mettre en file d'attente les événements futurs.

Étape 4: Processeur d'événements

Processeur d'événement
Processeur d'événement
Processeur d'événement
Processeur d'événement

Les classes d'événements prennent le fichier lisible par l'homme produit dans la classe de créateur d'événements et font tout ce que chaque événement mis en file d'attente lui dit de faire en appelant les méthodes décrites dans une classe de processeur d'événements. La classe du processeur d'événements indique ensuite au robot quel événement doit être rejoué. Qu'il s'agisse d'un simple événement « avancer » ou d'un événement complexe plein de distances, de virages et de mitraillages, le processeur rejouera tout événement qui lui est donné. Ce procédé est très utile en mode autonome, puisqu'une équipe peut enregistrer des capteurs et des actions Télé-Op avant de faire correspondre, puis simplement rejouer les événements en autonome. Ce processus est appelé Memory Replay. Cela permet à un programme autonome d'être configurable à 100% via un seul fichier. Une fois le créateur et le processeur d'événements établis, une équipe peut simplement modifier les routines autonomes via le fichier lisible par l'homme.

L'exemple ci-dessus commence par vérifier le fichier JSON pour un événement, puis par vérifier cet événement à l'aide d'une instruction case pour voir de quel type d'événement il s'agit, dans ce cas un virage à l'aide d'un capteur IMU. Une fois qu'il peut dire qu'il s'agit d'un tour à l'aide de l'événement IMU, il traite ensuite le traitement de l'événement, ce qui implique généralement l'exécution du code dont provient l'événement à l'aide des variables de l'événement, transmises pour répliquer l'événement qui a été fait auparavant.

Conseillé: