yoshito-n-students / gazebo_continuous_track_example

How to use a realtime simulation of continuous tracks for Gazebo 7 & 9
MIT License
19 stars 7 forks source link

IMU noise problem of the track model #2

Open chuyaqifei opened 3 years ago

chuyaqifei commented 3 years ago

When i attached a IMU to the model in Gazebo9.0 (Ubuntu18.04), the ouput of IMU fluctuated in Z axis. image

image

As shown in the graph, the amplitude of flucation is larger than accelDrift. I has been wondering what's the problem. Could you kindly provide a method to solve this problem? The urdf i used is "gazebo_continuous_track_example)/urdf/example_track_gazebo.urdf". The code i added is listed as following:

`

    <inertial>
        <origin xyz="0.0083361 0.00033765 0.10648" rpy="0 0 0" />
        <mass value="0.336" />
        <inertia  ixx="0.12049" ixy="0.0" ixz="0.0" iyy="0.01788" iyz="0.0" izz="0.41342" />
    </inertial>
    <visual>
        <origin xyz="0 0 0" rpy="0 0 0" />
        <geometry>
            <box size="0.05 0.05 0.02"/>
        </geometry>
    </visual>
    <collision>
        <origin xyz="0 0 0" rpy="0 0 0" />
        <geometry>
            <box size="0.05 0.05 0.02"/>
        </geometry>
    </collision>
</link>

<joint name="imu_joint" type="fixed">
    <origin xyz="0 0 0.3" rpy="0 0 0" />
    <parent link="body" />
    <child link="imu_link" />
</joint>
<gazebo reference="imu_link">
    <material>Gazebo/Red</material>
</gazebo>

  <!-- Gazebo imu controller -->
<gazebo>
    <plugin name="imu_controller" filename="libhector_gazebo_ros_imu.so">
        <robotNamespace>/</robotNamespace>
        <updateRate>50.0</updateRate>
        <bodyName>body</bodyName>
        <topicName>imu/data</topicName>
        <accelDrift>0.005 0.005 0.005</accelDrift>
        <accelGaussianNoise>0.005 0.005 0.005</accelGaussianNoise>
        <rateDrift>0.005 0.005 0.005 </rateDrift>
        <rateGaussianNoise>0.005 0.005 0.005 </rateGaussianNoise>
        <headingDrift>0.005</headingDrift>
        <headingGaussianNoise>0.005</headingGaussianNoise>
    </plugin>
</gazebo>

`

yoshito-okada commented 3 years ago

Is that strange? When a grouser makes contact with the ground, the front corner hit first. The contact with the corner should lift the body slightly. I think that is what is being measured by the IMU. The same thing may happen with a real track.

chuyaqifei commented 3 years ago

Is that strange? When a grouser makes contact with the ground, the front corner hit first. The contact with the corner should lift the body slightly. I think that is what is being measured by the IMU. The same thing may happen with a real track.

Oh, I forgot to mention that the data shown in the graph was recored when the robot was not moving. Once the robot moves, the curve will fluctuate more seriously. When the robot doesn't move, the accelaration of Z axis should be equal to 9.8 constantly.

chuyaqifei commented 2 years ago

Do you have any idea about that?

yoshito-okada commented 2 years ago

No solid idea for now. Try different rotation angle of pulleys or different models and watch whether the same thing happens.