[ros-users] Gazebo Vehicle Simulation
John Hsu
johnhsu at willowgarage.com
Mon May 3 20:22:39 UTC 2010
Hi David,
Thanks for the feedback, I see two (potential) issues here,
- gazebo requires an iface internally, which I ticketed here
https://code.ros.org/trac/ros-pkg/ticket/4049. For now, if you add an
interface line to your controller, then things should work better
<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>
* <interface:audio name="dummy_iface"/>*
</controller:gazebo_ros_force>
</gazebo>
- another issue that might come up: if the world update rate differs
from the force plugin update rate, force application will be skipped in the
intermediate time steps. For example, if world is updating at 1kHz and your
controller has an updateRate of 100Hz, the desired force on the body is
applied only 1 out of 10 simulation updates, resulting in what looks like a
1/10th smaller force than desired. So I recommend changing updateRate to
match (or be greater than) your world update rate for now. (I also ticketed
this here: https://code.ros.org/trac/ros-pkg/ticket/4050).
Thanks,
John
On Mon, May 3, 2010 at 12:53 PM, David Ferguson <dhf at andrew.cmu.edu> wrote:
> 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
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20100503/bb99c245/attachment-0003.html>
More information about the ros-users
mailing list