fkanehiro / openhrp3

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

VRML files that have IndexedFaceSet fields containing normal field are not loaded properly #52

Open wesleypchan opened 9 years ago

wesleypchan commented 9 years ago

When the compile_openhrp_model macro defined in hrpsys_ros_bridge/cmake/compile_robot_model.cmake is used to convert VRML files that have IndexedFaceSet fields containing normal fields (but no normalIndex fields), the resulting Euslisp files do not contain the proper models. When the resulting Euslisp file is loaded into roseus and when trying to display the model in irtviewer, the model parts defined using the IndexedFaceSet fields that contain the normal field are not rendered. Instead, a small box is rendered in place.

When the normal field is removed from the VRML file, the converted Euslisp file contains the proper model and loads properly.

Furthermore, when trying to display the VRML file by executing (each in a different terminal): $ rosrun openhrp3 start_omninames.sh 9999 $ ORBgiopMaxMsgSize=2147483648 openhrp-model-loader -ORBInitRef NameService=corbaloc:iiop:localhost:9999/NameService $ ORBgiopMaxMsgSize=2147483648 hrpsys-viewer MODEL.wrl -ORBInitRef NameService=corbaloc:iiop:localhost:9999/NameService

The model defined by the IndexedFaceSet field that contains the normal field is not displayed.

Output from the terminal executing the second command shows: loading /home/....../MODEL.wrl Humanoid node is not found Retrying to load the file as a standard VRML file The number of normals is less than the number of vertices. Node is inconvertible and removed from the scene graph Node is inconvertible and removed from the scene graph

When the normal field is removed from the VRML, executing the above commands again displays the model correctly.