2017-06-20 5 views
1

getImageLocalを使用してロボットからイメージを取得しようとすると、エラーメッセージが表示されます。これは、コードをロボット上で直接実行しているにもかかわらずです。エラーメッセージは次のとおりです。Pepper Robot - getImageLocalがエラーを生成します

Traceback (most recent call last): 
    File "test.py", line 13, in <module> 
    video_device.getImageLocal(handle) 
RuntimeError: Uncaught error: Pointer serialization not implemented 

私はこのエラーを取得するために使用したコードは、(同様にC++を使用しているとき、私は同じエラーを受け取る)以下である:

import qi 
import sys 

if __name__ == "__main__": 
    app = qi.Application(sys.argv) 

    # start the eventloop 
    app.start() 

    video_device = app.session.service("ALVideoDevice") 
    handle = video_device.subscribe('handler', 0, 0, 10) 

    video_device.getImageLocal(handle) 
    video_device.releaseImage(handle) 

私は現在、これを実行していますよコード使用:

python test.py --qi-url=tcp://pepper.local 

私はそれが私がここで間違ってやっている何かである場合、またはより深刻な根本的な問題があるかどうかを知ることは非常に興味があります。

答えて

1

このコードをロボットで直接実行しても、Pythonコードを使用してこの画像を取得することはできません。あなたはPythonで仕事をしたい場合は、C++を使用しながら、同じエラーが出るということは、あなたが画像を取得するためにgetImageRemote()メソッドを使用して検討すべきである、

...確かにかなり不安です。このソリューションは、コードがロボットで実行されている場合でも、リモートコンピュータで実行される場合にも機能します。

あなたがより速く画像を取得したい場合は、のGStreamerを(使用して検討することもでき、ここでポストへlinkはそれを使用する方法を説明している。これは、奈央のための有効な解決策だが、それはとペッパーのために使用することができますよく)。

使用しているNaoqiのバージョンは?

+1

getImageLocalを使用する唯一の方法は、同じメモリ空間から起動することです。あなたのモジュールは、共有ライブラリ(.so)としてクロスコンパイルし、ALLauncherを使ってロボットから起動する必要があります。 –

+0

@AlexandreMazelありがとうございます。あなたは正しいです、私はメソッドを動作させるためにモジュールを書く必要がありました。乾杯! –

関連する問題