Robotics StackExchange | Archived questions

gazebo controller recognition problem

Hello, there is a problem with the controller input while uploading the robot from gazebo. I'd appreciate your help.

error message

$ roslaunch {package} launch

... logging to /home/kimjaen/.ros/log/1d958cb2-c239-11ed-9b62-fd77b2be295e/roslaunch-kimjaen-2174.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://localhost:33523/

SUMMARY
========

PARAMETERS
 * /gazebo/enable_ros_network: True
 * /rosdistro: noetic
 * /rosversion: 1.15.15
 * /car/joint_03_position_controller/joint: joint_03
 * /car/joint_03_position_controller/pid/d: 10.0
 * /car/joint_03_position_controller/pid/i: 0.01
 * /car/joint_03_position_controller/pid/p: 100.0
 * /car/joint_03_position_controller/type: effort_controller...
 * /car/joint_04_position_controller/joint: joint_04
 * /car/joint_04_position_controller/pid/d: 10.0
 * /car/joint_04_position_controller/pid/i: 0.01
 * /car/joint_04_position_controller/pid/p: 100.0
 * /car/joint_04_position_controller/type: effort_controller...
 * /car/joint_05_position_controller/joint: joint_05
 * /car/joint_05_position_controller/pid/d: 10.0
 * /car/joint_05_position_controller/pid/i: 0.01
 * /car/joint_05_position_controller/pid/p: 100.0
 * /car/joint_05_position_controller/type: effort_controller...
 * /car/joint_state_controller/publish_rate: 50
 * /car/joint_state_controller/type: joint_state_contr...
 * /car/left_slider_position_controller/joint: left_slider
 * /car/left_slider_position_controller/pid/d: 10.0
 * /car/left_slider_position_controller/pid/i: 0.01
 * /car/left_slider_position_controller/pid/p: 100.0
 * /car/left_slider_position_controller/type: effort_controller...
 * /car/right_slider_position_controller/joint: right_slider
 * /car/right_slider_position_controller/pid/d: 10.0
 * /car/right_slider_position_controller/pid/i: 0.01
 * /car/right_slider_position_controller/pid/p: 100.0
 * /car/right_slider_position_controller/type: effort_controller...
 * /car/robot_description: <?xml version="1....
 * /use_sim_time: True

NODES
  /
    gazebo (gazebo_ros/gzserver)
    gazebo_gui (gazebo_ros/gzclient)
  /car/
    controller_spawner (controller_manager/spawner)
    mybot_spawn (gazebo_ros/spawn_model)
    rqt_publisher (rqt_publisher/rqt_publisher)
    rqt_reconfigure (rqt_reconfigure/rqt_reconfigure)

auto-starting new master
process[master]: started with pid [2186]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 1d958cb2-c239-11ed-9b62-fd77b2be295e
process[rosout-1]: started with pid [2196]
started core service [/rosout]
process[gazebo-2]: started with pid [2199]
process[gazebo_gui-3]: started with pid [2205]
process[car/mybot_spawn-4]: started with pid [2211]
process[car/controller_spawner-5]: started with pid [2214]
process[car/rqt_reconfigure-6]: started with pid [2215]
process[car/rqt_publisher-7]: started with pid [2216]
[INFO] [1678778609.565001, 0.000000]: Loading model XML from ros parameter robot_description
[INFO] [1678778609.569759, 0.000000]: Waiting for service /gazebo/spawn_urdf_model
[INFO] [1678778609.572303, 0.000000]: Waiting for /clock to be available...
[ INFO] [1678778609.830229877]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1678778609.831096434]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1678778609.937331903]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
[ INFO] [1678778609.938207370]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1678778610.163657896]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[INFO] [1678778610.173782, 0.007000]: Calling service /gazebo/spawn_urdf_model
[INFO] [1678778610.493265, 0.156000]: Spawn status: SpawnModel: Successfully spawned entity
[ INFO] [1678778610.499239229, 0.156000000]: Physics dynamic reconfigure ready.
../src/intel/isl/isl.c:2105: FINISHME: ../src/intel/isl/isl.c:isl_surf_supports_ccs: CCS for 3D textures is disabled, but a workaround is available.
[ INFO] [1678778610.545539505, 0.156000000]: Loading gazebo_ros_control plugin
[ INFO] [1678778610.545732534, 0.156000000]: Starting gazebo_ros_control plugin in namespace: /car/
[ INFO] [1678778610.546101339, 0.156000000]: gazebo_ros_control plugin is waiting for model URDF in parameter [/car/robot_description] on the ROS param server.
[ INFO] [1678778610.672966102, 0.156000000]: Loaded gazebo_ros_control.
[INFO] [1678778610.717540, 0.201000]: /clock is published. Proceeding to load the controller(s).
[INFO] [1678778610.718493, 0.201000]: Controller Spawner: Waiting for service /car/controller_manager/load_controller
[INFO] [1678778610.720274, 0.203000]: Controller Spawner: Waiting for service /car/controller_manager/switch_controller
[INFO] [1678778610.722062, 0.205000]: Controller Spawner: Waiting for service /car/controller_manager/unload_controller
[INFO] [1678778610.723975, 0.207000]: Loading controller: joint_state_controller
[INFO] [1678778610.731911, 0.215000]: Loading controller: joint03_position_controller
[ERROR] [1678778610.734682353, 0.218000000]: Could not load controller 'joint03_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/car/joint03_position_controller')?
[car/mybot_spawn-4] process has finished cleanly
log file: /home/kimjaen/.ros/log/1d958cb2-c239-11ed-9b62-fd77b2be295e/car-mybot_spawn-4*.log
[ERROR] [1678778611.735891, 1.216000]: Failed to load joint03_position_controller
[INFO] [1678778611.736835, 1.217000]: Loading controller: joint04_position_controller
[ERROR] [1678778611.739638016, 1.219000000]: Could not load controller 'joint04_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/car/joint04_position_controller')?
[ERROR] [1678778612.740603, 2.218000]: Failed to load joint04_position_controller
[INFO] [1678778612.741582, 2.219000]: Loading controller: joint05_position_controller
[ERROR] [1678778612.743917646, 2.222000000]: Could not load controller 'joint05_position_controller' because the type was not specified. Did you load the controller configuration on the parameter server (namespace: '/car/joint05_position_controller')?
[ERROR] [1678778613.744581, 3.220000]: Failed to load joint05_position_controller
[INFO] [1678778613.745495, 3.221000]: Loading controller: left_slider_position_controller
[INFO] [1678778613.774940, 3.251000]: Loading controller: right_slider_position_controller
[INFO] [1678778613.789221, 3.265000]: Controller Spawner: Loaded controllers: joint_state_controller, left_slider_position_controller, right_slider_position_controller
[INFO] [1678778613.795694, 3.272000]: Started controllers: joint_state_controller, left_slider_position_controller, right_slider_position_controller
^C[car/rqt_publisher-7] killing on exit
[car/rqt_reconfigure-6] killing on exit
[car/controller_spawner-5] killing on exit
[gazebo_gui-3] killing on exit
[INFO] [1678778804.366496, 193.495000]: Shutting down spawner. Stopping and unloading controllers...
[gazebo-2] killing on exit
[INFO] [1678778804.367791, 193.496000]: Stopping all controllers...

my xacro File

No abnormalities in xacro files
~~~~~~~~
   <gazebo>
      <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
      </plugin>
   </gazebo>

</robot>

xacro plug-in application part

<?xml version="1.0" ?>
<robot name="car" xmlns:xacro="http://www.ros.org/wiki/xacro">

  <xacro:macro name="joint_n" params="name type axis_xyz limit_e limit_l limit_u limit_v origin_rpy origin_xyz parent child">
    <joint name="${name}" type="${type}">
      <axis xyz="${axis_xyz}" />
      <limit effort="${limit_e}" lower="${limit_l}" upper="${limit_u}" velocity="${limit_v}" />
      <origin rpy="${origin_rpy}" xyz="${origin_xyz}" />
      <parent link="${parent}" />
      <child link="${child}" />
    </joint>
    <transmission name="trans_${name}">
      <type>transmission_interface/SimpleTransmission</type>
      <joint name="${name}">
        <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
      </joint>
      <actuator name="motor_${name}">
        <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
        <mechanicalReduction>1</mechanicalReduction>
      </actuator>
    </transmission>        
  </xacro:macro>

My launch file

<?xml version="1.0" encoding="UTF-8"?>
<launch>
<!-- Spawn the world model -->
      <include file="$(find gazebo_ros)/launch/empty_world.launch">
        <arg name="paused" value="false"/>
        <arg name="use_sim_time" value="true"/>
        <arg name="gui" value="true"/>
        <arg name="headless" value="false"/>
        <arg name="debug" value="false"/>
      </include>

   <group ns="/car">

          <!-- Robot model -->
      <param name="robot_description" command="$(find xacro)/xacro $(find car_description)/urdf/car_urdf.xacro"/>
        <arg name="x" default="0"/>
        <arg name="y" default="0"/>
        <arg name="z" default="1"/>

      <!-- Spawn the robot model -->
        <node name="mybot_spawn" pkg="gazebo_ros" type="spawn_model" output="screen"
            args="-urdf -param robot_description -model car -x $(arg x) -y $(arg y) -z $(arg z)"/>

      <!-- Load controllers -->
      <rosparam command="load" file="$(find car_description)/config/controller.yaml" />

      <!-- Controllers -->
        <node name="controller_spawner" pkg="controller_manager" type="spawner"
            respawn="false" output="screen" ns="/car"
            args="--namespace=/car/
            joint_state_controller
            joint03_position_controller
            joint04_position_controller
            joint05_position_controller
            left_slider_position_controller
            right_slider_position_controller
            --timeout 60">
        </node>

      <!-- rqt -->
      <node name="rqt_reconfigure" pkg="rqt_reconfigure" type="rqt_reconfigure" />
      <node name="rqt_publisher" pkg="rqt_publisher" type="rqt_publisher" />

   </group>

</launch>

controller_yaml File

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

  # Position Controllers --------------------------------------
  joint_03_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint_03
    pid: {p: 100.0, i: 0.01, d: 10.0}
  joint_04_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint_04
    pid: {p: 100.0, i: 0.01, d: 10.0}
  joint_05_position_controller:
    type: effort_controllers/JointPositionController
    joint: joint_05
    pid: {p: 100.0, i: 0.01, d: 10.0}
  left_slider_position_controller:
    type: effort_controllers/JointPositionController
    joint: left_slider
    pid: {p: 100.0, i: 0.01, d: 10.0}
  right_slider_position_controller:
    type: effort_controllers/JointPositionController
    joint: right_slider
    pid: {p: 100.0, i: 0.01, d: 10.0}

As shown in the problem, only the connections of controllers 3, 4, and 5 fail.

The expected problem is that there is a fixed link between each joint, so is this a problem?

The two links are connected by a fixed axle link.

help me plz....

Asked by jaeeunkim on 2023-03-14 02:51:53 UTC

Comments

Answers

This problem was solved by modifying the package xml and Cmake file by adding rospy!

Asked by jaeeunkim on 2023-03-15 02:28:17 UTC

Comments