Le Raspberry PI

Console FRC

L’image FRC® pour le Raspberry PI comprend une console qui peut être affichée dans n’importe quel navigateur Web, ce qui permet de:

  • Visualiser l’état du Raspberry PI

  • Afficher l’état du processus d’arrière-plan exécutant la caméra

  • Afficher ou modifier les paramètres réseau

  • Regardez chaque caméra connectée au rPI et ajoutez des caméras supplémentaires

  • Charger un nouveau programme de vision sur le rPI

Définition du rPI en lecture seule ou en écriture

Le rPI est normalement défini en mode lecture-seulement (Read-Only), ce qui signifie que le système de fichiers ne peut pas être modifié. Cela garantit que si l’alimentation est interrompue sans d’abord arrêter le rPi, le système de fichiers n’est pas corrompu. Lorsque les paramètres sont modifiés (sections suivantes), les nouveaux paramètres ne peuvent pas être enregistrés lorsque le système de fichiers rPI est défini en lecture-seulement. Des boutons sont fournis pour permettre au système de fichiers de passer de lecture-seulement à écriture et inversement chaque fois que des modifications sont apportées. Si vous ne pouvez pas appuyer sur les autres boutons qui modifient les informations stockées sur le rPI, vérifiez l’état en lecture-seulement du système.

État de la connexion réseau au rPI

Il y a une icône dans le coin supérieur droit de la console qui indique si le rPi est actuellement connecté. Il passera de Connected à Disconnected s’il n’y a plus de connexion réseau au rPi.

../../../../_images/the-raspberry-pi-frc-console.png

État du système

../../../../_images/system-status.png

L’état du système indique à tout moment ce que fait le CPU sur le rPI. Il y a deux colonnes de valeurs d’état, soit une tabulée à chaque seconde et l’autre tabulée sur une durée de 5 secondes. Voici ce qui est affiché:

  • Free and available RAM on the PI

  • CPU usage for user processes and system processes as well as idle time

  • Network bandwidth - which allows one to determine if the used camera bandwidth is exceeding the maximum bandwidth allowed in the robot rules for any year

État de la vision

../../../../_images/vision-status.png

Permet de surveiller la tâche qui exécute le code de la caméra dans le rPI, soit l’un des programmes par défaut, soit votre propre programme en Java, C ++ ou Python. Vous pouvez également activer et afficher la sortie de la console pour voir les messages provenant du service de caméra d’arrière-plan. Dans ce cas, il y a un certain nombre de messages sur l’impossibilité de se connecter aux NetworkTables (NT: connect ()) car dans cet exemple, le rPI est simplement connecté à un ordinateur portable sans serveur NetworkTables en cours d’exécution (généralement le roboRIO.)

Paramètres réseau

Les paramètres réseau rPI ont des options pour se connecter au PI:

  • DHCP - the default name resolution usually used by the roboRIO. The default name is wpilibpi.local.

  • Static - où une adresse IP fixe, un masque de réseau et des paramètres de routeur sont définis de façon explicite.

  • DHCP with Static Fallback - le PI essaiera d’obtenir une adresse IP via DHCP, mais s’il ne trouve pas de serveur DHCP, il utilisera l’adresse IP statique et les paramètres fournis

../../../../_images/network-settings1.png

L’image ci-dessus montre les paramètres pour DHCP et l’adressage IP statique. Le nom mDNS du rPi doit toujours fonctionner quelles que soient les options sélectionnées ci-dessus.

Paramètres pour la vision

../../../../_images/vision-settings-1.png

The Vision Settings are to set the parameters for each camera and whether the rPI should be a NetworkTables client or server. There can only be one server on the network and the roboRIO is always a server. Therefore when connected to a roboRIO, the rPI should always be in client mode with the team number filled in. If testing on a desktop setup with no roboRIO or anything acting as a server then it should be set to Server (Client switch is off).

Pour afficher et manipuler tous les paramètres de la caméra, cliquez sur la caméra en question. Dans ce cas, la caméra est appelée « Camera rPi Camera 0 » et en cliquant sur le nom, le panorama vu par la caméra et ses paramètres associés sont affichés.

../../../../_images/vision-settings-2.png

La prise de vue de la caméra réflète la manipulation de ses paramètres. Le bas de la page affiche tous les modes de caméra possibles (combinaisons de largeur, hauteur et le taux de rafraichissement des images (frame rate)) pris en charge par cette caméra.

Note

Si l’image de la caméra n’est pas visible sur l’écran Open Stream, vérifiez les modes vidéo pris en charge au bas de la page. Revenez ensuite aux paramètres “Vision Settings” et cliquez sur la caméra en question et vérifiez que les paramètres format pixel, la largeur (width), la hauteur (height) et la fréquence de rafraîchissement de l’image (FPS) sont répertoriés dans les modes vidéo pris en charge.

Obtention des paramètres actuels pour qu’ils persistent lors des redémarrages

Le rPi chargera tous les paramètres de la caméra au démarrage. La modification de la configuration de la caméra dans l’écran ci-dessus est temporaire. Pour que les valeurs persistent, cliquez sur le bouton « Load Source Config From Camera » et les paramètres actuels seront chargés dans les champs des paramètres de la caméra. Cliquez ensuite sur « Save » en bas de la page. Remarque: vous devez définir le système de fichiers accessible en écriture (Writeable) pour enregistrer les paramètres. Le bouton Writeable est en haut de la page.

../../../../_images/vision-settings-3.png

Certaines valeurs de paramètres de caméra couramment utilisées sont indiquées dans les réglages (ci-dessus). Ces valeurs de luminosité, de balance des blancs et d’exposition sont chargées dans la caméra en premier, avant l’application du fichier utilisateur JSON. Donc, si un fichier utilisateur JSON contient aussi ces paramètres, ils viendront remplacer ceux définis auparavent.

Application

L’onglet Application affiche l’application en cours d’exécution sur le rPi.

Implémentation des tâches pour la vision

Il existe un exemple de programme de vision utilisant OpenCV dans chacun des langages supportés, C++, Java ou Python. Chaque exemple de programme peut capturer et diffuser des vidéos à partir du rPi. De plus, les exemples ont quelques commandes OpenCV. Ils sont tous configurés pour être redéployé avec un code OpenCV amélioré par l’utilisateur et conforme à l’application du robot. L’onglet Application rPi prend en charge un certain nombre d’algorithmes de programmation:

  • Diffusez une ou plusieurs caméras à partir du rPi vers l’ordinateur du poste de conduite et les afficher à l’aide de ShuffleBoard

  • Modifiez et créez l’un des exemples de programmes (un pour chaque langage: Java, C++ ou Python) sur le rPi en utilisant la chaîne d’outils fournie (éditeur, compilateur…)

  • Téléchargez un exemple source de programme (Java, C++ ou Python) et modifiez-le. Ensuite, compilez-le en vous servant de votre ordinateur de développement. Ensuite, téléchargez le fichier objet de ce programme sur le rPi

  • Concevez vos propres applications et scripts (en utilisant un ou plusieurs des exemples fournis comme référence)

../../../../_images/application-1.png

L’application en cours d’exécution peut être modifiée en sélectionnant l’un des choix dans le menu. Les choix sont:

  • Built-in multi camera streaming which streams whatever cameras are plugged into the rPi. The camera configuration including number of cameras can be set on the « Vision Settings » tab.

  • Custom Application qui ne télécharge rien sur le rPi et suppose que le programmeur souhaite avoir un code et un script personnalisés.

  • Exemples de programmes préinstallés Java, C++ ou Python pouvant être modifiés dans votre propre application.

  • Java, C++, or Python uploaded program. Java programs require a .jar file with the compiled program and C++ programs require an rPi executable to be uploaded to the rPI.

../../../../_images/application-2.png

Lors du choix de l’une des options de téléchargement, un sélecteur de fichier est présenté dans lequel le fichier jar, exécutable ou Python peut être sélectionné et téléchargé sur le rPi. Dans l’image suivante, un fichier Java jar est choisi via le bouton « Choose File » et en cliquant sur le bouton « Save », le fichier sélectionné sera téléchargé.

Remarque: pour enregistrer un nouveau fichier sur le rPi, le système de fichiers doit être paramétrable en écriture à l’aide du bouton « Writable » en haut à gauche de la page Web. Après avoir enregistré le nouveau fichier, redéfinissez le système de fichiers sur « Read-Only » afin qu’il soit protégé contre les modifications accidentelles.

../../../../_images/application-3.png