# Incomplete turtlebot model on fuerte gazebo

I know questions like this have already come up (here and here). Since I am yet to get a clear solution, I am re-posting. I face the following problems:

Incomplete model of the TurtleBot.

From this, I found that by uncommenting a part of the code in turtlebot_body.urdf.xacro, one can see the complete model of the robot instead of just 2 wheels. After uncommenting the part, I was able to the complete model of the robot in the empty.world but in the world that I built. I am still seeing just two wheels in my world. Does this problem still persist? Is there a solution ?

RaySensor warning.

My gazebo shell in spammed with Warning [RaySensor.cc:206] ranges not constructed yet (zero sized) when I spawn the TurtleBot. I searched for the file which has this line and comment it, but without any luck. Though this isn't a major issue, it still is irritating.

I am running ROS-Fuerte on Unbuntu 12.04.

Thanks,

Prasanna

P.S: I know this could be posted in gazebosim forum. I hope some ROS enthusiasts might help me here.

edit retag close merge delete

Sort by » oldest newest most voted

Besides launching Gazebo and robot.launch at the same time I've found two (very hacky) solutions to the problem of an incomplete Turtlebot model in Fuerte.

Solution 1

After launching turtlebot_world.launch and adding the turtlebot, close the GUI. This should not close the Gazebo server, just the GUI component.

Now you can re-open the GUI from another terminal window by typing rosrun gazebo gui. This will not work every time, but I find that after relaunching the GUI window a few times the entire turtlebot appears.

Solution 2

Find the Turtlebot URDF file

roscd turtlebot_description/urdf


Now modify the turtlebot urdf to remove the "hardware" (supports and such).

vim turtlebot.urdf.xarcro


Comment out the line that includes the hardware urdf file - the result should look something like this:

<?xml version="1.0"?>

<robot name="turtlebot"
xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"
xmlns:xacro="http://ros.org/wiki/xacro">
<!--
<include filename="$(find turtlebot_description)/urdf/turtlebot_hardware.urdf.xacro" /> --> <include filename="$(find turtlebot_description)/urdf/turtlebot_body.urdf.xacro" />
<include filename="$(find turtlebot_description)/urdf/turtlebot_calibration.xacro" /> <include filename="$(find turtlebot_description)/urdf/turtlebot_kinect.urdf.xacro" />

<property name="M_PI" value="3.14159"/>  <property name="SCALE" value="0.0254"/>

<!-- Body of TurtleBot, with plates, standoffs and Create (including sim sensors) -->
<turtlebot_body/>

<!-- Kinect frames and mounting (includes simulation) -->
<turtlebot_kinect/>
</robot>


Note that this will result in the turtlebot being rendered without standoffs between the plates, however the simulation seems to work just fine without these.

more

@abencz Excellent! Awesome! I tried your first solution and it worked. Thanks a lot :-) I do not have the option of giving 10 up-votes! I will try the second one and get back.

( 2013-04-24 05:14:04 -0600 )edit

I kind of solved the first problem (but I don't know if this is a proper solution).

When I launch the world and turtlebot separately like _world.launch and robot.launch, I see incomplete model but when I launch both in a single launch with <include>, I see the complete model. Strange, but works! And also uncommenting some lines in turtlebot_body.urdf.xacro in not needed. It works fine when the below lines were left commented.

<inertial>
<mass value="0.0001" />
<origin xyz="0 0 0" />
<inertia ixx="0.0001" ixy="0.0" ixz="0.0"
iyy="0.0001" iyz="0.0"
izz="0.0001" />
</inertial>


I am still to solve the second part.

more