fkanehiro / openhrp3

Open Architecture Human-centered Robotics Platform
http://www.openrtp.jp/openhrp3
Other
26 stars 34 forks source link

fix for reducing CORBA communication #63

Closed YoheiKakiuchi closed 9 years ago

YoheiKakiuchi commented 9 years ago

実際の原因はよく分かっていないのですが、32bitOSでshapeが多いときにcolladaの書き出し時にsegfaultします。 shapeへのアクセスを減らす(ループで毎回shapeにアクセスしていたのを、ループの外でアクセス1回にした)ととりあえずの解決になります。

iory commented 8 years ago

64ビットでも起きる問題でしょうか・

YoheiKakiuchi commented 8 years ago

64ビットでは起こっていないと思います。(報告を見逃しているだけ???)

iory commented 8 years ago

indigo(64bit)で同じことが起こっています.

 iory@crab  ~/workspace/test/test/build/hrpsys_ros_bridge_tutorials  make jaxon_red_hrpsys_ros_bridge_tutorials_compile_dae
Generating /home/iory/workspace/test/test/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/JAXON_RED.dae
Humanoid node
Joint node WAIST
  Segment node BODY
    AccelerationSensorgsensor
    Gyrogyrometer
  Joint node CHEST_JOINT0
    Segment node CHEST_LINK0
    Joint node CHEST_JOINT1
      Segment node CHEST_LINK1
      Joint node CHEST_JOINT2
        Segment node CHEST_LINK2
        Joint node HEAD_JOINT0
          Segment node HEAD_LINK0
          Joint node HEAD_JOINT1
            Segment node HEAD_LINK1
              VisionSensorHEAD_LEFT_CAMERA
        Joint node LARM_JOINT0
          Segment node LARM_LINK0
          Joint node LARM_JOINT1
            Segment node LARM_LINK1
            Joint node LARM_JOINT2
              Segment node LARM_LINK2
              Joint node LARM_JOINT3
                Segment node LARM_LINK3
                Joint node LARM_JOINT4
                  Segment node LARM_LINK4
                  Joint node LARM_JOINT5
                    Segment node LARM_LINK5
                    Joint node LARM_JOINT6
                      Segment node LARM_LINK6
                      Joint node LARM_JOINT7
                        Segment node LARM_LINK7
                          ForceSensorlhsensor
        Joint node RARM_JOINT0
          Segment node RARM_LINK0
          Joint node RARM_JOINT1
            Segment node RARM_LINK1
            Joint node RARM_JOINT2
              Segment node RARM_LINK2
              Joint node RARM_JOINT3
                Segment node RARM_LINK3
                Joint node RARM_JOINT4
                  Segment node RARM_LINK4
                  Joint node RARM_JOINT5
                    Segment node RARM_LINK5
                    Joint node RARM_JOINT6
                      Segment node RARM_LINK6
                      Joint node RARM_JOINT7
                        Segment node RARM_LINK7
                          ForceSensorrhsensor
  Joint node LLEG_JOINT0
    Segment node LLEG_LINK0
    Joint node LLEG_JOINT1
      Segment node LLEG_LINK1
      Joint node LLEG_JOINT2
        Segment node LLEG_LINK2
        Joint node LLEG_JOINT3
          Segment node LLEG_LINK3
          Joint node LLEG_JOINT4
            Segment node LLEG_LINK4
            Joint node LLEG_JOINT5
              Segment node LLEG_LINK5
                ForceSensorlfsensor
  Joint node RLEG_JOINT0
    Segment node RLEG_LINK0
    Joint node RLEG_JOINT1
      Segment node RLEG_LINK1
      Joint node RLEG_JOINT2
        Segment node RLEG_LINK2
        Joint node RLEG_JOINT3
          Segment node RLEG_LINK3
          Joint node RLEG_JOINT4
            Segment node RLEG_LINK4
            Joint node RLEG_JOINT5
              Segment node RLEG_LINK5
                ForceSensorrfsensor
Collada Info: init COLLADA writer version: 1.5.0, namespace: http://www.collada.org/2008/03/COLLADASchema
Collada Info: joint type free not supported
make[3]: *** [/home/iory/workspace/test/test/src/rtm-ros-robotics/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/JAXON_RED.dae] Killed
make[2]: *** [CMakeFiles/jaxon_red_hrpsys_ros_bridge_tutorials_compile_dae.dir/all] Error 2
make[1]: *** [CMakeFiles/jaxon_red_hrpsys_ros_bridge_tutorials_compile_dae.dir/rule] Error 2
make: *** [jaxon_red_hrpsys_ros_bridge_tutorials_compile_dae] Error 2
iory commented 8 years ago

aptから入れたopenhrp3ではうまくいかないで, sourceで入れたopenhrp3ではうまくいっている状況です.

iory commented 8 years ago

315.9.0がリリースされたので解決しました.

fkanehiro commented 8 years ago

デバッグモードでコンパイルすると

openhrp-export-collada: /usr/local/include/eigen3/Eigen/src/Core/DenseStorage.h:86: Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 16>::plain_array() [with T = double; int Size = 16; int MatrixOrArrayOptions = 0]: Assertion `(reinterpret_cast<size_t>(eigen_unaligned_array_assert_workaround_gcc47(array)) & 0xf) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"' failed.

といったアサーションが出ますね。関係あるかも。

fkanehiro commented 8 years ago

https://github.com/fkanehiro/openhrp3/commit/b6b03af8c9d122f891d94387a5cbb8c8f00f9ef6 で修正しました。travisは通っているようだけど、クラスの構造が若干変わってしまって大丈夫だったかな。