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:
- 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.
- 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.
- 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".
- 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.
- 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».
- Vous n'avez pas besoin de décompresser l'image archivée.
- 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.
- Gravez l'image disque sur la carte micro-SD.
- 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.
- 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.
- 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é.
- 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:
- 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
- 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.
- 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.
- Ă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
- 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).
- 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
- 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 . - 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- 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"). - Exécutez la commande «source .bashrc» pour configurer les variables d'environnement ROS. Vérifiez-les avec la commande printenv / grep ROS.
- Assurez-vous que vous pouvez exécuter roscore et d'autres utilitaires ROS.
- Assurez-vous que vous pouvez exécuter "catkin_make" dans l'espace de travail BBBL ROS.
- Image vérifiée
5.
Mettre à jour et tester le programme d'équilibre ROS EduMip :
- 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.
- Connectez-vous à EduMIP avec le nom d'utilisateur «ubuntu» et le mot de passe «temppwd»
- Configurer le Wi-Fi sur EduMIP: configurez votre Wi-Fi pour pouvoir cloner des paquets ROS à partir de notre référentiel git.
- 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. - 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 ):
- 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 .
- 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 .
- Créez ces deux packages à l'aide de la commande catkin_make dans le répertoire principal de l'espace de travail catkin.
- 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
- 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 externeWiFi (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 UbuntuSur 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 EduMIPClonez 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.launchubuntu @ 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 ROSSi 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 EduMIPPlusieurs é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érieAfin 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
iciUne 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.