1. Accueil
  2. Docs
  3. Niryo un
  4. Tutoriels
  5. Contrôlez à distance Niryo One (multi-machines ROS)

Contrôlez à distance Niryo One (multi-machines ROS)

PHN0eWxlPgouZGlzY2xhaW1lciB7CmJhY2tncm91bmQ6I2U3ZjJmYTsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwogICAgbWFyZ2luLWJvdHRvbTogMjRweDsKICAgICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2IoMCAwIDAgLyAzMCUpOwogIGZvbnQtZmFtaWx5OiBvcGVuLXNhbnMsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsKfQouZGlzLXRpdGxlIHsKYmFja2dyb3VuZDojNmFiMGRlOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGNvbG9yOiAjZmZmOwogICAgYmFja2dyb3VuZDogIzZhYjBkZTsKICAgIHBhZGRpbmc6IDZweCAxMnB4Owp9Ci5kaXMtdGV4dCB7CiAgICBwYWRkaW5nOiA2cHggMTJweDsKfQouZGlzLXRleHQgYSB7CnRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7Cn0KPC9zdHlsZT4KPGRpdiBjbGFzcz0iZGlzY2xhaW1lciI+CjxkaXYgY2xhc3M9ImRpcy10aXRsZSI+Tm90ZTwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXMtdGV4dCI+VGhpcyB0dXRvcmlhbCBpcyBkZXNpZ25lZCBmb3IgTmlyeW8gT25lIHVzZXJzLiBJZiB5b3UgYXJlIHVzaW5nIE5lZCwgcGxlYXNlIGZpbmQgdGhlIG5ldyB0dXRvcmlhbCA8YSBocmVmPSJodHRwczovL2RvY3MubmlyeW8uY29tL2FwcGxpY2F0aW9ucy9uZWQvc291cmNlL3R1dG9yaWFscy9jb250cm9sX25lZF9yb3NfbXVsdGlfbWFjaGluZXMuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPmhlcmU8L2E+LjwvZGl2Pgo8L2Rpdj4=

Ce guide vous montrera comment contrôler le programme Niryo One ROS à partir d'un autre système ROS, par exemple, un système d'exploitation Ubuntu natif avec ROS ou une boîte virtuelle Ubuntu. Vous pourrez utiliser à distance l'API Niryo One Python ou développer vos propres packages ROS sur une autre machine.

Tout d'abord, vous devrez avoir ROS installé sur votre système d'exploitation Ubuntu.

Avant d’aller plus loin, voici quelques lectures utiles :

Nous verrons ici comment travailler avec plusieurs machines, avec le Raspberry Pi 3 comme ROS Master. (Cela s'applique également à un Master fonctionnant sur n'importe quel autre ordinateur, mais pour la clarté de ce tutoriel, nous dirons que le Master est un Raspberry Pi 3, et l'autre machine sera appelée « la machine distante »).

Connectez-vous au robot

Vous devez d'abord vous connecter au Raspberry Pi 3 à l'intérieur de Niryo One, via ssh.

Connaissez vos IP

Vous connaissez déjà l'adresse IP du Raspberry Pi 3 sur le réseau, car vous y êtes connecté.

Pour connaître l'adresse IP de votre machine distante, tapez le nom d'hôte -I.

Assurez-vous de réussir à envoyer un ping aux deux machines entre elles, en utilisant la commande suivante : ping

Modifiez la variable d'environnement ROS_MASTER_URI sur votre machine distante

Par défaut, le ROS_MASTER_URI devrait ressembler à : http://localhost:11311. Vous pouvez vérifier la valeur en tapant printenv | grep ROS_MASTER_URI

Vous devez changer le nom d'hôte et le remplacer par le nom d'hôte (ou IP) du Raspberry Pi. Par exemple, si l'IP du Raspberry Pi 3 sur le réseau est 192.168.43.179, alors vous devez faire :

exporter ROS_MASTER_URI=http://192.168.43.179:11311

Temps de test

Assurez-vous que ROS fonctionne sur le Raspberry Pi 3. Vous pouvez simplement démarrer un roscore ou lancer la pile complète Niryo One ROS.

Sur la machine distante, tapez rosnode list. Si la configuration est correctement effectuée, vous devriez voir la liste des nœuds actuellement exécutés sur le Master (Raspberry Pi 3). Cela signifie que la connexion est réussie. Vous pouvez désormais utiliser les outils de communication ROS, l'API Python, etc, directement depuis votre machine distante !

Lors de l'exécution de rosnode list, si vous obtenez l'erreur « ERREUR : Impossible de communiquer avec le maître ! », cela signifie que vous avez fait quelque chose de mal dans l'installation ou que votre installation ROS n'est pas correctement configurée. Assurez-vous d'avoir correctement installé ROS, lisez les pages wiki ROS sur le réseau et plusieurs machines et essayez à nouveau de suivre le guide.

En option : quelques améliorations

Si vous travaillez souvent depuis la même machine distante avec le même Raspberry Pi 3 Master, vous pouvez directement définir la variable d'environnement dans votre bashrc.

Écrivez simplement « export ROS_MASTER_URI=http://(ip_address):11311 » à la fin de votre fichier .bashrc.

Vous pouvez également définir un nom d'hôte au lieu d'une adresse IP, pour cela vous devrez éditer votre /etc/hosts et ajouter une nouvelle ligne, par exemple : "rpi_machine 192.168.43.179", puis vous pourrez définir le ROS_MASTER_URI sur http ://rpi_machine:11311

Comment pouvons-nous vous aider ?