# different robot speed due to change in controller

Hi there,

so far I have been using the differential drive plug-in to control my 4 wheeled robot. However, a few weeks ago I found that Gazebo also offers a skid steering drive controller. I found this to be more fitting for my robot and used it so far without any problems. However, I just realized, that this plug-in always instructs the robot to go half the speed that I command (isn't that weird???). In direct comparison, a robot commanded to go with say 2 m/s with this controller (libhuskygazeboplugins.so):

<gazebo>
<plugin name="husky_diff_controller" filename="libhusky_gazebo_plugins.so">
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<backLeftJoint>joint_back_left_wheel</backLeftJoint>
<backRightJoint>joint_back_right_wheel</backRightJoint>
<frontLeftJoint>joint_front_left_wheel</frontLeftJoint>
<frontRightJoint>joint_front_right_wheel</frontRightJoint>
<wheelSeparation>${base_y_size}</wheelSeparation> <wheelDiameter>${wheel_x_size}</wheelDiameter>
<torque>35</torque>
</plugin>
</gazebo>


Will move with the commanded 2m/s. However, the same robot will only move with 1m/s if commanded with this controller (libgazeborosskidsteerdrive.so):

 <gazebo>
<plugin name="husky_diff_controller" filename="libgazebo_ros_skid_steer_drive.so">
<updateRate>100.0</updateRate>
<alwaysOn>true</alwaysOn>
<robotNamespace>/</robotNamespace>
<leftFrontJoint>joint_front_left_wheel</leftFrontJoint>
<rightFrontJoint>joint_front_right_wheel</rightFrontJoint>
<leftRearJoint>joint_back_left_wheel</leftRearJoint>
<rightRearJoint>joint_back_right_wheel</rightRearJoint>
<wheelSeparation>${base_y_size}</wheelSeparation> <wheelDiameter>${wheel_x_size}</wheelDiameter>
<torque>35</torque>
<topicName>/husky/cmd_vel</topicName>
<commandTopic>/husky/cmd_vel</commandTopic>
<odometryTopic>/odom</odometryTopic>
<odometryFrame>/odom</odometryFrame>