Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

collada_to_urdf .dae files broken as viewed in Meshlab #17

Open
pirobot opened this issue Aug 18, 2017 · 3 comments
Open

collada_to_urdf .dae files broken as viewed in Meshlab #17

pirobot opened this issue Aug 18, 2017 · 3 comments

Comments

@pirobot
Copy link

pirobot commented Aug 18, 2017

I have observed this problem on both ROS Indigo (Ubuntu 14.04) and ROS Kinetic (Ubuntu 16.04). The problem is so severe that I feel I must be doing something wrong.

Take for example the Turtlebot model found at:

turlletbot_description/robots/kobuki_hexagons_asus_xtion_pro.urdf.xacro

First I convert this to URDF:

$ rosrun xacro xacro kobuki_hexagons_asus_xtion_pro.urdf.xacro > ~/kobuki.urdf

Now I check the URDF file:

$ check_urdf ~/kobuki.urdf

---------- Successfully Parsed XML ---------------
root Link: base_footprint has 1 child(ren)
child(1): base_link
child(1): camera_rgb_frame
child(1): camera_depth_frame
child(1): camera_depth_optical_frame
child(2): camera_link
child(3): camera_rgb_optical_frame
child(2): caster_back_link
child(3): caster_front_link
child(4): cliff_sensor_front_link
child(5): cliff_sensor_left_link
child(6): cliff_sensor_right_link
child(7): gyro_link
child(8): mount_asus_xtion_pro_link
child(9): plate_bottom_link
child(10): plate_middle_link
child(11): plate_top_link
child(12): pole_bottom_0_link
child(13): pole_bottom_1_link
child(14): pole_bottom_2_link
child(15): pole_bottom_3_link
child(16): pole_bottom_4_link
child(17): pole_bottom_5_link
child(18): pole_kinect_0_link
child(19): pole_kinect_1_link
child(20): pole_middle_0_link
child(21): pole_middle_1_link
child(22): pole_middle_2_link
child(23): pole_middle_3_link
child(24): pole_top_0_link
child(25): pole_top_1_link
child(26): pole_top_2_link
child(27): pole_top_3_link
child(28): wheel_left_link
child(29): wheel_right_link

Next I run urdf_to_collada:

$ rosrun collada_urdf urdf_to_collada ~/kobuki.urdf ~/kobuki.dae

Finally, I bring up the resulting Collada mesh in meshlab:

$ meshlab ~/kobuki.dae

And this is what it looks like:

kobuki-urdf-to-collada

I get similar bizarre results for any robot model I start with.

@pirobot pirobot changed the title collada_ro_urdf .dae files broken as viewed in Meshlab collada_to_urdf .dae files broken as viewed in Meshlab Aug 18, 2017
@clalancette
Copy link
Collaborator

Sorry for the long delay in responding to you. After taking a look at this, the short answer is that it seems that somehow the meshes for the model aren't being rendered properly. The meshes are definitely there in the .dae file, they just aren't being rendered by meshlab. If you manually import the meshes into meshlab, things seem to work OK. I probably won't have time to dig into this much more in the near future, but if you have time to look I would concentrate on the interaction between meshlab and the meshes in the .dae file.

@pirobot
Copy link
Author

pirobot commented Oct 17, 2017

OK thanks for taking a look.

@sloretz
Copy link
Collaborator

sloretz commented Oct 26, 2017

Hi @pirobot, Looks like the issue you're seen is collada_urdf not handling mesh scaling. If I move the camera links and zoom in the kobuki base appears fine.

zoom_kobuki

In the original collada file I see <unit name="millimeter" meter="0.001"/>. When I scale the camera meshes by 0.001 it appears fine. If you have time to add handling of mesh scaling to collada_urdf, a pull request would be appreciated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants