The robot's movement is strange while gmapping on rviz.

asked 2022-03-21 20:44:42 -0500

huhahaha gravatar image

I use ubuntu 18.04 ros melodic.

To study ROS, I am designing a mobile robot and doing SLAM gmapping. When mapping, the robot moves similarly to gazebo and rvizrk, and then plays separately. So to solve this part, I'm checking the gazebo plugin part and gmapping parameter code, but I don't know where to modify it, so I'll ask a question.

It is my gazeo.urdf code.

<?xml version="1.0"?>

<robot <a="" href="http://xmlns:xacro="http://ros.org/wiki/xacro%22" name="test_body3_sim">xmlns:xacro="http://ros.org/wiki/xacro"> <xacro:arg default="false" name="laser_visual"> <xacro:arg default="false" name="imu_visual"></xacro:arg></xacro:arg></robot>

<gazebo reference="base_link">
    <material>Gazebo/DarkGrey</material>
</gazebo>

<gazebo reference="left_wheel">
    <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>

<gazebo reference="right_wheel">
    <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>

<gazebo reference="caster_front">
    <mu1>0.1</mu1>
    <mu2>0.1</mu2>
    <kp>10000.0</kp>
    <kd>100.0</kd>
    <minDepth>0.001</minDepth>
    <maxVel>1.0</maxVel>
    <material>Gazebo/FlatBlack</material>
</gazebo>

<gazebo reference="caster_back">
    <mu1>0.1</mu1>
    <mu2>0.1</mu2>
    <kp>10000.0</kp>
    <kd>100.0</kd>
    <minDepth>0.001</minDepth>
    <maxVel>1.0</maxVel>
    <material>Gazebo/FlatBlack</material>
</gazebo>

<gazebo reference="imu_link">
    <sensor type="imu" name="imu">
        <always_on>true</always_on>
        <visualize>$(arg imu_visual)</visualize>
    </sensor>
    <material>Gazebo/FlatBlack</material>
</gazebo>

<gazebo>
    <plugin name="test_body3_controller" filename="libgazebo_ros_diff_drive.so">
        <commandTopic>cmd_vel</commandTopic>
        <odometryTopic>odom</odometryTopic>
        <odometryFrame>odom</odometryFrame>
        <odometrySource>world</odometrySource>
        <publishOdomTF>true</publishOdomTF>
        <robotBaseFrame>base_footprint</robotBaseFrame>
        <publishWheelTF>false</publishWheelTF>
        <publishTf>true</publishTf>
        <publishWheelJointState>true</publishWheelJointState>
        <legacyMode>false</legacyMode>
        <updateRate>30</updateRate>
        <leftJoint>left_wheel_joint</leftJoint>
        <rightJoint>right_wheel_joint</rightJoint>
        <wheelSeparation>0.444</wheelSeparation>
        <wheelDiameter>0.160</wheelDiameter>
        <wheelAcceleration>1.12</wheelAcceleration>
        <wheelTorque>10</wheelTorque>
        <rosDebugLevel>na</rosDebugLevel>
    </plugin>
</gazebo>

<gazebo>
    <plugin name="imu_plugin" filename="libgazebo_ros_imu.so">
        <alwaysOn>true</alwaysOn>
        <bodyName>imu_link</bodyName>
        <frameName>imu_link</frameName>
        <topicName>imu</topicName>
        <serviceName>imu_service</serviceName>
        <gaussianNoise>0.0</gaussianNoise>
        <updateRate>0</updateRate>
        <imu>
            <noise>
                <type>gaussian</type>
                <rate>
                    <mean>0.0</mean>
                    <stddev>2e-4</stddev>
                    <bias_mean>0.0000075</bias_mean>
                    <bias_stddev>0.0000008</bias_stddev>
                </rate>
                <accel>
                    <mean>0.0</mean>
                    <stddev>1.7e-2</stddev>
                    <bias_mean>0.1</bias_mean>
                    <bias_stddev>0.001</bias_stddev>
                </accel>
            </noise>
        </imu>
    </plugin>
</gazebo>

<gazebo reference="base_scan">
    <material>Gazebo/FlatBlack</material>
    <sensor type="ray" name="lds_lfcd_sensor">
        <pose>0 0 0 0 0 0</pose>
        <visualize>$(arg laser_visual)</visualize>
        <update_rate>5</update_rate>
        <ray>
            <scan>
                <horizontal>
                    <samples>480</samples>
                    <resolution>1</resolution>
                    <min_angle>0.0</min_angle>
                    <max_angle>6.28319</max_angle>
                </horizontal>
            </scan>
            <range>
                <min>0.120</min>
                <max>3.5</max>
                <resolution>0.015</resolution>
            </range>
            <noise>
                <type>gaussian</type>
                <mean>0.0</mean>
                <stddev>0.01</stddev>
            </noise>
        </ray>
        <plugin name="gazebo_ros_lds_lfcd_controller" filename="libgazebo_ros_laser.so">
            <topicName>scan</topicName>
            <frameName>base_scan</frameName>
        </plugin>
    </sensor>
</gazebo>

</robot>

gmapping parameter code

map_update_interval: 2.0

maxUrange: 3.0 sigma: 0.05 kernelSize: 1 lstep: 0.05 astep: 0.05 iterations: 5 lsigma: 0.075 ogain: 3.0 lskip: 0 ... (more)

edit retag flag offensive close merge delete