ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

robot_description not found on parameter server while launching the controller.

asked 2022-03-05 14:15:12 -0500

aarsh_t gravatar image

Hello everyone, I have one own created controller for one crane arm. Here you can find the necessary information from controller yaml file,

hardware_interface:
  joints:
    - neck_L_j1
    - arm_j1_j2
    - arm_j2_j3
  sim_control_mode: 1 # 0: position, 1: velocity

# Publish all joint states -----------------------------------
joint_state_controller:
    type: joint_state_controller/JointStateController
    publish_rate: 500  


crane_left_eff_pos_controller:
     type: effort_controllers/JointGroupPositionController
     joints:
       - neck_L_j1
       - arm_j1_j2
       - arm_j2_j3

     neck_L_j1:
       pid: {p: 3000.0, i: 1.0, d: 0.01}
     arm_j1_j2:
       pid: {p: 3000.0, i: 1.0, d: 0.01}
     arm_j2_j3:
       pid: {p: 3500.0, i: 1.0, d: 0.01}

I have created the controller launch file which contains the following information.

<?xml version="1.0"?>
<launch>
<group ns="/robot1">
    <rosparam file="$(find crane_arm_controller_robot1)/config/crane_arm_controller.yaml" command="load" />

    <arg name="controllers" default="joint_state_controller crane_left_eff_pos_controller" />

    <!-- Loads the controllers -->
    <node name="leftArm_controller_spawner" pkg="controller_manager" type="spawner"
    output="screen" args="$(arg controllers)"/>
</group>
</launch>

I have same namespace into urdf file as well while loading the plugin.

<gazebo> 
    <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
        <robotNamespace>/robot1</robotNamespace>
    </plugin>
</gazebo>

Now whenever I launch the module, I have robot_description param loaded as /robot1/robot_description so controller should be able to find it but that is not the case with me. it gives the following error.

[ERROR] [1646509768.321224385]: Could not find parameter robot_description on parameter server
[ERROR] [1646509768.321700089]: Failed to parse urdf file
[ERROR] [1646509768.321938019]: Failed to initialize the controller
[ERROR] [1646509768.322140682]: Initializing controller 'crane_left_eff_pos_controller' failed
[ERROR] [1646509769.337931]: Failed to load crane_left_eff_pos_controller

Now here comes the best part, Everything runs smoothy when I have robot_description param loaded as /robot_description. On top of that if I do not use effort_controllers/JointGroupPositionController and use effort_controllers/JointPositionController for individual joints, the controller identify the robot_description loaded into namespace /robot1/robot_description

Please let me know if you know some way to solve this. If you want more information on the issue, please let me know.

Thank you.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2022-03-06 07:50:17 -0500

aarsh_t gravatar image

It was an issue with the ros_controllers package, I have modified the relevant file and opened a PR, in the mean time it get accepted, you can use building from source with my repo.

Here is the link to PR.

And here is the link to the updated repo.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2022-03-05 14:15:12 -0500

Seen: 533 times

Last updated: Mar 06 '22