Didacticiel Tank Drive

Question: Comment puis-je faire piloter mon robot avec deux joysticks à l’aide du mode de conduite tank drive?

Solution: There are four components to consider when setting up tank drive for your robot. The first thing you will want to do is make sure the tank drive.vi is used instead of the arcade drive.vi or whichever drive VI you were utilizing previously. The second item to consider is how you want your joysticks to map to the direction you want to drive. In tank drive, the left joystick is used to control the left motors and the right joystick is used to control the right motors. For example, if you want to make your robot turn right by pushing up on the left joystick and down on the right joystick you will need to set your joystick’s accordingly in LabVIEW (this is shown in more detail below). Next, you will want to confirm the PWM lines that you are wired into, are the same ones your joysticks will be controlling. Lastly, make sure your motor controllers match the motor controllers specified in LabVIEW. The steps below will discuss these ideas in more detail:

  1. Ouvrez LabVIEW et double-cliquez sur FRC roboRIO Project.

../../../../_images/roboRIO-project.png
  1. Donnez un nom à votre projet, ajoutez votre numéro d’équipe et sélectionnez Arcade Drive Robot roboRIO. Vous pouvez sélectionner une autre option, cependant, ce tutoriel traite de la façon de configurer le mode Tank drive pour ce projet.

  2. Dans la fenêtre Explorateur de projets, ouvrez l’instrument virtuel Robot Main.vi.

  3. Appuyez sur Ctrl + E pour voir le diagramme. Cela devrait ressembler à l’image suivante:

../../../../_images/block-diagram.png
  1. Double-cliquez sur l’instrument virtuel “Teleop” à l’intérieur de la Structure de condition Teleop Enabled. Observez son diagramme bloc. Vous y apporterez deux modifications:

  • Remplacez l’instrument virtuel Arcade Drive par l’instrument virtuel Tank drive. Vous le trouvez en cliquant à droite sur le diagramme bloc >> WPI Robotics Library >> Robot Drive >> et en cliquant sur le Tank Drive VI.

  • Recherchez la fonction Index Array qui se trouve après l’instrument virtuel Get Values.vi . Vous devrez créer deux constantes numériques et relier chacune d’elles dans à l’une des entrées d’index. Vous pouvez déterminer quelles sont les valeurs de chaque index en regardant l’onglet USB Devices dans l’application FRC® Driver Station. Déplacez les deux joysticks pour déterminer les numéro des ports auxquels (index) ils sont liés. Il serait judicieux d’utiliser l’index de l’axe Y pour chaque joystick. C’est qu’il est intuitif de pousser vers le haut sur le joystick quand vous voulez commander les moteurs de votre robot de manière à aller vers l’avant, et vers le bas quand vous voulez le commander pour aller en sens inverse. Si vous sélectionnez l’index de l’axe x pour chacun, alors vous devrez déplacer le joystick à gauche ou à droite (directions x-axe) pour commander les moteurs du robot et avoir les déplacements précedemment décrits. Dans ma configuration, j’ai sélectionné l’index 1 pour mes moteurs gauches Y-axe de contrôle et l’indice 5 comme les moteurs droits Y-axe de contrôle. Vous pouvez voir les ajustements sous LabVIEW dans l’image suivante :

../../../../_images/block-diagram-2.png
  1. Ensuite, revenez à votre « Robot Main.vi » et double-cliquez sur l’instrument virtuel « Begin.vi. »

  2. La première chose à confirmer dans ce VI est que vos moteurs gauche et droit sont connectés aux mêmes câbles PWM aussi bien dans LabVIEW que sur votre PDP (Panneau de distribution de puissance).

  3. La deuxième chose à confirmer dans ce VI est que l’instrument virtuel « Open 2 Motor.vi » a le bon contrôleur de moteurs sélectionné (Talon, Jaguar, Victor, etc.).

Par exemple, j’utilise des contrôleurs de moteurs de type Jaguar et mes moteurs sont reliés à PWM 8 et 9. L’image ci-dessous montre les changements que j’ai besoin de faire:

../../../../_images/block-diagram-3.png
  1. Enregistrez tous les Vis auxquels vous avez fait des ajustements et vous êtes maintenant en mesure de piloter votre robot en mode Tank drive!