hsnuhayato / rtm-ros-robotics

Automatically exported from code.google.com/p/rtm-ros-robotics
0 stars 0 forks source link

Colladaファイルを使った時のsensorのtfがおかしい #182

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Colladaファイルを使ってHrpsysSeqStateROSBridgeを使った時のsensor��
�tfが
link名ではなく、joint名を親とするtfを出力しており、tfのツ�
��ーが繋がらなくなっている。

HrpsysSeqStateROSBridgeImpl.cppの143行めのこのあたりで、sensorを持�
��、linkのsegmentsの
名前を持ってきて、これのtfを出力しています。
        for ( int l = 0; l < sensors.length(); l++ ) {                                                                                       
          if ( std::string(sensors[l].name) == std::string(sensor->name) ) {
            si.link_name = links[k].segments[0].name;                                                                                        
            sensor_info[sensor->name] = si;                                                                                                  
          }
        }

link名 -> 
segments名の関係がcolladaとwrlでそれぞれ以下のようになって��
�ます。

collada
LLEG_ANKLE_R -> LLEG_ANKLE_R
CHEST -> CHEST

wrl
LLEG_ANKLE_R -> LLEG_LINK6
CHEST -> WAIST_LINK3

colladaでは、link名 = 
segments名となっており、OpenHRPではlink名にcollada(urdf)でのjoint�
��が
ついているため、colladaを使った時にtfが繋がらなくなって��
�るようです。
問題は、OpenHRP3のModelLoaderの問題のようですが、まずはこち�
��で問題を喚起しておきます。

参考wrlをロードした時のツリー
Humanoid node
Joint nodeWAIST
  AccelerationSensorgsensor
  Gyrogyrometer
  Segment node WAIST_LINK0
  Joint nodeWAIST_P
    Segment node WAIST_LINK1
    Joint nodeWAIST_R
      Segment node WAIST_LINK2
      Joint nodeCHEST
        Segment node WAIST_LINK3
        VisionSensorVISION_SENSOR1
        VisionSensorVISION_SENSOR2
        Joint nodeLARM_SHOULDER_P
          Segment node LARM_LINK1
          Joint nodeLARM_SHOULDER_R
            Segment node LARM_LINK2
            Joint nodeLARM_SHOULDER_Y
              Segment node LARM_LINK3
              Joint nodeLARM_ELBOW
                Segment node LARM_LINK4
                Joint nodeLARM_WRIST_Y
                  Segment node LARM_LINK5
                  Joint nodeLARM_WRIST_P
                    Segment node LARM_LINK6
                      ForceSensorlhsensor
                    Joint nodeLARM_WRIST_R
                      Segment node LARM_LINK7
        Joint nodeRARM_SHOULDER_P
          Segment node RARM_LINK1
          Joint nodeRARM_SHOULDER_R
            Segment node RARM_LINK2
            Joint nodeRARM_SHOULDER_Y
              Segment node RARM_LINK3
              Joint nodeRARM_ELBOW
                Segment node RARM_LINK4
                Joint nodeRARM_WRIST_Y
                  Segment node RARM_LINK5
                  Joint nodeRARM_WRIST_P
                    Segment node RARM_LINK6
                      ForceSensorrhsensor
                    Joint nodeRARM_WRIST_R
                      Segment node RARM_LINK7
  Joint nodeLLEG_HIP_R
    Segment node LLEG_LINK1
    Joint nodeLLEG_HIP_P
      Segment node LLEG_LINK2
      Joint nodeLLEG_HIP_Y
        Segment node LLEG_LINK3
        Joint nodeLLEG_KNEE
          Segment node LLEG_LINK4
          Joint nodeLLEG_ANKLE_P
            Segment node LLEG_LINK5
            Joint nodeLLEG_ANKLE_R
              Segment node LLEG_LINK6
                ForceSensorlfsensor
  Joint nodeRLEG_HIP_R
    Segment node RLEG_LINK1
    Joint nodeRLEG_HIP_P
      Segment node RLEG_LINK2
      Joint nodeRLEG_HIP_Y
        Segment node RLEG_LINK3
        Joint nodeRLEG_KNEE
          Segment node RLEG_LINK4
          Joint nodeRLEG_ANKLE_P
            Segment node RLEG_LINK5
            Joint nodeRLEG_ANKLE_R
              Segment node RLEG_LINK6
                ForceSensorrfsensor

Original issue reported on code.google.com by you...@jsk.imi.i.u-tokyo.ac.jp on 27 Aug 2013 at 4:00