Utilisation du réseau avec les F1tenth - vaul-ulaval/vaul-wiki GitHub Wiki

Setup réseau

Vue d'ensemble

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:

Diagramme réseau

Démarrer le routeur

  1. Trouver la boîte à outil noir avec le routeur et le Raspberry Pi dedans
  2. Brancher les deux prises d'alimentation
  3. Appuyer sur le bouton power derrière le routeur et allumer la switch sur le fil d'alimentation du Raspberry Pi
  4. À 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)
  5. 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
  6. Vérifier que vous avez bien accès à Internet quand vous êtes branché sur le wifi du routeur

Se connecter sur un véhicule

  1. S'assurer que le routeur est bien démarré
  2. Mettre la batterie dans le bolide (Et attendre quelque temps pour qu'il démarre et setup son réseau comme il faut)
  3. Regarder le sticker sur le robot pour avoir son adresse IP
  4. Utiliser cette adresse IP pour se ssh dessus. Par exemple ssh [email protected] (Le mot de passe est écrit sur le sticker)

Se connecter sur le NAS

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>

Création de clés SSH

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

Archive (Hotspot)

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

⚠️ **GitHub.com Fallback** ⚠️