Not being able to find controllers in rostopic

asked 2021-03-15 11:09:38 -0500

DanEB gravatar image

updated 2021-04-26 09:11:10 -0500

miura gravatar image

Setup is Ubuntu 20.04, ROS Noetic.

We are working with a costume robot, that we managed to setup in URDF and visulize with Rviz. TFs seem to be setup correctly since we can visulize and control them in Rviz. Next step is to setup controller with the help of ros_control, which is were we run into issues. This is our setup for each link of the robot, we've even added a transmission element to each joint into the URDF-file, e.g

<link name="link_1">
    <inertial>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <mass value="1.817737692596768"/>
      <inertia 
        ixx="0" 
        ixy="0" 
        ixz="0" 
        iyy="0"
        iyz="0" 
        izz="0"/>
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="file:///home/bonbenjo/Desktop/barnehagen/catkin_ws/src/roam_description/meshes/link_1.dae"/>
      </geometry>
      <material name="white"/>
    </visual>
    <collision>
      <origin xyz="-0.023 0 -0.02702" rpy="0 0 0" />
      <geometry>
        <box size="0.126 0.08 0.121" />
      </geometry>
      <material name="red"/>
    </collision>
  </link>

    <joint name="link_1_joint" type="revolute">
        <parent link="base_link"/>
        <child link="link_1"/>
        <origin xyz="0 0 0.17108" rpy="0 0 -1.5708"/>
        <limit lower="-2.35" upper="0.45" effort="10" velocity="3"/>
        <axis xyz="0 0 1"/>
        <dynamics damping="0.7" friction="0.2"/>
    </joint>

    <transmission name="link_1_transmission">
          <type>transmission_interface/SimpleTransmission</type>
          <joint name="link_1_joint">
              <hardwareInterface>EffortJointInterface</hardwareInterface>
          </joint>
          <actuator name="link_1_motor">
              <hardwareInterface>EffortJointInterface</hardwareInterface>
              <mechanicalReduction>9</mechanicalReduction>
          </actuator>
    </transmission>

This is our config-file:

roam:

  joint_state_controller:
    type: joint_state_controller/JointStateController
    publish_rate: 50

  fl_wheel_joint_velocity_controller:
    type: effort_controllers/JointVelocityController
    joint: fl_wheel_joint
    pid: {p: 100.0, i: 10.0, d: 0.01}

  fr_wheel_joint_velocity_controller:
    type: effort_controllers/JointVelocityController
    joint: fr_wheel_joint
    pid: {p: 100.0, i: 10.0, d: 0.01}

  bl_wheel_joint_velocity_controller:
    type: effort_controllers/JointVelocityController
    joint: bl_wheel_joint
    pid: {p: 100.0, i: 10.0, d: 0.01}

  br_wheel_joint_velocity_controller:
    type: effort_controllers/JointVelocityController
    joint: br_wheel_joint
    pid: {p: 100.0, i: 10.0, d: 0.01}

  link_1_joint_position_controller:
    type: effort_controllers/JointPositionController
    joint: link_1_joint
    pid: {p: 100.0, i: 10.0, d: 0.01}

  link_2_joint_position_controller:
    type: effort_controllers/JointPositionController
    joint: link_2_joint
    pid: {p: 100.0, i: 10.0, d: 0.01}

  link_3_joint_position_controller:
    type: effort_controllers/JointPositionController
    joint: link_3_joint
    pid: {p: 100.0, i: 10.0, d: 0.01}

  link_4_joint_position_controller:
    type: effort_controllers/JointPositionController
    joint: link_4_joint
    pid: {p: 100.0, i: 10.0, d: 0.01}

  link_5_joint_position_controller:
    type: effort_controllers/JointPositionController
    joint: link_5_joint
    pid: {p: 100.0, i: 10.0, d: 0.01}

And this is our launch-file:

    <launch>

      <param name="robot_description" command="cat $(find roam_description)/urdf/roam.urdf"/>
        <rosparam file="$(find roam_control)/config/roam_control.yaml" command="load"/>

      <node name="joint_state_publisher" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui"/>
      <node name="rviz" pkg="rviz" type="rviz" args="-d $(find roam_description)/launch/roam.rviz"/>

      <node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
output="screen" ns="/roam" args="fl_wheel_joint_velocity_controller fr_wheel_joint_velocity_controller 
bl_wheel_joint_velocity_controller br_wheel_joint_velocity_controller link_1_joint_position_controller 
link_2_joint_position_controller link_3_joint_position_controller link_4_joint_position_controller 
       link_5_joint_position_controller joint_state_controller"/>

      <node name="robot_state_publisher ...
(more)
edit retag flag offensive close merge delete