Introduction au simulateur de Robot

Le simulateur «Robot Simulation» rend possible la programmation d’un robot virtuel dans le cas où une équipe ne dispose d’un véritable robot. WPILib offre aux équipes la possibilité de simuler diverses fonctionnalités du robot virtuellement à l’aide de simples commandes Gradle.

Activation de l’option Desktop Support

L’utilisation du simulateur nécessite l’activation de Desktop Support. Cela peut se faire en cochant la case à cocher « Enable Desktop Support Checkbox » lors de la création de votre projet de robot ou en exécutant « WPILib: Change Desktop Support Enabled Setting » à partir de la palette de commandes Visual Studio Code.

Enabling desktop support through VS Code Manually enabling desktop support through VS Code command-palette

La prise en charge du bureau peut également être activée en modifiant manuellement votre fichier build.gradle situé à la racine de votre projet de robot. Il suffit de changer includeDesktopSupport = false pour includeDesktopSupport = true

def includeDesktopSupport = true

Important

Il est important de noter que l’activation de la prise en charge de bureau/simulation peut avoir des conséquences imprévues. Tous les fournisseurs ne prennent pas en charge cette option, et le code qui utilise leurs bibliothèques peut même se planter lors de la tentative d’exécution de la simulation!

Si, à un moment donné, vous souhaitez désactiver la prise en charge du Bureau, exécutez simplement de nouveau la commande « WPILib: Change Desktop Support Enabled Setting » de la palette de commandes.

Dépendance C++ supplémentaire

La simulation robot C++ nécessite l’installation d’un compilateur natif. Pour Windows, il s’agit de Visual Studio 2019 (pas VS Code), macOS nécessite Xcode, et Linux (Ubuntu) nécessite le progiciel build-essential.

Assurez-vous que l’option Desktop Development with C++ est cochée dans l’installateur Visual Studio pour la prise en charge de la simulation.

Screenshot of the Visual Studio build tools option

Exécution d’une simulation de robot

La simulation sommaire du robot de base peut être réalisée à l’aide du code VS. Cela peut se faire sans utiliser de commandes autres que celles de la palette de commandes de VS Code.

Running robot simulation through VS Code

La sortie de votre console dans Visual Studio Code doit ressembler à ce qui apparaît ci-dessus. Cependant, les équipes voudront probablement réellement tester leur code au lieu de simplement éxécuter la simulation. Cela peut être fait à l’aide de WPILib’s Simulation GUI.

********** Robot program starting **********
Default disabledInit() method... Override me!
Default disabledPeriodic() method... Override me!
Default robotPeriodic() method... Override me!

Important

La simulation peut également être exécutée à l’extérieur de code VS à l’aide de ./gradlew simulateJava. Il est important de noter que, pour le moment, la simulation C++ n’est pas disponible via la ligne de commande.

Exécution des tableaux de bord du robot

Le Shuffleboard et le SmartDashboard peuvent être utilisés avec la simulation WPILib.

Shuffleboard

Shuffleboard est automatiquement configuré pour rechercher une instance NetworkTables à partir du robotRIO mais pas à partir d’autres sources. Pour vous connecter à Shuffleboard, ouvrez les préférences Shuffleboard dans le menu File et sélectionnez NetworkTables sous Plugins dans la barre de navigation de gauche. Dans le champ Server, saisissez l’adresse IP ou le nom d’hôte de l’hôte NetworkTables. Pour une configuration de simulation standard, utilisez localhost.

Shuffleboard connection settings set to localhost.

SmartDashboard

SmartDashboard est automatiquement configuré pour rechercher une instance NetworkTables à partir du roboRIO, mais ** pas à partir d’autres sources **. Pour vous connecter à SmartDashboard, ouvrez les préférences de SmartDashboard dans le menu File et dans le champ Team Number, saisissez l’adresse IP ou le nom d’hôte de l’hôte NetworkTables. Pour une configuration de simulation standard, utilisez localhost.

SmartDashboard team number set to localhost.