Open pirobot opened 7 years ago
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.
OK thanks for taking a look.
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.
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.
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:
I get similar bizarre results for any robot model I start with.