Как помешать роботу Pepper выгружать планшет? - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь создать программу, часть которой будет передавать видео в реальном времени в кадрах (или, другими словами, изображения) с веб-камеры моего компьютера на планшет Pepper с помощью Naoqi Python SDK.Со стороны робота будет программа, использующая функцию showWebview ALTabletService для отображения изображения в виде HTML-страницы.Но после того, как этот процесс запущен, он продолжается только в течение нескольких секунд, а затем экран возвращается к своей домашней странице.Я предполагаю, что робот вытесняет мою программу.Но этого не происходит с функцией playVideo.Есть ли способ преодолеть это?

Сторона ПК:

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

def gen(camera):
    # Set our pipelines state to Playing.
    video_pipeline.set_state(Gst.State.PLAYING)
    audio_pipeline.set_state(Gst.State.PLAYING)
    while True:
        frame = camera.get_frame()
        yield (b'--frame\r\n'
            b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n') #sending frames to the webpage

@app.route('/video_feed')
def video_feed():
    try:
        return Response(stream_with_context(gen(VideoCamera())), mimetype='multipart/x-mixed-replace; boundary=frame')
    except Exception:
        return None

if __name__ == '__main__':
#   app.run(host='0.0.0.0', port = http, debug=True, threaded=True)
    http_server = WSGIServer(('0.0.0.0', http), app) #creating a server with open ip
    http_server.serve_forever()

Сторона Перца:

tabletService = session.service('ALTabletService')
tabletService.loadUrl('http://' + user_ip + ':' + str(user_http_port) + '/')
tabletService.showWebview()

1 Ответ

0 голосов
/ 05 июня 2018

Это потому, что Автономная жизнь Pepper построена на действиях , и каждый раз, когда действие теряет фокус, Pepper сбрасывает все - язык, положение, светодиоды и, да, планшет.

Итакв идеале ваш код должен находиться внутри приложения (т. е. поведение, помеченное как «интерактивное»), и до тех пор, пока у него есть фокус, планшет не будет сброшен.

(редактировать), чтобы создать приложение, котороеявляется автономным скриптом Python, одним простым способом является использование робота Jumpstarter, скрипта Python, который будет генерировать приложение из шаблона (со всеми шаблонами и т. д.), инструкции см. здесь .

...