В эти дни я борюсь с приложением, которое я создал с помощью проекта Github: Pepper Project robot-jumpstarter
В начале все работало очень хорошо, но после того, как я добавил модуль в папку «scripts» (как на картинке 1), больше нет. Моя основная идея - импортировать класс из «IntersectionPointOfTwoCircles.py» в «main_localization.py», чтобы основная работа работала нормально.
И поскольку пакеты «sympy» и «numpy» нужны в «IntersectionPointOfTwoCircles.py», сначала я попытался поместить эти два пакета в папку «scripts», но это привело к тому, что Choregraphe очень часто реагировал только примерно через 5-10 минут или иногда не реагирует.
Вот как выглядит путь «локализации» pml-файла Choregraphe:
Тогда я позволил пакетам теперь находиться вне папки приложения.
Код для «Main_localization»:
class MyClass(GeneratedClass):
executable_id = "localization"
def onLoad(self):
self.listener_id = None
self.executable_manager = self.session().service("ALServiceManager")
executable_name = self.getParameter("Executable Name")
if ALProxy("ALSystem").systemVersion() < "2.3":
self.executable_id = executable_name
if "." not in executable_name:
self.logger.info("Warning: You will have conflicts if several packages have executables called '%s'" % executable_name)
self.logger.info("Use a newer version of NAOqi to have executables prefixed with the package ID, or prefix it yourself, in the form with <package>.<executable ID>")
else:
self.executable_id = self.packageUid() + "." + executable_name
def disconnect(self):
try:
self.executable_manager.serviceStopped.disconnect(self.listener_id)
except Exception as e:
pass
def onUnload(self):
self.executable_manager.stopService(self.executable_id)
self.disconnect()
def onInput_onStart(self):
self.listener_id = self.executable_manager.serviceStopped.connect(self.onExecutableStopped)
if not self.executable_manager.startService(self.executable_id):
self.logger.info("Failed to start App Executable '%s', stopping." % repr(self.executable_id))
self.onStopped()
self.disconnect()
def onExecutableStopped(self, stopped_executable, reason):
if stopped_executable == self.executable_id:
self.logger.info("App Executable Stopped: " + self.executable_id)
self.onStopped()
self.disconnect()
def onInput_onStop(self):
self.onUnload()
self.onStopped()
И сообщение об ошибке:
[INFO ] .box :onInput_onStart:29 _Behavior__lastUploadedChoregrapheBehavior1081224720:/Localization_19: Failed to start App Executable ''.lastUploadedChoregrapheBehavior.output.localization'', stopping.
[INFO ] behavior.box :onInput_onStart:29 _Behavior__lastUploadedChoregrapheBehavior1069884112:/Localization_19: Failed to start App Executable ''.lastUploadedChoregrapheBehavior.output.localization'', stopping.
[INFO ] behavior.box :onInput_onStart:29 _Behavior__lastUploadedChoregrapheBehavior1149770056:/Localization_19: Failed to start App Executable ''.lastUploadedChoregrapheBehavior.output.localization'', stopping.
Кто-нибудь знает, что я могу сделать сейчас?