# Revision history [back]

### Ceclocity controll and PID tuneing

I'm currently building a simulation model for my robot and so far almost every thing works. I can move all my actuators. I'm currently stuck with the controlling the wheel velocity.

I have a joint

   <joint name="wheel_main_rotation" type="continuous">
<origin xyz="0 0 -0.1" rpy="0 0 0" />
<axis xyz="0 1 0" />
<limit effort="2000.0" velocity="1.0" />
</joint>


with a transmission

   <transmission name="tran2">
<type>transmission_interface/SimpleTransmission</type>
<joint name="wheel_main_rotation">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor2">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>


with the following controller config

  # velocity Controllers ---------------------------------------
joint2_velocity_controller:
type: effort_controllers/JointVelocityController
joint: wheel_main_rotation
pid: {p: 10000.0, i: 1.0, d: 1000.0}


and a rosnode which publishes the value 1.0 on the following topic

pub = rospy.Publisher('/my_robot_ns/joint2_velocity_controller/command', Float64, queue_size=10)


This approach works for all my revoloute and prismatic joints, but not for controlling the velocity of the main wheel. I actually doesn't move at all, no matter which value I publish.

### Ceclocity controll and PID tuneing

I'm currently building a simulation model for my robot and so far almost every thing works. I can move all my actuators. I'm currently stuck with the controlling the wheel velocity.

I have a joint

   <joint name="wheel_main_rotation" type="continuous">
<origin xyz="0 0 -0.1" rpy="0 0 0" />
<axis xyz="0 1 0" />
<limit effort="2000.0" velocity="1.0" />
</joint>


with a transmission

   <transmission name="tran2">
<type>transmission_interface/SimpleTransmission</type>
<joint name="wheel_main_rotation">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor2">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>


with the following controller config

  # velocity Controllers ---------------------------------------
joint2_velocity_controller:
type: effort_controllers/JointVelocityController
joint: wheel_main_rotation
pid: {p: 10000.0, i: 1.0, d: 1000.0}


and a rosnode which publishes the value 1.0 on the following topic

pub = rospy.Publisher('/my_robot_ns/joint2_velocity_controller/command', Float64, queue_size=10)


This approach works for all my revoloute and prismatic joints, but not for controlling the velocity of the main wheel. I actually doesn't move at all, no matter which value I publish.

### Ceclocity Velocity controll and PID tuneing

I'm currently building a simulation model for my robot and so far almost every thing works. I can move all my actuators. I'm currently stuck with the controlling the wheel velocity.

I have a joint

   <joint name="wheel_main_rotation" type="continuous">
<origin xyz="0 0 -0.1" rpy="0 0 0" />
<axis xyz="0 1 0" />
<limit effort="2000.0" velocity="1.0" />
</joint>


with a transmission

   <transmission name="tran2">
<type>transmission_interface/SimpleTransmission</type>
<joint name="wheel_main_rotation">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor2">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>


with the following controller config

  # velocity Controllers ---------------------------------------
joint2_velocity_controller:
type: effort_controllers/JointVelocityController
joint: wheel_main_rotation
pid: {p: 10000.0, i: 1.0, d: 1000.0}


and a rosnode which publishes the value 1.0 on the following topic

pub = rospy.Publisher('/my_robot_ns/joint2_velocity_controller/command', Float64, queue_size=10)


This approach works for all my revoloute and prismatic joints, but not for controlling the velocity of the main wheel. I actually doesn't move at all, no matter which value I publish.

### Velocity controll and PID tuneing

I'm currently building a simulation model for my robot and so far almost every thing works. I can move all my actuators. I'm currently stuck with the controlling the wheel velocity.

I have a joint

   <joint name="wheel_main_rotation" type="continuous">
<origin xyz="0 0 -0.1" rpy="0 0 0" />
<axis xyz="0 1 0" />
<limit effort="2000.0" velocity="1.0" />
</joint>


with a transmission

   <transmission name="tran2">
<type>transmission_interface/SimpleTransmission</type>
<joint name="wheel_main_rotation">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
</joint>
<actuator name="motor2">
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>


with the following controller config

  # velocity Controllers ---------------------------------------
joint2_velocity_controller:
type: effort_controllers/JointVelocityController
joint: wheel_main_rotation
pid: {p: 10000.0, i: 1.0, d: 1000.0}


and a rosnode which publishes the value 1.0 on the following topic

pub = rospy.Publisher('/my_robot_ns/joint2_velocity_controller/command', Float64, queue_size=10)


This approach works for all my revoloute and prismatic joints, but not for controlling the velocity of the main wheel. I actually doesn't move at all, no matter which value I publish.

edit:

the maximum velocity of my robot should be 1.0 m/sec