2017-06-20 185 views
1

當試圖從機器人使用getImageLocal獲取圖像時,我收到一條錯誤消息。儘管我直接在機器人上運行代碼,但這是事實。該錯誤消息是:胡椒機器人 - 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代碼檢索此圖像。你得到同樣的錯誤,而使用C++,這個事實很令人心碎......

如果你想在Python工作,你應該考慮使用getImageRemote()方法來獲取圖像。如果您的代碼在機器人上運行,而且運行在遠程計算機上,則此解決方案可以正常工作。

如果你想更快的獲取圖像,還可以考慮使用的GStreamer(這裏是一個link到崗位描述如何使用它。它是孬一個有效的解決方案,但它可以用於辣椒作爲好)。

你使用哪個版本的Naoqi?

+1

使用getImageLocal的唯一可能方式是從相同的內存空間啓動。從C++的意思是你的模塊應該被交叉編譯爲共享庫(.so),然後使用ALLauncher從機器人啓動 –

+0

謝謝@AlexandreMazel。你是對的,我需要編寫一個模塊才能使這個方法起作用。乾杯! –