Not being able to find controllers in rostopic
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 ...