Lancement de ROS sur le robot auto-équilibrant EduMIP

Présentation


Cette publication fournit des instructions pour l'installation et l'exécution du systÚme d'exploitation du robot (ROS) sur le robot mobile EduMIP. EduMiP est un robot auto-équilibré construit autour d'un BeagleBone Black avec un microprocesseur embarqué et une cape de robotique Beaglebone Black développé par James Strawson et le professeur Thomas Bewley en coordination avec le laboratoire de robotique coordonnée de l'UCSD et leur personnel. BeagleBone Blue, récemment sorti mi-2017, combine les fonctionnalités de BeagleBone Black et Robotics Cape en une seule carte. Le professeur Bewley utilise ce robot dans son cours MAE144 - Embedded Control & Robotics, Department of Mechanical and Aerospace Engineering, UCSD.
Je réponds aux questions dans les commentaires.

Liste des composants


Notez que vous avez besoin d'un Baglebone Blue ou de Beaglebone Black et Robotics Cape.

  • Beaglebone Blue (BBBL) : rĂ©cemment publiĂ© mi-2017, combine les fonctionnalitĂ©s de BeagleBone Black et Robotics Cape sur un ordinateur Ă  carte unique.

  • Beaglebone Black (BBB) : plate-forme Ă  faible coĂ»t prise en charge par la communautĂ© pour les dĂ©veloppeurs et les amateurs, avec un processeur AR3 Cortex AM335x 1 GHz, 512 Mo de RAM DDR3, 4 Go d'emcc 8 bits Ă  bord.
  • Robotics Cape (BBB-RC) : Beaglebone Black Robotics Cape est une carte d'E / S pour Beaglebone Black qui fournit plusieurs capteurs et une prise en charge matĂ©rielle riche, y compris les Ă©lĂ©ments suivants:

    • Capteurs:

      • IMU Ă  9 axes
      • BaromĂštre
    • E / S:

      • 4 encodeurs quadratiques
      • 4 pilotes de moteur Ă  pont en H
      • 8 sorties servo / ESC
      • Interface radio DSM RC standard
      • I2C UART ADC SPI GPIO PWM
      • ContrĂŽleur de charge de batterie au lithium polymĂšre

  • Kit EduMIP : Le kit comprend des moteurs Ă  courant continu, des engrenages, des encodeurs, des roues, des piĂšces en plastique, des fils et des attaches.
  • Carte Micro-SD : Une carte micro-SD d'au moins 8 Go.
  • Image Ubuntu 16.04 LTS pour BeagleBone Black and Blue : j Image reproduite avec l'aimable autorisation de Robert Nelson, Jeff O'Brian ici . Cette image contient ROS Kinetic avec ROS prĂ©installĂ©, comme un poste de travail ros catkin avec des packages de base ros EduMIP avec des packages prĂ©installĂ©s. Voici deux images Ubuntu, assurez-vous que vous utilisez la bonne image:

    • Utilisez cette image pour BragleBonbne Blue:

      2018_02_03_beaglebone_blue_16p04_Ubuntu_LTS_EduMIP_ROS.img.zip
    • Utilisez cette image pour BeagleBone Black Wireless + Robotics Cape:

      2018_02_03_beaglebone_black_wireless_16p04_Ubuntu_LTS_EduMIP_ROS.img.zip

    Une image de 8 Go est compressĂ©e dans un fichier zip de 2,5 Go. VOUS N'AVEZ PAS BESOIN DE DÉBALLER UN FICHIER ZIP. Le programme (Etcher) peut le dĂ©compresser Ă  la volĂ©e.
  • ClĂ© USB : utile pour les didacticiels du cours de programmation de systĂšmes robotiques. Un bon modĂšle bon marchĂ© est le Logitech Gamepad F310

Assemblage et test du kit EduMIP (partie du travail du cours de programmation des systĂšmes robotiques # 3)


Générez et testez EduMIP comme suit. Soyez prudent. Soyez doux.

1. EduMIP Build : Suivez les instructions de construction d'EduMIP étape par étape fournies ici .

Regardez ma vidéo de montage en russe:


2. Quelques notes supplémentaires:

  • Une documentation supplĂ©mentaire est disponible ici.
  • Si vous utilisez BEAGLEBONE BLACK + ROBOTIC CAPE, NE PAS MÉLANGER L'ALIMENTATION + 5V et + 9V: BBB a un connecteur d'alimentation pour + 5V. Robotics Cape a un connecteur d'alimentation ballel identique pour + 9V. L'enfer
  • Ne branchez pas l'alimentation + 9V directement dans le connecteur + 5V sur le BBB, le rĂ©sultat sera un BBB mort.
  • Coupez l'alimentation lorsque vous n'utilisez pas le robot: lorsque vous n'utilisez pas EduMIP ou ne chargez pas la batterie:

    Débranchez le cùble de charge 12V d'EduMIP
    Avant de transporter le robot Débranchez la batterie du cap Robotics.
  • NE PAS ENDOMMAGER le moteur et les connecteurs ENCODER: Les connecteurs Robotics Cape pour les codeurs et les moteurs sont trĂšs petits.

Configuration de Beaglebone Black / Blue et EduMIP (dans le cadre du cours ROS # 3)


Configurez votre Beaglebone Blue pour une utilisation dans EduMIP comme suit.

1. Vérifiez votre carte BeagleBone Blue / Black: avant d'assembler edumip, testez votre carte beaglebone blue - elle est livrée avec Debian Jessie installée sur son lecteur flash interne de 4 Go.

  1. Suivez les instructions ici . Pour installer les rÚgles udev sur votre PC Linux. Utilisez cette page uniquement pour découvrir comment protéger les rÚgles UDEV sur votre PC LINUX, ignorez tout le reste.
  2. AprÚs avoir installé les rÚgles udev appropriées sur votre ordinateur Linux, il établira une connexion Ethernet au BBB via la connexion USB via l'adaptateur Ethernet virtuel usb0. Votre ordinateur hÎte sera à l'adresse IP 192.167.7.1 et BBB sera à 192.168.7.2. SSH de l'ordinateur hÎte vers le BBB "ssh debian@192.168.7.2". Le mot de passe par défaut pour "debian" est "temppwd".
  3. Chaque fois que vous avez fini de travailler avec BBBL et que vous ĂȘtes prĂȘt Ă  l'Ă©teindre, ne vous contentez pas de l'Ă©teindre - exĂ©cutez la commande "sudo poweroff" pour Ă©teindre Linux et couper l'alimentation de la carte. Une fois tous les voyants de la carte Ă©teints, il est normal de dĂ©connecter le cĂąble USB.

2. Installez et testez l'image Linux 8 Go Ubuntu 16.04 LTS avec prise en charge ROS et BBBL / EduMIP sur votre BBBL : nous avons créé une image Ubuntu 8 Go qui prend en charge la cinétique ros et BBBL. Votre kit EduMIP possÚde une carte micro-SD vierge de 32 Go ou 64 Go.

  1. TĂ©lĂ©chargement: l'image prĂȘte Ă  l'emploi Ubuntu 16.04 pour la prise en charge ARM pour BBBL et ROS, voir ci-dessus pour les instructions intitulĂ©es «Image Ubuntu 16.04 LTS pour beaglebone noir et bleu».
  2. Vous n'avez pas besoin de décompresser l'image archivée.
  3. Télécharger Etcher: téléchargez et installez Etcher sur votre ordinateur avec etcher.io -Etcher est un programme pour écrire des images disque sur des cartes SD.
  4. Gravez l'image disque sur la carte micro-SD.
  5. InsĂ©rez soigneusement la carte micro SD: InsĂ©rez la carte micro SD dans la fente pour carte micro SD et le beaglebone. NE LE REMPLACEZ PAS, IL FOURNIT TOUJOURS UNE TOUCHE DOUCE À INSTALLER.
  6. Téléchargez-le! Téléchargez BBBL à partir d'une image de carte Micro-SD en la connectant à un ordinateur à l'aide d'un cùble USB.
    1. Si la carte Micro-SD contient une image de démarrage, alors BBBL démarrera à partir d'elle, et non à partir de son lecteur flash intégré.
    2. SSH sur BBBL ("ssh ubuntu@192.168.7.2" avec le mot de passe "temppwd") et assurez-vous que vous travaillez réellement dans une image de 32 Go. La commande df -h doit afficher au moins 2 Go d'espace libre et la commande htop doit afficher 1 Go du fichier d'échange actif.

3. Test EduMIP : vérifiez EduMIP en vous connectant en tant qu'utilisateur ubuntu avec le mot de passe «temppwd» comme suit:

  1. Remarque sur les messages d'erreur : la derniÚre version de la bibliothÚque roboticscape, qui est téléchargée sur l'image Ubuntu que nous utilisons, contient des erreurs PRU qui affichent le message d'erreur "ERREUR: pilote pru-rproc manquant" lors de l'appel des bibliothÚques roboticscape pour accéder au matériel BBBL Nous pouvons ignorer cet avertissement, il sera corrigé dans une version ultérieure. Attendez-vous à voir l'un de ces avertissements lors de l'exécution de programmes tels que rc_balance, rc_test_encoders, edumip_balance_ros, etc.

    Voici un exemple de ce message d'erreur:

    ubuntu@arm:~$ rc_test_imu ERROR: pru-rproc driver missing try 'test_imu -h' to see other options Accel XYZ(m/s^2) | Gyro XYZ (rad/s) | Mag Field XYZ(uT) | Temp (C) 0.23 -3.06 9.72 | 0.0 -0.0 -0.0 | 22.9 -4.1 -54.9 | 37.9 
  2. Test de l'encodeur : exécutez la commande rc_test_encoders et tournez un peu les roues - vous verrez des encodeurs E2 et E3 montrant la variation du nombre de tours.
  3. Test moteur : exécutez la commande "rc_test_motors-D 0.1" - lorsque vous soulevez l'EduMIP, les deux roues doivent tourner dans des directions opposées.
  4. Étalonnage du gyroscope : placez l'EduMIP sur la table, immobile, et exĂ©cutez la commande rc_calibrate_gyro et suivez les instructions. Ce programme d'Ă©talonnage Ă©crit l'Ă©talonnage du gyroscope dans /var/lib/roboticscape/gyro.cal
  5. Test du gyroscope : exécutez la commande "rc_test_imu" et assurez-vous que les données "Gyro XYZ (rad / s)" sont égales à zéro (ou presque zéro).
  6. Calibrage du magnétomÚtre : exécutez la commande "rc_calibrate_mag" et suivez les instructions - il vous sera demandé de tenir l'EduMIP dans votre main et de le faire tourner ("tourner") dans toutes les orientations. Ce programme d'étalonnage écrit le fichier d'étalonnage du magnétomÚtre /var/lib/roboticscape/mag.cal
  7. Test du magnĂ©tomĂštre : exĂ©cutez la commande rc_test_imu et vĂ©rifiez que les donnĂ©es du champ magnĂ©tique XYZ (uT) ne sont pas nulles. L’amplitude du vecteur du champ magnĂ©tique de la Terre Ă  Baltimore et Woods Hole est d’environ 52uT, mais ne vous inquiĂ©tez pas si votre magnĂ©tomĂštre semble un peu Ă©teint.

    Vous pouvez connaßtre la latitude, la longitude et l'intensité du champ magnétique pour Baltimore en entrant votre code postal sur cette page Web .
  8. Test d'équilibrage EduMIP : Exécutez la commande «rc_balance» et mettez le robot en place. Votre robot doit rester en place.



4. Test ROS sur BBBL

  1. VĂ©rifiez le fichier .bashrc. À la fin, le fichier doit avoir les commandes suivantes dans l'ordre suivant:
    Tout d'abord, la commande «source /opt/ros/kinetic/setup.bash» pour configurer les variables d'environnement ROS.
    DeuxiĂšmement, la commande "source ~ / catkin_ws / devel / setup.bash" pour ajouter l'espace de travail local catkin Ă  l'environnement ROS (cela s'appelle "superposition d'espace de travail").
  2. Exécutez la commande «source .bashrc» pour configurer les variables d'environnement ROS. Vérifiez-les avec la commande printenv / grep ROS.
  3. Assurez-vous que vous pouvez exécuter roscore et d'autres utilitaires ROS.
  4. Assurez-vous que vous pouvez exécuter "catkin_make" dans l'espace de travail BBBL ROS.
  5. Image vérifiée

5. Mettre à jour et tester le programme d'équilibre ROS EduMip :

  1. Si vous ne l'avez pas déjà fait, calibrez le gyroscope EduMIP avec la commande "rc_calibrate_gyro" pendant que le robot est toujours sur la table.
  2. Connectez-vous à EduMIP avec le nom d'utilisateur «ubuntu» et le mot de passe «temppwd»
  3. Configurer le Wi-Fi sur EduMIP: configurez votre Wi-Fi pour pouvoir cloner des paquets ROS à partir de notre référentiel git.
  4. Si vous avez installé l'image Ubuntu 16.04 préinstallée comme décrit ci-dessus, vous aurez déjà les packages «edumip_msgs» et «edumip_ros_balance» dans le répertoire source de catkin worskace, c'est-à-dire ~ / catkin_ws / src / edumip_msgs et ~ / catkin_ws / src / edumip_balance_ros. Mettez à jour le package edumip_balance_ros avec la commande «cd ~ / catkin_ws / src / edumip_balance_ros» et «git pull» pour télécharger le dernier code de ce package. Si vous obtenez le message d'erreur "erreur: vos modifications locales dans les fichiers suivants seront écrasées par la fusion:

    src / edumip_balance_ros.cpp Veuillez valider vos modifications ou les cacher avant de pouvoir fusionner. ", puis supprimez le fichier src / edumip_balance_ros.cpp interférant et" git pull "à nouveau.
  5. Si vos edumip_msgs et edumip_balance_ros ne sont pas dĂ©jĂ  dans le rĂ©pertoire src de l'espace de travail catkin de votre EduMIP (il devrait ĂȘtre ~ / catkin_ws / src ), alors clonez ces deux packages ROS dans ~ / catkin_ws / src ):
    1. Le package edumip_msg dĂ©finit le type de message personnalisĂ© edumip_msf / EduMipState pour EduMIP. Ce package ne contient pas de code source, uniquement la dĂ©finition des messages et des communications CMakeLists.txt et package.xml. Si votre ordinateur doit accĂ©der Ă  ce type de message, vous devez Ă©galement cloner le projet sur votre ordinateur. Ce package est indĂ©pendant de l'architecture. Ce paquet peut ĂȘtre clonĂ© par git Ă  partir de cette URL publique .
    2. Le package edumip_balance_ros contient le noeud C ++ edumip_ros_node ROS.cpp, qui est une version du programme Rc-ified rc_balance. L'image Linux que nous vous avons fournie a dĂ©jĂ  installĂ© les pilotes Robotics Cape et ROS. Ce paquet peut ĂȘtre clonĂ© par git Ă  partir de cette URL publique .
  6. Créez ces deux packages à l'aide de la commande catkin_make dans le répertoire principal de l'espace de travail catkin.
  7. Vérifiez que ROS connaßt désormais les messages utilisateur définis dans le package edumip_msgs avec la commande: rosmsg show edumip_msgs / EduMipState
  8. Ouvrez deux sessions ssh distantes sur EduMIP:

    Tout d'abord, dans le premier shell, lancez «roslaunch edumip_balance_ros edumip_balance_ros»
    DeuxiĂšmement, dans le deuxiĂšme shell, voir les rubriques ros et print topics / edumip / state.
    Mettez votre robot, il doit s'équilibrer.

6. DĂ©sactivez correctement BBBL : lorsque vous avez terminĂ© et que vous ĂȘtes prĂȘt Ă  dĂ©sactiver BBBL, ne vous contentez pas de l'Ă©teindre - exĂ©cutez la commande "sudo poweroff" pour dĂ©sactiver Linux et couper l'alimentation de la carte. Une fois toutes les LED de la carte Ă©teintes, vous pouvez dĂ©connecter le cĂąble USB.

Quelques notes Linux utiles pour BBB et BBBL


  • Les Ă©diteurs emacs et nano sont dĂ©jĂ  installĂ©s sur l'image BBB linux fournie pour ce tutoriel.
  • L'utilitaire Linux "Locate" n'est pas installĂ© par dĂ©faut, mais vous pouvez l'installer Ă  l'aide de "sudo apt-get install Locate" et initialiser la base de donnĂ©es Locate avec la commande "sudo updatedb" (prend plusieurs minutes).
  • Le serveur de temps NTP est installĂ© sur l'image BBB linux fournie pour cette leçon, mais il ne sera synchronisĂ© que si le BBB dispose d'une route vers Internet, par exemple, lorsque votre WIFi est activĂ©. Connexion rĂ©seau USB Ă  un ordinateur par dĂ©faut n'est pas acheminĂ© vers Internet. Vous pouvez vĂ©rifier l'Ă©tat de ntp Ă  l'aide de la commande ntpq-p.

Remarques sur la configuration de BeagleBone Black (BBB) ​​et beaglebone Blue (BBBL) avec Ununtu 16.04 et ROS


(Ils sont rĂ©pertoriĂ©s ici Ă  titre de rĂ©fĂ©rence uniquement et ne devraient pas ĂȘtre des Ă©tapes obligatoires pour terminer la tĂąche 3).

Connectez votre PC Ă  BBB via USB

  • Suivez les instructions ici.
  • AprĂšs avoir installĂ© les pilotes appropriĂ©s ou les rĂšgles udev sur l'ordinateur hĂŽte, il Ă©tablira une connexion Ethernet avec le BBB via la connexion USB via l'adaptateur Ethernet virtuel usb0. Votre ordinateur hĂŽte sera Ă  l'adresse IP 192.167.7.1 et BBB sera 192.168.7.2. SSH de l'ordinateur hĂŽte au BBB "ssh ubuntu@192.168.7.2". Le mot de passe par dĂ©faut pour ubuntu est temppwd.

Comment établir une connexion Ethernet avec DNS et une route vers Internet externe
WiFi (BBBL, BBB sans fil, BBB Classic + adaptateur WiFi USB):

  • WiFi en un tournemain : suivez les instructions pour connmanctl listĂ©es dans les commentaires sur le fichier / etc / network / interfaces. Pour lire les commentaires, utilisez la commande cat / etc / network / interfaces.
  • Remarque : connmanctl ne prend pas en charge les rĂ©seaux d'entreprise tels que hopkins, mais il prend en charge les rĂ©seaux WPA / WPA2.
  • Remarque : lors du chargement de l'adaptateur BBBL WiFi n'est pas toujours correct. Si vous ne voyez pas «wlan0» dans la sortie de la commande ifconfig, essayez d'activer manuellement BBBL comme interface wlan0 en utilisant la commande «ifconfig wlan0 up». Ensuite, vous devriez voir wlan0 dans la sortie de la commande ifconfig.
  • Ifconfig : utilisez la commande ifconfig pour voir toutes les interfaces rĂ©seau configurĂ©es (LAN, WiFi, USB, etc.) sur votre machine.
  • Iwconfig : utilisez la commande «iwconfig» pour voir toutes les interfaces rĂ©seau WiFi configurĂ©es sur votre ordinateur.
  • Qui suis-je? Le moyen le plus simple de dĂ©terminer l'adresse IP (ou les adresses) d'une machine Linux consiste Ă  se connecter et Ă  utiliser la commande ifconfig.
  • JournĂ©e de la marmotte Wifi! Malheureusement, BBBL ne se souvient pas actuellement des paramĂštres WiFi.

La connexion WiFi prĂ©fĂ©rĂ©e devrait ĂȘtre comme BBBL et votre ordinateur est connectĂ© au mĂȘme point d'accĂšs Wi-Fi, vous pouvez donc accĂ©der Ă  BBBL depuis votre ordinateur, et votre BBBL a accĂšs Ă  Internet pour git repos, etc.

Vous pouvez Ă©galement vous connecter directement Ă  BBBL en l'utilisant comme point d'accĂšs Wi-Fi en connectant votre ordinateur au rĂ©seau Wi-Fi BeagleBone-XXXX, oĂč XXXX est unique Ă  votre BBBL. Le mot de passe WiFi est "BeagleBone". Il s'agit d'une simple connexion, mais ni BBBL ni votre ordinateur n'auront accĂšs Ă  Internet pour git repos, etc. AprĂšs la connexion, votre ordinateur aura une adresse IP de 192.168.XXX.XXX L'adresse IP BBBL sera 192.168.XXX.1

Mise Ă  jour de votre distribution BBBL Ubuntu

Sur BBB, exécutez les commandes Linux sudo apt update ET sudo apt dist-upgrade Linux

Installation du logiciel Robotics Cape sur BBBL

  • La prise en charge de Robotics Cape / BBBL est dĂ©jĂ  disponible sur l'image Ubuntu prĂ©configurĂ©e pour BBBL dĂ©crite ci-dessus, vous n'avez pas besoin de la rĂ©installer.
  • Installation binaire sous Ubuntu 16.04 sur ARM: "sudo apt-get install roboticscape"
  • Installation Ă  partir de la source

Vous souhaitez installer une copie du code source de la cape robotique et un exemple de code sur votre BBB. Il est disponible ici . Installation d'une copie dans le répertoire personnel:

"Cd ~"
"Git clone github.com/StrawsonDesign/Robotics_Cape_Installer.git "

Vous pouvez maintenant afficher le code source de la cape de robotique et suivre les instructions de compilation et d'installation de la bibliothĂšque de cape de robotique et des exemples de programmes.

Installation de packages ROS de base pour EduMIP

Clonez ces deux dépÎts git dans votre répertoire ~ / catkin_ws / src:


cd vers ~ / catkin_ws et récupérez les packages "catkin_make".

Pour exĂ©cuter le nƓud edumip_balance_ros, le programme a besoin des privilĂšges root. La façon la plus simple de le faire est peut-ĂȘtre de modifier les autorisations et la propriĂ©tĂ© du binaire compilĂ© Ă  l'aide de ces deux commandes (dans cet ordre) aprĂšs l'avoir compilĂ©:

  • racine chown sudo: root ~ / catkin_ws / devel / lib / edumip_balance_ros
  • sudo chmod u + s ~ / catkin_ws / devel / lib / edumip_balance_ros

ExĂ©cutez le nƓud ROS edumip_balance_ros " roslaunch edumip_balance_ros edumip_balance_ros.launch ". Le robot s'Ă©quilibrera, recevra des messages de vitesse de torsion de la commande topic / edumip / cmd et publiera son Ă©tat dans la rubrique topic / edumip / state ROS

Si vous ne trouvez pas le fichier de démarrage edumip_balance_ros.launch dans le répertoire ~ / catkin_ws / src / edumip_balance_ros / launch, vous devez alors "git pull" la derniÚre version de ce package, comme décrit ci-dessus, et recompiler la source avec "catkin_make".

Voir le devoir de 3Ăšme semaine sur cette page web de cours pour plus d'informations sur l'utilisation de ces backages ROS: Programmation des systĂšmes de robot Semaine 3

Remarques sur le démarrage d'EduMIP avec ROS


Pourquoi est-ce que j'obtiens des erreurs d'autorisation lors de l'exécution d'edumip_balance_ros et comment puis-je le corriger?
Lisez ceci si vous obtenez des erreurs comme «ne peut pas ouvrir:

/ sys / devices / platform / ocp / ocp: H18_pinmux / state
Pinmux: autorisation refusée »lors de l'exécution d'edumip_balance_ros.

Lors de la compilation du projet edumip_balance_ros sur edumip avec catkin_make, compilez le fichier exécutable:

"~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros"
ubuntu @ arm: ~ / catkin_ws $ ls -l devel / lib / edumip_balance_ros /
272 au total
-rwxrwxr-x 1 ubuntu ubuntu 278292 18 fév 18:48 edumip_balance_ros

Notez que le propriétaire et le groupe du fichier sont ubuntu: ubuntu, et qu'il est exécutable ("-rwxrwxr-x").

Lorsque vous essayez d'exécuter ce fichier récemment compilé, vous obtiendrez des erreurs d'autorisation, comme indiqué ci-dessous:
ubuntu @ arm: ~ / catkin_ws $ roslaunch edumip_balance_ros edumip_balance_ros.launch
... connexion Ă  /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/roslaunch-arm-2845.log
Vérification du répertoire des journaux pour l'utilisation du disque. Cela peut prendre un certain temps.
Appuyez sur Ctrl-C pour interrompre
Vérification de l'utilisation du disque du fichier journal. L'utilisation est <1 Go.

a lancé le serveur roslaunch 192.168.10.102 : 37365 /

SOMMAIRE
========

PARAMÈTRES
* / rosdistro: cinétique
* / rosversion: 12.1.12

NOEUDS
/
edumip_balance_ros_node (edumip_balance_ros / edumip_balance_ros)

ROS_MASTER_URI = http: //192.168.10.101: 11311

processus [edumip_balance_ros_node-1]: a commencé avec pid [2874]
[INFO] [1518979862.674565427]: Fichier /home/ubuntu/catkin_ws/src/edumip_balance_ros/src/edumip_balance_ros.cpp compilé le 3 février 2018 à 19:38:02.
ne peut pas ouvrir: / sys / devices / platform / ocp / ocp: H18_pinmux / state
Pinmux: autorisation refusée
ne peut pas ouvrir: / sys / devices / platform / ocp / ocp: C18_pinmux / state
Pinmux: autorisation refusée
ne peut pas ouvrir: / sys / devices / platform / ocp / ocp: U16_pinmux / state
Pinmux: autorisation refusée
ne peut pas ouvrir: / sys / devices / platform / ocp / ocp: D13_pinmux / state
Pinmux: autorisation refusée
ne peut pas ouvrir: / sys / devices / platform / ocp / ocp: J15_pinmux / state
Pinmux: autorisation refusée
ne peut pas ouvrir: / sys / devices / platform / ocp / ocp: H17_pinmux / state
Pinmux: autorisation refusée
AVERTISSEMENT: pilote PINMUX manquant
Vous avez probablement besoin d'un noyau plus récent
Impossible d'ouvrir / dev / mem
mmap_gpio_adc.c n'a pas réussi à initialiser gpio
[INFO] [1518979862.806645002]: ERREUR: échec de l'initialisation de cape.
Le processus [edumip_balance_ros_node-1] est mort [pid 2874, code de sortie 255, cmd / home / ubuntu / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros __name: = edumip_balance_ros_node __log: = / home / ubuntu / dd. 14dc-11e8-b293-dc5360d671c6 / edumip_balance_ros_node-1.log].
fichier journal: /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/edumip_balance_ros_node-1*.log
tous les processus sur la machine sont morts, roslaunch se terminera
arrĂȘt du moniteur de traitement ...
... arrĂȘt du moniteur de traitement terminĂ©
fait

Le problÚme ici est que votre exécutable doit s'exécuter en tant que root, et non en tant qu'utilisateur normal, pour accéder aux registres matériels de BeagleBone.

AprÚs avoir compilé edumip_ros_balance, vous pouvez modifier les autorisations root du fichier exécutable (sudo chown root: root <nom de fichier>) et définir son bit collant (sudo chmod u + s <nom de fichier>) en exécutant le script suivant:

"~ / catkin_ws / src / edumip_balance_ros / scripts / edumip_change_perms.sh"

Si vous regardez ce script shell, vous verrez qu'il exécute ces deux commandes:
racine chown sudo: root ~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros
sudo chmod u + s ~ / catkin_ws / devel / lib / edumip_balance_ros / edumip_balance_ros

AprÚs avoir exécuté ce script (il vous demandera le mot de passe sudo), les autorisations et les groupes du fichier exécutable seront modifiés de ubuntu: ubuntu à root: root, et son bit collant sera installé (les autorisations étaient auparavant "- rwxrwxr-x" et sont devenues "- rwsrwxr -x "):
ubuntu @ arm: ~ / catkin_ws $ ls -l devel / lib / edumip_balance_ros /
272 au total
-rwsrwxr-x 1 racine racine 278292 18 février 18:48 edumip_balance_ros

Maintenant, lorsque vous exécutez edumip_balance_ros, cela devrait fonctionner correctement, comme indiqué ci-dessous:

ubuntu @ arm: ~ $ roslaunch edumip_balance_ros edumip_balance_ros.launch
ubuntu @ arm: ~ $ roslaunch edumip_balance_ros edumip_balance_ros.launch
... connexion Ă  /home/ubuntu/.ros/log/a271dd92-14dc-11e8-b293-dc5360d671c6/roslaunch-arm-2099.log
Vérification du répertoire des journaux pour l'utilisation du disque. Cela peut prendre un certain temps.
Appuyez sur Ctrl-C pour interrompre
Vérification de l'utilisation du disque du fichier journal. L'utilisation est <1 Go.

a lancé le serveur roslaunch 192.168.10.102 : 34253 /

SOMMAIRE
========

PARAMÈTRES
* / rosdistro: cinétique
* / rosversion: 12.1.12

NOEUDS
/
edumip_balance_ros_node (edumip_balance_ros / edumip_balance_ros)

ROS_MASTER_URI = http: //192.168.10.101: 11311

processus [edumip_balance_ros_node-1]: a commencé avec pid [2108]
[INFO] [1518981653.978399507]: Fichier /home/ubuntu/catkin_ws/src/edumip_balance_ros/src/edumip_balance_ros.cpp compilé le 3 février 2018 à 19:38:02.
ERREUR: pilote pru-rproc manquant
[INFO] [1518981654.104574860]: ContrÎleur de boucle intérieure D1:

commande: 2
timestep dt: 0,0100
-4,9450zÂČ + 8,8620z + -3,9670
- 1,0000zÂČ + -1,4810z + 0,4812
[INFO] [1518981654.107474727]:
ContrĂŽleur de boucle externe D2:

commande: 2
timestep dt: 0,0100
0,1886zÂČ + -0,3721z + 0,1835
- 1,0000zÂČ + -1,8605z + 0,8605
[INFO] [1518981654.573431369]:
Tenez votre MIP en position verticale pour commencer l'équilibrage

ROS ne trouve pas mon package ROS

Si dans votre environnement ROS, il ne comprend pas que vous avez de nouveaux packages dans catkin_ws / src, essayez de mettre Ă  jour votre profil rospack avec la commande rospack profile et mettez Ă  jour le cache rosdep avec la commande rosdep update.

Compilation et liaison aux bibliothĂšques Robotics Cape "C"

La bibliothÚque Robotics Cape est préinstallée sur l'image Ubuntu 16.04, disponible sur le lien fourni plus haut sur cette page. Il a été installé à l'aide de la commande sudo apt-get install roboticscape.

La bibliothĂšque de cap robotique et les fichiers d'en-tĂȘte associĂ©s sont dĂ©jĂ  installĂ©s sur EduMIP. Lien vers les bibliothĂšques /usr/lib/libroboticscape.so et deux fichiers d'en-tĂȘte de niveau supĂ©rieur rc_usefulincludes.h et roboticscape.h.

Vous pouvez vous rĂ©fĂ©rer au projet edumip_balance_ros pour apprendre Ă  utiliser les fichiers d'en-tĂȘte C de cap robotique et la bibliothĂšque de liens C avec le nƓud ROS C ++.

Voir edumip_balance_ros / src / edumip_balance_ros.cpp pour voir comment inclure des fichiers d'en-tĂȘte C dans un programme C ++ avec la directive externe «C».

Voir edumip_balance_ros / CMakeLists.txt pour savoir comment lier votre programme Ă  la bibliothĂšque roboticscape C.

Package Edumip_balance_ros

  • Pour compiler le package edumip_balance_ros , vous devez Ă©galement installer le package edumip_msgs .
  • Le package edumip_balance_ros ne se compilera pas sur votre ordinateur, il est uniquement destinĂ© Ă  la compilation sur EduMIP.

Configuration horizontale EduMIP

Plusieurs équipes d'étudiants ont utilisé EduMIP dans une configuration horizontale avec une roue pivotante.


Pour ce faire, vous devrez remplacer le projet «edumip_balance_ros» par votre propre nouveau code pour contrĂŽler les moteurs de roue, ainsi que pour lire et publier les encodeurs de roue. Et hier, j'ai examinĂ© dans la salle de classe l'un des packages possibles, vous pouvez utiliser le package differentiel_drive ROS (http://wiki.ros.org/differential_drive). Pour utiliser le package diffĂ©rentiel_drive, vous devez Ă©crire un nouveau nƓud C ++ pour edumip, qui (a) lit les encodeurs de roue et les publie par rubrique et (b) souscrit aux rubriques des commandes de moteur et des commandes de tension pour les moteurs de roue.







Périphériques de port série

Afin d'interagir avec des capteurs sur un port série, comme un capteur à ultrasons USB démontré en classe, vous devrez pouvoir ouvrir, lire et envoyer via des ports série.




Bon package pour ce package série ROS . Vous pouvez l'installer "sudo apt-get install ros-kinetic-serial".

Exemple simple ici

Une copie de src peut ĂȘtre clonĂ©e dans l'espace de travail ROS Ă  l'aide de la commande git clone github.com/wjwwood/serial.git et compilĂ©e Ă  l'aide de catkin_make. Le rĂ©pertoire examples contient des exemples plus complexes d'utilisation du port sĂ©rie avec le package sĂ©rie.

Notez que ce package ros nommĂ© "serial" n'est pas un package "rosserial". Le package "sĂ©rie" est une bibliothĂšque polyvalente lĂ©gĂšre pour lire et envoyer des donnĂ©es sur des ports sĂ©rie. "Rosserial" est un package pour coupler de petits appareils tels que Arduino Ă  mesure que les nƓuds se dĂ©veloppent.

Ajout du traducteur:

J'ai ajouté mes photos et vidéos à l'article, ainsi que des photos des travaux des étudiants. En général, seule cette instruction est suffisante pour fonctionner, il est seulement souhaitable d'avoir au moins une expérience minimale en ligne de commande Linux et une compréhension de base de l'architecture ROS. Les scripts du robot sont écrits en C.

Vous pouvez poser des questions dans les commentaires, je lis et réponds.

Source: https://habr.com/ru/post/fr413677/


All Articles