У меня модель мобильного робота с дифференциальным приводом (urdf). Я использую пакет controller_manager (ros_control) для управления скоростью колес. Однако скорости всегда колеблются и не go для устойчивого состояния. Это нормально ? или у меня проблема с моим дизайном.
Здесь показаны значения обработки левого и правого колес в командных значениях (2 «синих» и 5 «красных»)
Это фото модели ddmr
<?xml version="1.0" ?>
<link name="link_dummy">
<pose>0 0 0.0325 0 0 0</pose>
<origin rpy="0 0 0" xyz = "0 0 0"/>
<collision name="collision_dummy">
<geometry>
<box size="0.001 0.001 0.001"/>
</geometry>
</collision>
<visual name="visual_dummy">
<geometry>
<box size="0.001 0.001 0.001"/>
</geometry>
</visual>
</link>
<joint name="dummy_chassis" type="fixed">
<origin xyz = "0 0 0" rpy="0 0 0"/>
<parent link="link_dummy"/>
<child link="link_chassis"/>
</joint>
<link name="link_chassis">
<!-- pose and inertial -->
<pose>0 0 0 0 0 0</pose>
<inertial>
<mass value="5"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<inertia ixx="0.006541666" ixy="0" ixz="0" iyy="0.016541666" iyz="0" izz="0.02008333"/>
</inertial>
<!-- body -->
<collision name="collision_chassis">
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.19 0.11 0.006"/>
</geometry>
</collision>
<visual name="visual_chassis">
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<box size="0.19 0.11 0.006"/>
</geometry>
<material name="white">
<color rgba="1.0 1.0 1.0 1.0"/>
</material>
</visual>
</link>
<link name="caster_cylinder">
<inertial>
<origin xyz="0 0 0" rpy="1.5707 0 0"/>
<mass value="0.3"/>
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
</inertial>
<collision name="caster_collision">
<origin rpy="1.5707 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.015" radius="0.015"/>
</geometry>
</collision>
<visual name="caster_visual">
<origin rpy="1.5707 0 0" xyz="0 0 0"/>
<geometry>
<cylinder length="0.015" radius="0.015"/>
</geometry>
</visual>
</link>
<joint name="joint_caster" type="continuous">
<origin rpy="0 0 0" xyz = "0.06 0 -0.018"/>
<child link="caster_cylinder"/>
<parent link="link_chassis"/>
<axis rpy="0 0 0" xyz="0 1 0"/>
<limit effort="5" velocity="5"/>
<joint_properties damping="1.0" friction="1.0"/>
</joint>
<link name="sensor_laser">
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0 0 0"/>
<mass value="0.0001"/>
<inertia ixx="0.05458333" ixy="0" ixz="0" iyy="0.05458333" iyz="0" izz="0.0525"/>
</inertial>
<collision name="snesor_laser_collision">
<geometry>
<cylinder radius="0.0005" length="0.0001"/>
</geometry>
</collision>
<visual name="sensor_laser_visual">
<geometry>
<cylinder radius="0.0005" length="0.0001"/>
</geometry>
<material name="green">
<color rgba="0.0 0.8 0.0 1.0"/>
</material>
</visual>
</link>
<joint name="joint_sensor_link" type="continuous">
<origin xyz="0.05 0.0 0.003" rpy ="0 0 0"/>
<parent link="link_chassis"/>
<child link="sensor_laser"/>
<axis rpy="0 0 0" xyz="0 0 1"/>
<limit effort="10000" velocity="1000"/>
<joint_properties damping="1" friction="1"/>
</joint>
<link name="link_camera">
<inertial>
<mass value="0.00001"/>
<origin xyz="0 0 0" rpy="0 0 0"/>
<inertia ixx="0.000001" ixy="0" ixz="0" iyy="0.000001" iyz="0" izz="0.000001"/>
</inertial>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.005 0.005 0.005"/>
</geometry>
</collision>
<visual>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<box size="0.005 0.005 0.005"/>
</geometry>
</visual>
</link>
<joint name="join_camera" type="fixed">
<axis xyz="0 1 0"/>
<origin xyz="0 0 0.0525" rpy="0 0 0"/>
<parent link="sensor_laser"/>
<child link="link_camera"/>
</joint>
<link name="link_right_wheel">
<inertial>
<mass value="1"/>
<origin rpy="1.5707 0 0" xyz="0 0 0"/>
<inertia ixx="0.0002828125" ixy="0" ixz="0" iyy="0.000528125" iyz="0" izz="0.0002828125"/>
</inertial>
<collision name="link_right_wheel_collision">
<origin rpy="1.5707 0 0 " xyz="0.0 0.0 0.0"/>
<geometry>
<cylinder length="0.015" radius="0.0325"/>
</geometry>
</collision>
<visual name="link_right_wheel_visual">
<origin rpy="1.5707 0 0" xyz="0.0 0.0 0"/>
<geometry>
<cylinder length="0.015" radius="0.0325"/>
</geometry>
<material name="grey">
<color rgba="0.2 0.2 0.2 1.0"/>
</material>
</visual>
</link>
<joint name="joint_right_wheel" type="continuous">
<origin rpy="0 0 0" xyz="-0.05 -0.0635 0"/>
<child link="link_right_wheel"/>
<parent link="link_chassis"/>
<axis rpy="0 0 0" xyz="0 1 0"/>
<limit effort="100" velocity="100"/>
<joint_properties damping="1" friction="0.1"/>
</joint>
<link name="link_left_wheel">
<inertial>
<mass value="1"/>
<origin rpy="1.5707 0 0" xyz="0 0 0"/>
<inertia ixx="0.0002828125" ixy="0" ixz="0" iyy="0.000528125" iyz="0" izz="0.0002828125"/>
</inertial>
<collision name="link_left_wheel_collision">
<origin rpy="1.5707 0 0" xyz="0.0 0.0 0"/>
<geometry>
<cylinder length="0.015" radius="0.0325"/>
</geometry>
</collision>
<visual name="link_left_wheel_visual">
<origin rpy="1.5707 0 0" xyz="0.0 0.0 0.0"/>
<geometry>
<cylinder length="0.015" radius="0.0325"/>
</geometry>
<material name="gray"/>
</visual>
</link>
<joint name="joint_left_wheel" type="continuous">
<origin rpy="0 0 0" xyz="-0.05 0.0635 0"/>
<child link="link_left_wheel"/>
<parent link="link_chassis"/>
<axis rpy="0 0 0" xyz="0 1 0"/>
<limit effort="100" velocity="100"/>
<joint_properties damping="1" friction="0.1"/>
</joint>
<!-- TRANSMISSION -->
<transmission name="left_wheel_trans">
<type> transmission_interface/SimpleTransmission </type>
<joint name="joint_left_wheel">
<hardwareInterface>hardware_interface/EffortJointInterface </hardwareInterface>
</joint>
<actuator name="left_motor">
<hardwareInterface>hardware_interface/EffortJointInterface </hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="right_wheel_trans">
<type> transmission_interface/SimpleTransmission </type>
<joint name="joint_right_wheel">
<hardwareInterface>hardware_interface/EffortJointInterface </hardwareInterface>
</joint>
<actuator name="right_motor">
<hardwareInterface>hardware_interface/EffortJointInterface </hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<transmission name="sensor_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="joint_sensor_link">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="sensor_motor">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
<!-- GAZEBO ROS CONTROL PLUGIN-->
<gazebo>
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
<robotNameSpace>/ddmr</robotNameSpace>
</plugin>
</gazebo>