# My balls are in a perpetual motion in gazebo

Hi, I am trying to modelize a robot for testing in gazebo, but I get trouble whith him staying still.

The simplifiate version i use is compose of a square base (base_link), two balls (with 3 degrees of liberty, for stability), and two wheels (With motors, for movement). I changed a lot, but the main problem I encounter is that the balls move by herself (in some configuration they made the robot shake or move. In the current one they just roll-on herself (and maybe do crazy thinks when I try to turn ) ). I don't understand where that could come exactly and what to do to fix it. (The current model is not based on anything real, so I could have messed up the values of mass and inertia ) (I'm new on the forum and i don't know if I should past all my codes or not :/ ) There the xacro file I use :

<?xml version="1.0"?>


<robot <a="" href="http://xmlns:xacro="http://www.ros.org/wiki/xacro">xmlns:xacro="http://www.ros.org/wiki/..." name="dummy"></robot>

<xacro:property name="size_base" value="1.0" />
<xacro:property name="height_base" value="0.05" />
<xacro:property name="half_size_base" value="${size_base/2.0}" /> <xacro:property name="mass_base" value="1.0" /> <xacro:property name="boule_size" value="0.05" /> <xacro:property name="boule_mass" value="0.05" /> <material name="green"> <color rgba="0 0.8 0 1"/> </material> <material name="blue"> <color rgba="0 0 1 1"/> </material> <gazebo> <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so"> <robotNamespace>/robot</robotNamespace> </plugin> </gazebo> <xacro:macro name="origin_base"> <origin rpy="0.0 0.0 0.0" xyz="0 0 0"/> </xacro:macro> <!-- WHEELS --> <xacro:property name="wheel_length" value="0.08"/> <xacro:property name="wheel_mass" value="0.03"/> <xacro:property name="wheel_radius" value="0.10"/> <xacro:macro name="wheel" params="rpy xyz name"> <xacro:macro name="origin_wheel"> <origin rpy="${rpy}" xyz="${xyz}"/> </xacro:macro> <link name="wheel_${name}_link">
<inertial>
<xacro:origin_base />
<mass value="${wheel_mass}" /> <inertia ixx="1.1175580e-05" ixy="-4.2369783e-11" ixz="-5.9381719e-09" iyy="1.1192413e-05" iyz="-1.4400107e-11" izz="2.0712558e-05" /> </inertial> <collision> <xacro:origin_base /> <geometry> <cylinder radius="${wheel_radius}" length="${wheel_length}"/> </geometry> </collision> <visual> <xacro:origin_base /> <geometry> <cylinder radius="${wheel_radius}" length="${wheel_length}"/> </geometry> <material name="green"/> </visual> </link> <joint name="wheel_${name}_join" type="continuous">
<child link="wheel_${name}_link"/> <xacro:origin_wheel /> <limit lower="-0.2" upper="0.2" effort="100" velocity="100"/> <axis xyz="0 0 1"/> </joint> <gazebo reference="wheel_${name}_link">
<mu1>0.1</mu1>
<mu2>0.1</mu2>
<kp>500000.0</kp>
<kd>10.0</kd>
<minDepth>0.001</minDepth>
<maxVel>0.1</maxVel>
<fdir1>1 0 0</fdir1>
<material>Gazebo/FlatBlack</material>
</gazebo>
</xacro:macro>

<!-- BASE -->

<link ...
edit retag close merge delete

Sort by » oldest newest most voted

I add <dynamics friction="0.06"/> to the joints, and that solve it.

more