diff_drive_controller loading error
I'm trying to load the diff_drive_controller but for some unknown to me reason it fails.
I run Gazebo first: roslaunch ros_robotics rrbot_gazebo.launch Then I run roscontrol: roslaunch ros_robotics rrbot_control.launch
When roscontrol is loading I get the following errors in roscontrol command tab:
[ERROR] [1515242737.646534, 28.579000]: Failed to load Differential_drive_wheels_controller
Gazebo command tab:
[ INFO] [1515242404.969943388, 257.990000000]: Controller state will be published at 50Hz.
[ INFO] [1515242404.971543327, 257.990000000]: Wheel separation will be multiplied by 1.
[ INFO] [1515242404.972525734, 257.991000000]: Wheel radius will be multiplied by 1.
[ INFO] [1515242404.973434427, 257.992000000]: Velocity rolling window size of 10.
[ INFO] [1515242404.974404622, 257.993000000]: Velocity commands will be considered old if they are older than 0.5s.
[ INFO] [1515242404.975184540, 257.993000000]: Allow mutiple cmd_vel publishers is enabled
[ INFO] [1515242404.976052109, 257.994000000]: Base frame_id set to base_link
[ INFO] [1515242404.979266852, 257.995000000]: Odometry frame_id set to odom
[ INFO] [1515242404.980146401, 257.996000000]: Publishing to tf is enabled
[ERROR] [1515242404.995002625, 258.004000000]: Robot descripion couldn't be retrieved from param server.
[ERROR] [1515242404.995072493, 258.004000000]: Failed to initialize the controller
[ERROR] [1515242404.995109210, 258.004000000]: Initializing controller 'Differential_drive_wheels_controller' failed
This is how my rrobot_control.yaml file looks like:
rrbot:
# Publish all joint states -----------------------------------
joint_state_controller:
type: joint_state_controller/JointStateController
publish_rate: 50
# Position Controllers for Robot Arm---------------------------------------
joint_base_mid_position_controller:
type: effort_controllers/JointPositionController
joint: joint_base_mid
pid: {p: 100.0, i: 0.01, d: 10.0}
joint_mid_top_position_controller:
type: effort_controllers/JointPositionController
joint: joint_mid_top
pid: {p: 100.0, i: 0.01, d: 10.0}
left_gripper_joint_position_controller:
type: effort_controllers/JointPositionController
joint: left_gripper_joint
pid: {p: 1.0, i: 0.00, d: 0.0}
right_gripper_joint_position_controller:
type: effort_controllers/JointPositionController
joint: right_gripper_joint
pid: {p: 1.0, i: 0.00, d: 0.0}
turret_joint_position_controller:
type: effort_controllers/JointPositionController
joint: joint_turret
pid: {p: 1.0, i: 0.00, d: 0.0}
# Differential Drive Controller
Differential_drive_wheels_controller:
type: "diff_drive_controller/DiffDriveController"
left_wheel: ['joint_left_front_wheel', 'joint_left_back_wheel']
right_wheel: ['joint_right_front_wheel', 'joint_right_back_wheel']
publish_rate: 50
pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 0.03]
twist_covariance_diagonal: [0.001, 0.001, 0.001, 1000000.0, 1000000.0, 0.03]
cmd_vel_timeout: 0.25
# Odometry fused with IMU is published by robot_localization, so
# no need to publish a TF based on encoders alone.
enable_odom_tf: false
# Wheel separation and radius multipliers
wheel_separation_multiplier: 1.5 # default: 1.0
wheel_radius_multiplier : 1.0 # default: 1.0
# Velocity and acceleration limits
# Whenever a min_* is unspecified, default to -max_*
linear:
x:
has_velocity_limits : true
max_velocity : 2.0 # m/s
has_acceleration_limits: true
max_acceleration : 20.0 # m/s^2
angular:
z:
has_velocity_limits : true
max_velocity : 4.0 # rad/s
has_acceleration_limits: true
max_acceleration : 25.0 # rad/s^2
*Update
I'm not sure what exactly the robot_description means but if possible please elaborate. What I have is a the following rrbot_control.launch file:
<launch>
<!-- Load joint controller configurations from YAML file to parameter server -->
<rosparam file="$(find ros_robotics)/config/rrbot_control.yaml" command="load"/>
<!-- load the controllers -->
<node name="control_spawner" pkg="controller_manager" type="spawner" respawn="false"
output="screen" ns="/rrbot" args="joint_state_controller
joint_base_mid_position_controller
joint_mid_top_position_controller
left_gripper_joint_position_controller
right_gripper_joint_position_controller
turret_joint_position_controller
Differential_drive_wheels_controller"/>
<!-- convert joint ...
do you have
robot_description
set, and does it contain the URDF of your robot?I have added the content of the controllers launch file and the transmissions from the model urdf/xacro file. The Position Controllers for Robot Arm that I have on my model are working properly but the diff_driver controller doesn't.
How did you solve this kallileo?