Utilisation du réseau avec les F1tenth - vaul-ulaval/vaul-wiki GitHub Wiki
Nous utilisons un routeur qui créé un réseau local avec les deux bolides et un Network Access Storage (NAS). Un NAS est simplement un système de fichiers disponibles à tout le monde sur le réseau pour faciliter le transfert de fichiers des cartes par exemple. Afin d'avoir accès à Internet, le routeur bridge vers un autre réseau wifi (Dans notre cas eduroam). Voici un schéma du setup réseau avec les différentes adresses IP importantes:
- Trouver la boîte à outil noir avec le routeur et le Raspberry Pi dedans
- Brancher les deux prises d'alimentation
- Appuyer sur le bouton power derrière le routeur et allumer la switch sur le fil d'alimentation du Raspberry Pi
- À partir de votre ordinateur, se connecter sur le réseau wifi
vaul-router_5G
(Le mot de passe est le même que sur l'ordi du VAUL) - Pour vérifier que le routeur fonctionne, aller sur http://192.168.1.1 et se connecter avec le user
vaul
et le même mot de passe que le réseau wifi - Vérifier que vous avez bien accès à Internet quand vous êtes branché sur le wifi du routeur
- S'assurer que le routeur est bien démarré
- Mettre la batterie dans le bolide (Et attendre quelque temps pour qu'il démarre et setup son réseau comme il faut)
- Regarder le sticker sur le robot pour avoir son adresse IP
- Utiliser cette adresse IP pour se ssh dessus. Par exemple
ssh [email protected]
(Le mot de passe est écrit sur le sticker)
Sur Windows, il est possible d'aller sur l'explorateur de fichier dans Network et le réseau détectera automatiquement le stockage NAS.
Sur Linux, il faut "mount" le stockage avant d'y avoir accès. Voici comment:
sudo apt install cifs-utils # Si ce n'est pas déjà fait
sudo mkdir -p /mnt/nas
# Mounter le NAS sur le filesystem de votre ordi
sudo mount -t cifs //192.168.1.1/vaul-nas /mnt/nas -o gid=$(id -g),uid=$(id -u),vers=1.0,user=<user>,pass=<password>
Pour se connecter sur les robots, il faut toujours taper la commande ssh avec le nom d'utilisateur et l'IP et entrer le mot de passe. Afin d'accélérer le processus et de permettre de se connecter sans mot de passe, nous allons créer des clés SSH.
Sur votre poste (Dans un terminal WSL si vous êtes sur Windows), effectuer la commande suivante pour générer une clé SSH:
sudo apt install openssh-client # Si ce n'est pas déjà fait
ssh-keygen -f ~/.ssh/f1tenth -N ""
Ensuite, démarrer les deux véhicules (Voir Démarrer et piloter un F1tenth). Une fois les deux véhicules démarrés, faire les commandes suivantes:
ssh-copy-id -i ~/.ssh/f1tenth.pub [email protected]
ssh-copy-id -i ~/.ssh/f1tenth.pub [email protected]
Par la suite, on va créer une configuration SSH pour automatiquement utiliser ces clés. Dans l'éditeur de votre choix, ouvrir ~/.ssh/config
et y mettre ces lignes (Par exemple: nano ~/.ssh/config
):
Host blitz
HostName 192.168.1.102
User vaul-f1tenth
IdentityFile ~/.ssh/f1tenth
Host renegade
HostName 192.168.1.101
User vaul-f1tenth
IdentityFile ~/.ssh/f1tenth
Finalement, on vérifie que notre configuration fonctionne. Normalement les commandes suivantes devraient fonctionner sans demander de mot de passe:
ssh blitz
ssh renegade
Avant l'achat du routeur, les 2 bolides généraient un hotspot réseau avec linux-wifi-hotspot. Cela permettait de créer un point d'accès depuis le F1TENTH, en plus d'être connecté à internet. Par contre, la puissance du réseau est beaucoup plus faible qu'avec le routeur et ce n'est pas viable en compétition. Pour activer/désactiver le hotspot, il faut faire :
sudo systemctl enable create_ap.service
sudo systemctl disable create_ap.service