Diff_Drive_Controller not publishes cmd_vel_out on hardware

asked 2018-10-15 00:52:16 -0600

Boregard gravatar image

Hi, I have a setup that uses diff_drive_controller. Robot is working fine with gazebo.

diff_drive_controller is not working if I switch from simulation to real hardware interface. I have a motor controller from roboteq and use this implementation: https://github.com/rbonghi/roboteq_co...

Controller indicates everything ok. Controller Manager shows registered hardware interfaces. Connection to motor is ok.

It seems that diff_drive_controller does not publish any commands. I activated publish of cmd_vel_out, but even this is not published by diff_drive_controller.

Attached you will find my diff_drive_controller configuration.

<launch>


  <rosparam command="load" file="$(find hr_control)/config/hr_control.yaml" />

  <node name="base_controller_spawner" pkg="controller_manager" type="spawner"
    args="hr_driver_joint_state_controller hr_driver_diff_drive_controller"/>

  <node name="rqt_robot_steering" pkg="rqt_robot_steering" type="rqt_robot_steering">
    <param name="default_topic" value="/hr_driver_diff_drive_controller/cmd_vel"/>
  </node>

  <!-- Mux to control via joy, keyboard, high level control the robot -->
<node pkg="twist_mux" type="twist_mux" name="twist_mux">
  <rosparam command="load" file="$(find hr_control)/config/hr_teleop_twist_mux.yaml" />
  <remap from="cmd_vel_out" to="hr_driver_diff_drive_controller/cmd_vel"/>
</node>

</launch>


hr_driver_joint_state_controller:
  type: "joint_state_controller/JointStateController"
  publish_rate: 50

hr_driver_diff_drive_controller:
  type: "diff_drive_controller/DiffDriveController"
  publish_rate: 50

  left_wheel: 'base_to_left_wheel'
  right_wheel: 'base_to_right_wheel'

  wheel_separation: 0.44

  # Odometry covariances for the encoder output of the robot. These values should
  # be tuned to your robot's sample odometry data, but these values are a good place
  # to start
  pose_covariance_diagonal: [0.001, 0.001, 0.001, 0.001, 0.001, 0.03]
  twist_covariance_diagonal: [0.001, 0.001, 0.001, 0.001, 0.001, 0.03]

  # Top level frame (link) of the robot description
  base_frame_id: base_link

  # Velocity and acceleration limits for the robot
  linear:
    x:
      has_velocity_limits    : true
      max_velocity           : 1.9   # m/s
      has_acceleration_limits: true
      max_acceleration       : 0.6   # m/s^2
  angular:
    z:
      has_velocity_limits    : true
      max_velocity           : 2.0   # rad/s
      has_acceleration_limits: true
      max_acceleration       : 6.0   # rad/s^2
edit retag flag offensive close merge delete