2010-11-21 10 views
0

iRobot Createのセンサーをpyserialでストリーミングしようとしています。私はその後、私はこのエラーが表示さCreateBot機能付きopeninterface.py、セットアップボット変数をインポートし、pyserialでボットセンサーをストリーミングする方法は?

bot.stream_sensors(6)

を呼ぶ - 「!ストリーミングスレッドエラーをタプルインデックス範囲外」私が6で関数を呼び出すのは、私が使っている例が何であるかという理由だけです。私もstream_sensors(0)、stream_sensors(1)を6まで試してみました。6未満の数字では、同じエラープラス "Illegal sensor id!"が表示されます。パラメータは何に基づいていますか?それは私がストリーミングしたい特定のセンサーですか(もしそうなら、私はどのように番号を取得しますか)。どんな助けもありがとう。

+1

質問を編集して、使用しているコードを含めることができますか? – spade78

答えて

1

stream_sensors()を呼び出すときに使用する指定されたID値が、既知のセンサーIDを持つ辞書と一致しないため、openinterface.pyソースを参照すると、「不正なセンサーID」エラーが表示されるようです。センサーIDの辞書はクラスSensorPacketDecoderAPIに指定されている:「!...ストリーミングスレッドエラー」、私はわからないんだけど、あなたが取得している理由については

class SensorPacketDecoderApi: 
""" 
Transform sensor data in the form of bytes (from a serial stream) 
into a dictionary of sensor values. 
""" 

names = {'left-velocity' : 42, 
     'right-velocity' : 41, 
     'radius' : 40, 
     'velocity' : 39, 
     'n-stream-packets' : 38, 
     'song-playing' : 37, 
     'song-number' : 36, 
     'oi-mode' : 35, 
     'home-base?'  : 34, 
     'internal-charger?' : 34, 
     'user-analog-in-0' : 33, 
     'baud-rate-change?' : 32, 
     'user-digital-in-3' : 32, 
     'user-digital-in-2' : 32, 
     'user-digital-in-1' : 32, 
     'user-digital-in-0' : 32, 
     'cliff-right-signal' : 31, 
     'cliff-right-front-signal' : 30, 
     'cliff-left-front-signal' : 29, 
     'cliff-left-signal' : 28, 
     'wall-signal' : 27, 
     'capacity' : 26, 
     'charge' : 25, 
     'temperature' : 24, 
     'current' : 23, 
     'voltage' : 22, 
     'charging-state' : 21, 
     'angle' : 20, 
     'distance' : 19, 
     'advance?' : 18, 
     'play?' : 18, 
     'infrared-byte' : 17, 
     'left-wheel-overcurrent?'  : 14, 
     'right-wheel-overcurrent?'  : 14, 
     'low-side-driver-2-overcurent?' : 14, 
     'low-side-driver-0-overcurent?' : 14, 
     'low-side-driver-1-overcurent?' : 14, 
     'virtual-wall?' : 13, 
     'cliff-right?' : 12, 
     'cliff-front-right?' : 11, 
     'cliff-front-left?' : 10, 
     'cliff-left?' : 9, 
     'wall?' : 8, 
     'wheel-drop-caster?' : 7, 
     'wheel-drop-left?' : 7, 
     'wheel-drop-right?' : 7, 
     'bump-left?'   : 7, 
     'bump-right?'  : 7, 
     'all' : 6} 

、すべての私が言うことができます私の視線からコードまでは、_stream_sensors_workerというCreateBotクラス内の関数から発生しているということです。 _test_sensor_streamingという機能もあります。_stream_sensors_workerからデバッグ情報を取得することもできます。

関連する問題