Ошибка ALDialog Python Nao

У меня возникла проблема при использовании модуля ALDialog в Python IDE и загрузке в Nao. Я пытался по-разному загрузить диалог, но всегда возвращался к одной и той же ошибке. верхний файл, но во время LoadTopic () у меня есть ошибка. Во втором случае я хочу загрузить файл. top файл, указав путь к нему. Я снова возвращаюсь к той же ошибке. У вас есть решение моей проблемы? Большое спасибо.

import qi 
import argparse 
import os 
import sys 
from naoqi import ALProxy

def main(robot_ip, robot_port):

  dialog = """
  topic: ~myTopic() \n
  language: enu \n
  u:(test) hello \n """

  file = open("myDialog.top","w")
  file.write(dialog)
  file.close()
  # load topic
  proxy = ALProxy("ALDialog",robot_ip,robot_port)
  proxy.setLanguage("English")
  self.topic = proxy.loadTopic("myDialog.top")
  # start dialog
  proxy.subscribe("myModule")
  # activate dialog
  proxy.activateTopic(self.topic)

if name == "main": 

  parser = argparse.ArgumentParser()
  parser.add_argument("--ip", type=str, 
  default="169.254.245.164",help="Robot's IP address : '169.254.245.164'")
  parser.add_argument("--port", type=int, default=9559,help="port number, the default value is OK in most cases")                 
  args = parser.parse_args()
  main(args.ip, args.port)

person Mathieu Perrotte    schedule 22.01.2018    source источник
comment
как я могу найти этот абсолютный путь?   -  person Mathieu Perrotte    schedule 25.01.2018
comment
Я понял абсолютный путь, но у меня все еще та же ошибка. Как я могу быть уверен, что мой верхний файл загружен в Nao? И то же самое для абсолютного пути? Как я могу быть уверен, что это правильный? заранее спасибо   -  person Mathieu Perrotte    schedule 29.01.2018


Ответы (1)


ALDialog.loadTopic ожидает абсолютный путь к файлу на роботе - он ничего не знает о контексте, из которого вы его вызываете (это может быть другой компьютер, и в этом случае, конечно, он не может открыть этот файл). Вы должны быть уверены, что ваш .top действительно находится на роботе, и передать его абсолютный путь в ALDialog.

После установки на робота этот путь будет выглядеть примерно так: /home/nao/.local/share/PackageManager/apps/your-package-id/your-dialog-name/your-dialog-name_enu.top

person Emile    schedule 23.01.2018
comment
Спасибо, как я могу найти этот абсолютный путь? - person Mathieu Perrotte; 24.01.2018
comment
Что-то вроде home/nao/.local/share/PackageManager/apps/your-package-id/your-dialog-name/your-dialog-name_enu.top (я отредактировал ответ) - person Emile; 25.01.2018
comment
Хорошо, я понял абсолютный путь, но у меня все еще та же ошибка. Как я могу быть уверен, что мой верхний файл загружен в Nao? И то же самое для абсолютного пути? Как я могу быть уверен, что это правильный? заранее спасибо - person Mathieu Perrotte; 29.01.2018