Le GoPiGo: un peu d’histoire (récente)
GoPiGo est un modèle de robots utilisant une carte Raspberry, proposé par la société américaine Dexter Industries. Le premier modèle est sorti en 2014. J’utilise la troisième version du GoPiPo, qui est la dernière en date en 2021. En 2019, Dester Industries a été rachetée par Modular Robotics, société dont le siège se situe dans le Colorado et qui produit les Cubelets, des modules robotiques sous forme de cubes à assembler.
Au même titre que les Cubelets le débouché principal du GoPiGo est l’éducation: il est proposé sous forme de kits aux écoles et universités. Cependant c’est également un objet amusant et il est tout à fait approprié pour s’initier à la carte Raspberry Pi, à la robotique et à la programmation.
Cet article ne détaille pas le montage du robot, bien expliqué sur le site dédié GoPiGo.io, mais se concentre sur l’installation de l’OS « GoPiGo OS », son premier lancement et des options de configuration initiales.
Le Gopigo3 illustrant cet article dispose des éléments suivants:
- La carte Raspberry Pi 3 (model B) associée au module GoPiGo (carte rouge)
- Une carte micro SD Sandisk de 32 Go
- L’alimentation (regroupant 8 piles AA)
- Une Pi Camera v1.3 (5Mpx)
- Un Détecteur de distance (« Distance Sensor »)
Téléchargement et installation de l’image de GoPiGo OS
Un fichier image (extension .img) est une image ISO d’un disque, c’est à dire la copie octet par octet du contenu de ce dernier dans un seul fichier. L’image zippée de GoPiGo OS pèse environ 4,5 Go (décompressé, le fichier .img pèse plus de 10 Go).
Le lien de téléchargement de la dernière version est proposé sur le site GoPiGo.io dans la rubrique « Software ». Il faut aller sur ce lien puis cliquer sur le bouton « Download GoPiGo OS ».
Pour copier l’image sur la carte micro-SD du raspberry Pi, le plus simple consite à utiliser l’outil Raspberry Pi Imager proposé gratuitement sur le site raspberrypi.org. Après avoir branché la carte SD à PC à l’aide d’un lecteur de carte, il suffit de chercher l’image téléchargée, puis de sélectionner la Carte SD et de lancer l’écriture (bouton WRITE).
Le chargement dure longtemps (compter plus d’une heure). A la fin, la carte est prête pour être insérée dans la Raspberry: l’OS est déjà prêt à démarrer sans autre configuration.
Premier lancement de GoPiGo OS
Pour lancer le GoPiGo, brancher l’alimentation sur le module Gopigo rouge, et appuyer sur le bouton présent à l’arrière et à droite de ce même module. En mode programmation, c’est à dire si l’on ne souhaite pas forcément déplacer le GoPiGo, il est recommandé de brancher également la carte Raspberry sur une alimentation USB, ce qui permet de limiter la sollicitation des piles.
Le système démarre, ce qui peut prendre 10 à 20 secondes. A l’issue du démarrage si tous s’est bien déroulé, la diode multicolore à l’avant du module reste allumé en vert.
Le GoPiGo est alors accessible sur son propre réseau Wifi dont le SSID est « GoPiGo »:
- Connecter le PC sur le réseau Wifi « GoPiGo »
- Une fois connecté sur ce point d’accès, accéder à l’URL suivante depuis un navigateur: http://mygopigo.com
- La diode à l’avant du module s’allume en Bleu.
On accès alors à la page d’accueil du GoPiGo, qui permet déjà de déplacer le robot (bouton DRIVE), et met à disposition les ressources pour le programmer: documentation, environnement de développement Bloxter ou Python.
Cependant l’utilisation du point d’accès Wifi du GoPiGo est contraignante, puisque le PC n’a plus accès à internet. La première chose que nous allons configurer est donc la connexion du GoPiGo sur le réseau Wifi local (c’est à dire sur votre routeur Wifi en général): il faut cliquer sur l’icône du Wifi en haut à droite de la page pour accéder à cette configuration.
Modifier l’article
Saisissez le titreGoPiGo3: installation de l’OS GoPiGo sur Raspberry
GoPiGo est un modèle de robots utilisant une carte Raspberry, proposé par la société Dexter.
Cet article ne détaille pas le montage du robot, bien expliqué sur le site dédié GoPiGo.io, mais se concentre sur l’installation de l’OS « GoPiGo OS », de son premier lancement et des options de configuration initiales.
Le Gopigo3 illustrant cet article dispose des éléments suivants:
- La carte Raspberry Pi 3 (model B) associée au module GoPiGo (carte rouge)
- Une carte micro SD Sandisk de 32 Go
- L’alimentation (regroupant 8 piles AA)
- Une Pi Camera v1.3 (5Mpx)
- Un Détecteur de distance (« Distance Sensor »)
Téléchargement et installation de l’image de GoPiGo OS
Un fichier image (extension .img) est une image ISO d’un disque, c’est à dire la copie octet par octet du contenu de ce dernier dans un seul fichier. L’image zippée de GoPiGo OS pèse environ 4,5 Go (décompressé, le fichier .img pèse plus de 10 Go).
Le lien de téléchargement de la dernière version est proposé sur le site GoPiGo.io dans la rubrique « Software ». Il faut aller sur ce lien puis cliquer sur le bouton « Download GoPiGo OS ».
Pour copier l’image sur la carte micro-SD du raspberry Pi, le plus simple consite à utiliser l’outil Raspberry Pi Imager proposé gratuitement sur le site raspberrypi.org. Après avoir branché la carte SD à PC à l’aide d’un lecteur de carte, il suffit de chercher l’image téléchargée, puis de sélectionner la Carte SD et de lancer l’écriture (bouton WRITE).
Le chargement dure longtemps (compter plus d’une heure). A la fin, la carte est prête pour être insérée dans la Raspberry: l’OS est déjà prêt à démarrer sans autre configuration.
Premier lancement de GoPiGo OS
Pour lancer le GoPiGo, brancher l’alimentation sur le module Gopigo rouge, et appuyer sur le bouton présent à l’arrière et à droite de ce même module. En mode programmation, c’est à dire si l’on ne souhaite pas forcément déplacer le GoPiGo, il est recommandé de brancher également la carte Raspberry sur une alimentation USB, ce qui permet de limiter la sollicitation des piles.
Le système démarre, ce qui peut prendre 10 à 20 secondes. A l’issue du démarrage si tous s’est bien déroulé, la diode multicolore à l’avant du module reste allumé en vert.
Le GoPiGo est alors accessible sur son propre réseau Wifi dont le SSID est « GoPiGo »:
- Connecter le PC sur le réseau Wifi « GoPiGo »
- Une fois connecté sur ce point d’accès, accéder à l’URL suivante depuis un navigateur: http://mygopigo.com
- La diode à l’avant du module s’allume en Bleu.
On accès alors à la page d’accueil du GoPiGo, qui permet déjà de déplacer le robot (bouton DRIVE), et met à disposition les ressources pour le programmer: documentation, environnement de développement Bloxter ou Python.
Cependant l’utilisation du point d’accès Wifi du GoPiGo est contraignante, puisque le PC n’a plus accès à internet. La première chose que nous allons configurer est donc la connexion du GoPiGo sur le réseau Wifi local (c’est à dire sur votre routeur Wifi en général): il faut cliquer sur l’icône du Wifi en haut à droite de la page pour accéder à cette configuration.
Il suffit alors de saisir le nom (SSID) et la phrase secrète du Wifi local, puis de cliquer sur le bouton « Set Wifi Connection ». Au bout de quelques secondes, le bouton sur le module GoPiGo s’éteint, puis se rallume: s’il se rallume en Jaune/Vert, c’est que la connexion à fonctionné. En revanche si la connexion échoue, il se rallume en vert et le GoPiGo est à nouveau accessible sur son point d’accès Wifi.
Il suffit alors de saisir le nom (SSID) et la phrase secrète du Wifi local, puis de cliquer sur le bouton « Set Wifi Connection ». Au bout de quelques secondes, le bouton sur le module GoPiGo s’éteint, puis se rallume: s’il se rallume en Jaune/Vert, c’est que la connexion à fonctionné. En revanche si la connexion échoue, il se rallume en vert et le GoPiGo est à nouveau accessible sur son point d’accès Wifi.
Le point d’accès « GoPiGo » n’existe plus, et l’on accès à la page d’accueil à partir du réseau local, à l’aide de son adresse IP (récupérée à l’aide de votre routeur, par exemple) ou de son nom: http://gopigo ou http://gopigo.local.
Accès en ssh, configuration de base
Il faut parfois utiliser l’utilitaire raspi-config pour configurer les principaux paramètres de la carte Raspberry. L’utilitaire n’est pas disponible depuis la page web du GoPiGo, il faut se connecter à la Raspberry en ssh pour le lancer en ligne de commande. La connexion ssh avec un client tel de Putty se fait simplement en utilisant l’adresse IP de la GoPiGo, l’identifiant et le mot de passe par défaut sont:
pi / robots1234
Une fois connecté, lancer l’utilitaire:
sudo raspi-config
La fenêtre permettant de configurer les éléments principaux du Raspberry s’affiche. Naviguer à l’aide des flèches du clavier sur la ligne du menu souhaitée, appuyer sur la touche Entrée pour accéder au sous-menu ou au paramètre correspondant. Utiliser la touche d’échappement pour revenir au menu de niveau supérieur. La touche Tabulation est également utile pour accéder au option en bas de la fenêtre.
La liste des paramètres à modifier:
Menu | Sous-menu | Paramètre |
---|---|---|
System Options | S3 Password | Modifier le mot de passe par défaut |
System Options | S4 Hostname | Nom d’hôte utilisé sur le réseau local (par défaut: gopigo) |
Interface Options | P1 Camera | Yes |
Utilisation d’un certificat sous Putty pour l’accès ssh (niveau intermédiaire)
Optionnellement, il peut être pratique d’utiliser un certificat pour se connecter en ssh au GoPigo plutôt que de saisir le mot de passe à chaque accès. Le principe consiste à générer une paire de clés de sécurité sur le poste qui devra accéder en ssh à la carte Raspberry:
- Une clé privée, protégée par un mot de passe, qui sera soigneusement conservée sur le PC
- Une clé publique qui sera copié dans un fichier particulier du répertoire de l’utilsateur « pi » de la Raspberry.
Depuis une machine Windows, on utilise souvent le client ssh PuTTY: l’installation de ce dernier à partir du fichier msi ajoute également 2 utilitaires:
- PuTTYgen, que l’on va utiliser pour générer la paire de clés publique et privée
- Pageant, qui charge la clé privée en mémoire et l’utilise pour chaque lancement de session ssh PuTTY.
Etape 1: génération de la paire de clés
Lancer l’utilitaire Puttygen (en saisissant le nom de l’application dans la barre de lancement Windows, par exemple).
Cliquer sur le bouton « Generate ».
Il faut ensuite réaliser des mouvement de souris pour générer les clés aléatoirement: à l’issue de l’opération la clé publique est affichée en haut de la fenêtre. C’est cette clé qui devra être copiée sur la machine distance (la Raspberry).
La clé privée doit être enregistrée quelque part sur le PC local, et conservée en sécurité. Il est recommandé de saisir une phrase secrète dans les zones du formulaire prévues à cette effet (« key passphrase » et « Confirm passphrase ») avant de réaliser cette sauvegarde, ce qui ajoutera un niveau de sécurité si quelqu’un de mal intentionné récupère la clé privée.
Copie de la clé publique sur la machine distante
Pour cela, il faut se connecter en ssh sur la Raspberry (avec le mot de passe de l’utilisateur « pi »). Depuis le répertoire « home » de l’utilisateur, créer un fichier authorized_keys dans un répertoire nommé .ssh, à l’aide des commandes:
mkdir ~/.ssh
vi ~/.ssh/authorized_keys
Copier la clé publique affichée en haut de la fenêtre de PuTTYGen, et coller cette dernière dans le fichier ~/.ssh/authorized_keys
.
Chargement et utilisation de la clé privée avec Pageant
Lancer l’utilitaire Pageant, et cliquer sur le bouton « Add Key », puis ouvrir la clé privée sauvegardée dans l’étape précédente.
Pageant demande le mot de passe associé à la clé et charge cette dernière en mémoire.
Au prochain lancement de la session Putty, si tout s’est bien passé, au prochain lancement de la session ssh sous Putty, la ligne suivante s’affichera:
Authenticating with public key « [nom de la clé publique] » from agent
La connexion à la carte Rapsberry du GoPiGo sera immédiate sans que le mot de passe de l’utilisateur « pi » soit requis.
Démarrage sur le Wifi local
A chaque démarrage de la GoPiGo, la machine est accessible uniquement depuis son propre point d’accès Wifi. Si l’on souhaite l’utiliser directement sur le Wifi local, il faut à chaque fois refaire la manipulation ci-dessus pour que le GoPiGo se connecte au réseau Wifi local.
Heureusement depuis la version 3 du « GoPiGo OS », Modular Robotics a fournit une solution pour désactiver le lancement du point d’accès local lors du démarrage du GoPiGO. Il faut lancer la commande suivante depuis l’interface Python, puis saisir le mot de passe de l’utilisateur jupyter (qui est également « jupyter« ):
sudo systemctl disable start_as_access_point.service
Attention: cette configuration vous empêchera d’accéder au robot si vous n’êtes pas dans la zone de votre Wifi local (il vous faudra alors essayer de vous connecter au robot en branchant un câble éthernet). Avant d’emporter votre robot ailleurs, pensez donc à rétablir la configuration initiale avec le démarrage du point d’accès Wifi « Gopigo » en utilisant cette fois la ligne de commande suivante:
sudo systemctl enable start_as_access_point.service