[ros-users] Gazebo Vehicle Simulation
David Ferguson
dhf at andrew.cmu.edu
Mon May 3 19:53:06 UTC 2010
Hi,
I am trying to write create a gazebo simulation of a 4 wheeled vehicle
(think golf cart). I am having an issue with trying to create forces in the
simulation. I want to apply a torque the rear wheels (equivalent to pressing
the gas pedal). I can't figure out however how to use the gazebo plugin
which is supposed to apply the force. In the .h file for the plugin it says
to use it as such:
This is a controller that collects data from a ROS topic and applies
wrench to a body accordingly.
Example Usage:
\verbatim
<model:physical name="box_model">
<body:empty name="box_body">
...
</body:empty>
<controller:gazebo_ros_force name="box_force_controller"
plugin="libgazebo_ros_force.so">
<alwaysOn>true</alwaysOn>
<updateRate>15.0</updateRate>
<topicName>box_force</topicName>
<bodyName>box_body</bodyName>
</controller:gazebo_ros_force>
</model:phyiscal>
\endverbatim
To test it I essentially copied the tutorial showing how to use the iface
plugin (sets a models position). My urdf file is below:
<robot name="object_model"
xmlns:controller="
http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
xmlns:interface="
http://playerstage.sourceforge.net/gazebo/xmlschema/#interface" >
<!-- urdf requires at least one joint and one link, so here's the joint
-->
<joint name="my_mug_joint" type="floating" >
<!-- axis is in the parent link frame coordintates -->
<axis xyz="0 0 0" />
<parent link="world" />
<child link="object_link" />
<!-- initial pose of my_mug joint/link in the parent frame coordiantes
-->
<origin xyz="0 0 0" rpy="0 0 0" />
</joint>
<!-- one floating link -->
<link name="object_link">
<inertial>
<mass value="1"/>
<origin xyz="0 0 0.0"/>
<inertia ixx="0.05" ixy="0" ixz="0" iyy="0.05" iyz="0" izz="0.05"/>
</inertial>
<visual>
<origin rpy="0 0 0" xyz="0 0 0.0"/>
<geometry>
<box size="1.0 1.0 1.0"/>
</geometry>
</visual>
<collision>
<origin rpy="0 0 0" xyz="0 0 0.0"/>
<geometry>
<box size="1.0 1.0 1.0"/>
</geometry>
</collision>
</link>
<gazebo reference="object_link">
<material>Gazebo/Black</material>
<mu1>10.0</mu1>
<mu2>10.0</mu2>
<kp>10</kp>
<kd>1.0</kd>
<turnGravityOff>false</turnGravityOff>
<dampingFactor>0.01</dampingFactor>
</gazebo>
<gazebo>
<controller:gazebo_ros_force name="box_force_controller"
plugin="libgazebo_ros_force.so">
<alwaysOn>true</alwaysOn>
<updateRate>15.0</updateRate>
<topicName>box_force</topicName>
<bodyName>object_link</bodyName>
</controller:gazebo_ros_force>
</gazebo>
</robot>
I then have a python script publishing a wrench message to the box_force
topic however no matter what settings I use it never seems to actually
affect the box in the simulation. Am I going about this completely wrong? Is
there a flag I'm not setting?
Thanks in advance for any help,
David Ferguson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20100503/503e6ce0/attachment-0002.html>
More information about the ros-users
mailing list