Appelez votre propre module python à partir du package ROS

Je ne sais pas comment importer une collection de fonctions qui ne sont pas liées à mon propre ROS dans un package ROS, donc jusqu'à présent, j'ai créé un package ROS dédié et je l'ai importé. Après tout, je voulais le rendre indépendant, alors j'ai essayé une méthode comme celle-là avec essais et erreurs.

Structure des fichiers

catkin_ws
├─ build
├─ devel
└─ src
   ├─ my_py_utils
   │  ├── __init__.py(Fichier vide)
   │  └── util_functions.py
   └─ my_ros_pkg
      ├── CMakeLists.txt
      ├── __init__.py(Fichier vide)
      ├── package.xml
      └── src
          ├── __init__.py
          └── robot_controller.py

C'est presque comme ça. Ici, envisagez d'utiliser la fonction (do_something) dans util_functions.py de robot_controller.py.

Ce que j'ai essayé

Modèle à faire correctement pour le moment

dans robot_controller.py

from my_py_utils.util_functions import do_something 

Est inséré. ↓

ImportError: No module named my_py_utils.util_functions

devenir.

Modèle à essayer avec chemin relatif

dans robot_controller.py

from ...my_py_utils.util_functions import do_something 

Est inséré. ↓ pycharm le reconnaît, mais quand il s'agit de `` rosrun```

ValueError: Attempted relative import in non-package

devenir.

Un modèle qui vous apprendra le chemin correctement

dans robot_controller.py

import sys
sys.path.append('/home/[UserName]/catkin_ws/src')
from my_py_utils.util_functions import do_something 

Est inséré. ↓ Cela fonctionne correctement!

finalement

Après tout, j'ai seulement essayé la méthode d'importation en tant que python normal, mais il est gênant de spécifier le chemin absolu, et j'ai une théorie selon laquelle je devrais utiliser ROS package.xml, donc j'aimerais essayer à nouveau. (Je veux que quelqu'un me dise) De plus, je ne comprenais pas grand-chose à Python ou ROS que je ne le pensais (´ ・ ω ・ `). Faisons de notre mieux.

Recommended Posts

Appelez votre propre module python à partir du package ROS
[Python] journalisation dans votre propre module
[Python] Empaquetez et distribuez vos propres modules
Appelez votre propre bibliothèque partagée en langage C à partir de Python à l'aide de ctypes
Créez rapidement votre propre module avec setuptools (python)
Utilisez le module Python nghttp2 de Homebrew de Python de pyenv
Appeler Polly à partir du kit SDK AWS pour Python
Flux de création de votre propre package avec setup.py avec python
Appelons votre propre bibliothèque C ++ avec Python (Préférences)
Utilisez CASA Toolkit dans votre propre environnement Python
Appeler CPLEX depuis Python (DO cplex)
À propos du module Python venv
Appelez l'API avec python3.
[Ansible] Comment appeler des variables lors de la création de votre propre module
Obtenez votre fréquence cardiaque à partir de l'API fitbit en Python!
Exécutez l'intelligence de votre propre bibliothèque python avec VScode.
(Note) Comment passer le chemin de votre propre module
Écouter de la musique à partir d'un haut-parleur USB à l'aide du package ROS (gx_sound_player)
Appelez l'API Hatena Blog depuis Python et enregistrez vos articles de blog individuellement sur votre PC
[Python] Lorsque vous souhaitez importer et utiliser votre propre package dans le répertoire supérieur
Appelez Matlab depuis Python pour optimiser
[Python] Créez votre propre bot LINE
Appeler popcount depuis Ruby / Python / C #
Utilisez l'API Flickr de Python
Appelez python de nim avec Nimpy
Reliez ROS à votre propre protocole
Essayez d'utiliser le module Python Cmd
Appeler C / C ++ depuis Python sur Mac
Maîtriser le module lowref en Python
Appeler le langage C depuis Python (python.h)
Créez vos propres commandes Linux en Python
Créez wordcloud à partir de votre tweet avec python3
[LLDB] Créez votre propre commande avec Python
Passez le chemin du module python importé
Utilisez facilement vos propres fonctions en Python
Notes d'apprentissage depuis le début de Python 1
Contrôlez le panneau LED Matrix depuis ROS
[Python] Enregistrez votre propre bibliothèque dans PyPI
Jusqu'à ce que vous installiez votre propre bibliothèque Python
Pour importer votre propre module avec jupyter
[Python] Importez le module d'un niveau supérieur
Vérifiez le chemin du module importé Python
Appelez le débogueur python à tout moment
Lancez l'interpréteur Python depuis Git bash
Créer un fichier deb à partir d'un package python
Publiez votre propre bibliothèque Python sur Homebrew
Depuis Python 3.4, pip devient le programme d'installation standard! ??
Recherche homebrew à partir du nom du module python (ShellScript)
Appeler des commandes depuis Python (édition Windows)
Notes d'apprentissage depuis le début de Python 2
Installez le module Python dans n'importe quel répertoire
[Python] Obtenez la couleur principale de la capture d'écran
Obtenez votre propre adresse IP en Python
La voie de la mise à jour de Splunkbase avec votre propre application Splunk compatible avec Python v2 / v3
[Python] Implémentez votre propre classe de type liste à l'aide de collections.UserList
[Python] Exécutons le module régulièrement en utilisant schedule
Package ROS pour obtenir des images RVB-D à partir du capteur RVB-D
Installez le package python dans un environnement hors ligne
Utilisez Python dans votre environnement depuis Win Automation