Table des matières:

Roomblock : une plateforme pour apprendre la navigation ROS avec Roomba, Raspberry Pi et RPLIDAR : 9 étapes (avec photos)
Roomblock : une plateforme pour apprendre la navigation ROS avec Roomba, Raspberry Pi et RPLIDAR : 9 étapes (avec photos)

Vidéo: Roomblock : une plateforme pour apprendre la navigation ROS avec Roomba, Raspberry Pi et RPLIDAR : 9 étapes (avec photos)

Vidéo: Roomblock : une plateforme pour apprendre la navigation ROS avec Roomba, Raspberry Pi et RPLIDAR : 9 étapes (avec photos)
Vidéo: Geoffrey Sawyer Charron: Véhicule automatisé à l’aide du capteur Lidar 360° dans l’environnement ROS 2024, Juillet
Anonim
Image
Image
De quoi as-tu besoin
De quoi as-tu besoin

Qu'est-ce que c'est?

"Roomblock" est une plateforme robotique composée d'un Roomba, d'un Raspberry Pi 2, d'un capteur laser (RPLIDAR) et d'une batterie mobile. Le cadre de montage peut être fabriqué par des imprimantes 3D. Le système de navigation ROS permet de faire une carte des pièces et de l'utiliser pour atteindre l'objectif de manière autonome.

Qui a besoin de ça ?

Toute personne souhaitant s'initier aux technologies de pointe de la navigation robotique, de la cartographie et de la conduite autonome. Ce robot peut être construit facilement et à moindre coût que les autres plates-formes commerciales. ROS est maintenant de facto un système logiciel standard pour le domaine de la recherche robotique. Ce film montre ce qui est possible avec le système de navigation ROS.

Étape 1: ce dont vous avez besoin

De quoi as-tu besoin
De quoi as-tu besoin
De quoi as-tu besoin
De quoi as-tu besoin
Construisez un câble série USB (facultatif)
Construisez un câble série USB (facultatif)
Construire un câble série USB (facultatif)
Construire un câble série USB (facultatif)

Câble série USB

Si vous n'avez pas de câble série USB pour Roomba, vous pouvez le construire facilement avec ce produit.

  • FTDI: TTL-232R-5V
  • Akiduki Denshi: TTL-232R-5V

Notez que l'interface du Roomba est TTL (5V).

Connecteur

Vous avez besoin d'un connecteur mini-DIN 8 broches pour l'interface série du Roomba. En fait, le connecteur du Roomba est un connecteur mini-DIN 7 broches, cependant, il est beaucoup plus facile d'acheter un connecteur 8 broches que 7 broches.

  • Digikey: connecteur mini-DIN 8 broches
  • Kyoritsu: connecteur mini-DIN 8 broches

Soudure

Soudez le câble série au connecteur à 8 broches. Vérifiez la connexion par l'image ci-jointe et le document de spécification de l'interface ouverte Roomba.

Spécification de l'interface ouverte du Roomba

Veuillez noter qu'il est sûr de connecter Vcc (rouge) et RTS (vert) pour éviter le problème de flux matériel.

Étape 4: configuration du module de caméra Raspberry Pi (facultatif)

Configurer le module de caméra Raspberry Pi (facultatif)
Configurer le module de caméra Raspberry Pi (facultatif)
Configurer le module de caméra Raspberry Pi (facultatif)
Configurer le module de caméra Raspberry Pi (facultatif)

Si vous avez un module de caméra Raspberry Pi, vous pouvez le connecter à Raspberry Pi. Ceci est facultatif pour apprendre la navigation, cependant, il est amusant d'avoir une vue de la vue du robot.

La pièce de montage de la caméra est également incluse dans les données de trame sur Thingiverse. Le module caméra peut être fixé avec quatre vis M2.

Étape 5: Configurer le PC local

Configurer le PC local
Configurer le PC local

Installer Ubuntu

Installez le bureau Ubuntu 16.04 en suivant la page officielle

Page officielle d'Ubuntu

Installer ROS

Veuillez consulter la page officielle de ROS. Installez les packages complets de bureau Kinetic.

Instructions d'installation ROS Kinetic

Installer le package Roomblock ROS

Le package pour roomblock est déjà publié dans Kinetic. Vous pouvez les installer par la commande apt.

$ sudo apt install ros-kinetic-roomblock

C'est ça.

Si vous souhaitez modifier et construire le package à partir du code source, vous pouvez les obtenir à partir de GitHub.

GitHub - bloc de pièces

Veuillez suivre les instructions dans README.md.

Si vous avez un problème ou une question concernant le logiciel, veuillez créer un problème sur GitHub Issues afin que nous puissions suivre les problèmes efficacement. Veuillez éviter de les publier sur Instructables.

Étape 6: Configurer Raspberry Pi

Configurer Raspberry Pi
Configurer Raspberry Pi

Installer Ubuntu

Installez Ubuntu 16.04 sur le Raspberry Pi en suivant le guide d'installation:

Wiki Ubuntu: RaspberryPi

Installer ROS

Installez ROS Kinetic en suivant le guide d'installation:

Installation Ubuntu de ROS Kinetic

Installer le package Roomblock ROS

Vous devez installer le package roomblock à partir du code source. Le code source du package est sur GitHub.

GitHub - bloc de pièces

Veuillez suivre les instructions dans README.md.

Si vous avez un problème ou une question concernant le logiciel, veuillez créer un problème sur GitHub Issues, afin que nous puissions suivre les problèmes efficacement. Veuillez éviter de les publier sur Instructables.

Module de caméra Raspberry Pi (facultatif)

Si vous avez un module de caméra Rasberry Pi, vous devez installer libraspberrypi-dev. Veuillez consulter README.md dans Github.

Étape 7: Télé-opération

Télé-opération
Télé-opération
Télé-opération
Télé-opération

Affichez le système de base sur Raspberry Pi

Tout d'abord, vous devez faire apparaître le système. Sur le terminal Raspberry Pi, lancez le système de base en tant que:

$ export ROS_IP=IP_ADDRESS_OF_RASPBERRY_PI

$ roslaunch roomblock_bringup roomblock.launch

RPLIDAR commence à tourner et vous pouvez maintenant vous connecter au maître ROS du robot depuis votre PC local.

Télé-opération à partir d'un PC local

Vous pouvez utiliser un joypad pour faire fonctionner le robot. Si vous possédez un joypad de XBox, vous pouvez utiliser ce fichier de lancement. Sinon, vous devrez peut-être modifier le fichier de lancement pour l'adapter à votre manette de jeu. Veuillez consulter les pages du wiki ROS pour plus de détails.

Wiki ROS - teleop_twist_joy

$ export ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ roslaunch roomblock_bringup teleop.launch

Vous pouvez maintenant contrôler le Roomba avec un joystick.

Au lieu de cela, vous pouvez utiliser un clavier.

$ export ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

Veuillez consulter les pages du wiki ROS pour plus de détails.

Wiki ROS - teleop_twist_keyboard

Étape 8: Lancez le logiciel de cartographie

Lancer le logiciel de cartographie
Lancer le logiciel de cartographie
Lancer le logiciel de cartographie
Lancer le logiciel de cartographie

Affichez le logiciel de cartographie sur le PC local

Affichez le logiciel de cartographie pour créer la carte autour du robot.

$ export ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ export ROS_IP=IP_ADDRESS_OF_LOCAL_PC $ roslaunch roomblock_mapping gmapping.launch

Vous pouvez maintenant voir Rviz (logiciel de visualisation). Faites circuler le robot dans la pièce pour créer une carte de la pièce.

Vous pouvez consulter la page wiki ROS pour le système de cartographie.

  • Wiki ROS - gmapping
  • Wiki ROS - map_server

Étape 9: Lancez la navigation autonome

Lancer la navigation autonome
Lancer la navigation autonome
Lancer la navigation autonome
Lancer la navigation autonome

Mettre en place un logiciel de navigation autonome

Vous pouvez maintenant démarrer le système de navigation autonome sur le PC local en tant que:

$ export ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ export ROS_IP=IP_ADDRESS_OF_LOCAL_PC $ roslaunch rolomblock_navigation amcl.launch

Vous pouvez utiliser Rviz pour spécifier l'objectif. Le robot doit aller au but de manière autonome.

Veuillez consulter la page wiki ROS pour le système autonome.

  • Wiki ROS - navigation
  • Wiki ROS - amcl

S'amuser

Si vous avez des questions générales ou des problèmes concernant ROS, veuillez consulter le wiki ROS. Nous ne pouvons pas répondre aux questions générales sur ROS.

Wiki ROS - Assistance

Si vous avez un problème ou une question concernant le logiciel Roomblock, veuillez créer un problème sur GitHub Issues afin que nous puissions suivre les problèmes efficacement. Veuillez éviter de les publier sur Instructables.

Conseillé: