COLOR_DEPTHが2台でRTShellのエラー


#1

またもRTShellのエラーで悩まされています.実際に遭遇したのはDoubleArmのモデルですが,Tankでも同じ問題が再現しました.

  • share/model/Tank/TankBody.body にKinectの直下にもう1台をKinectを追加.
                -
                  type: Camera
                  name: Kinect
                  rotation: [ [ 1, 0, 0, 90 ], [ 0, 1, 0, -90 ] ]
                  format: COLOR_DEPTH
                  fieldOfView: 62
                  width: 320
                  height: 240
                  frameRate: 30
                  on: true
                -
                  type: Camera
                  name: Kinect2
                  rotation: [ [ 1, 0, 0, 90 ], [ 0, 1, 0, -90 ] ]
                  format: COLOR_DEPTH
                  fieldOfView: 62
                  width: 320
                  height: 240
                  frameRate: 30
                  on: true
    
  • 以下のコマンドを実行
    bin/choreonoid sample/OpenRTM/OpenRTM-TankVisionSensors.cnoid 
    
  • 別の端末で以下のコマンドを実行
    $ rtls /localhost/Tank-VisionSensorIoRTC.rtc
    Tank-VisionSensorIoRTC.rtc
    
  • Chorenoidでシミュレーション開始
  • 別の端末で以下のコマンドを実行
    $ rtls /localhost/Tank-VisionSensorIoRTC.rtc
    rtls: CORBA.MARSHAL(omniORB.MARSHAL_MessageSizeExceedLimit, CORBA.COMPLETED_YES) 
    
  • RTShellの他のコマンドも効きません.

なんとかならないでしょうか?


#2

マニュアルの以下で解説している
http://choreonoid.org/ja/manuals/latest/openrtm/install.html#omniorb
CORBAの最大メッセージサイズの設定を増やしてもダメでしょうか?


#3

はい.rtc.confには

corba.args: -ORBgiopMaxMsgSize 20971520

と書いています.


#4

CORBAやOpenRTMのことはあまり詳しくないため、見当違いかもしれませんが、

  • 最大メッセージサイズをもっと増やしてみる
  • rtc.confではなく、上記マニュアルで説明しているように /etc/omniORB.cfg でシステム全体の設定を変更する(通信する全てのホストで)

を試されてみてはいかがでしょうか?

それでダメだとなると、申し訳ないのですがちょっと私には分かりません・・・。RTM開発者の方が助けてくれるとよいのですが。


#5

ありがとうございます.Ubuntuではそれで解決しました.
Windowsでは,/etc/omniORB.cfgに相当するものがわからず,困っています.


#6

解決しました.環境変数OMNIORB_CONFIGで設定ファイルのパスを設定し,その中に

giopMaxMsgSize = 20971520

と書きました.

PointCloudTypes::PointCoudは,type: "xyzrgb"の場合1点16byteですので,Kinectのデータサイズは320×240×16=1,228,800byteです.それが二つあると,omniORBの最大メッセージサイズのデフォルト値を超えてしまうことが原因でしょうか?rtlsはRTCの情報を表示するコマンドですが,データも読もうとしているのでしょうか?

RTShellは重宝していますが,その一方で散々悩まされています.