Robotics StackExchange | Archived questions

How to diagnose when a URDF problem stops the gazebo_ros_control from receiving

I have a URDF ackermann vehicle that works just fine, until I put the LiDAR on top of it. The LiDAR works. I can visualize the point cloud in RVIZ, but Gazebo stops responding to the messages I publish to the joint controllers. I echo the joint topic and see the messages going in, but the wheels don't move.

UPDATE:
That is the problem. [WARN] [1571345774.639031, 0.000000]: Controller Spawner couldn't find the expected controller_manager ROS interface.

How can I diagnose this odd issue? Here is my xacro file. The trouble maker is the last bit, where I define the sensor link for the Velodyne laser. This same bit works in other robots... Any ideas? Thanks.

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

    <!-- Vehicle Dimensions -->
    <xacro:property name="wheel_base_length" value="1.753"/>
    <xacro:property name="wheel_base_width" value="1.245"/>
    <xacro:property name="wheel_diameter" value="0.584"/><!--.292 -->
    <xacro:property name="wheel_thickness" value="0.178"/>

    <!-- Macros -->
    <xacro:macro name="wheel" params="name radius width material caster_offset mass">
      <link name="${name}">         
            <collision> 
              <origin xyz="0 0 0" rpy="0 1.5708 1.5708" />
              <geometry> 
               <cylinder length="${width}" radius="${radius}"/> 
              </geometry> 
            </collision>
            <visual> 
              <origin xyz="0 0 0" rpy="0 1.5708 1.5708" /> 
              <geometry> 
                <cylinder length="${width}" radius="${radius}"/> 
              </geometry> 
              <material name="black"/> 
            </visual>
            <inertial> 
              <origin xyz="0 0 0" rpy="0 1.5708 1.5708" /> 
              <mass value="0.2"/> 
              <!--<cylinder_inertia m="0.2" r="0.3" h="0.1"/> -->
          <cylinder_inirtia m="${mass}" r="${radius}" h="${width}" />
          <!--<inertia ixx="0.23" ixy="0" ixz="0" iyy="0.23" iyz="0" izz="0.4"/>-->
          </inertial> 
        </link> 
      <gazebo reference="${name}"> 
        <mu1 value="2.0"/> 
        <mu2 value="2.0"/> 
        <kp  value="10000000.0" /> 
        <kd  value="1.0" /> 
        <fdir1 value="0 1 0"/> 
        <material>${material}</material> 
      </gazebo>
    </xacro:macro>

    <xacro:macro name="wheel_steer" params="lr lr_reflect">
      <xacro:wheel name="${lr}" radius="${wheel_diameter/2}" width="${wheel_thickness}" material="Gazebo/Blue" caster_offset="0" mass="6"/>
      <xacro:wheel name="${lr}_assembly" radius="0.1" width="0.001" material="Gazebo/White" caster_offset="-.5" mass="0.5" />

      <joint name="${lr}_hinge" type="revolute"> 
        <parent link="chassis"/> 
        <child link="${lr}_assembly"/> 
        <origin xyz="${wheel_base_length/2} ${lr_reflect*(wheel_base_width/2)} ${wheel_diameter/2}" rpy="0 0 0" />  
        <axis xyz="0 0 1" rpy="0 0 0" /> 
        <limit effort="100" velocity="1" lower="-1" upper="1"/> 
        <dynamics damping="0.0" friction="0.0"/> 
      </joint> 
      <joint name="${lr}_rotate" type="continuous"> 
        <parent link="${lr}_assembly"/> 
        <child link="${lr}"/> 
        <origin xyz="0.0 ${lr_reflect*(wheel_thickness/2)} 0.0" rpy="0 0 0" />  
        <axis xyz="0 1 0" rpy="0 0 0" /> 
        <limit effort="100" velocity="50"/> 
        <dynamics damping="0.0" friction="0.0"/> 
      </joint>
      <transmission name="trans_${lr}_hing">
        <type>transmission_interface/SimpleTransmission</type>
        <joint name="${lr}_hinge">
          <hardwareInterface>EffortJointInterface</hardwareInterface>
        </joint>
        <actuator name="motor_${lr}_front">
          <hardwareInterface>EffortJointInterface</hardwareInterface>
          <mechanicalReduction>1</mechanicalReduction>
        </actuator>
      </transmission>
      <transmission name="trans_${lr}_rotate">
        <type>transmission_interface/SimpleTransmission</type>
        <joint name="${lr}_rotate">
          <hardwareInterface>EffortJointInterface</hardwareInterface>
        </joint>
        <actuator name="motor_${lr}_rotate">
          <hardwareInterface>EffortJointInterface</hardwareInterface>
          <mechanicalReduction>1</mechanicalReduction>
        </actuator>
      </transmission>
    </xacro:macro> 

    <xacro:macro name="rear_wheel" params="lr lr_reflect">
      <xacro:wheel name="${lr}" radius="${wheel_diameter/2}" width="${wheel_thickness}" material="Gazebo/Blue" caster_offset="0" mass="6" />

      <joint name="${lr}_rotate" type="continuous"> 
        <parent link="chassis"/> 
        <child link="${lr}"/> 
        <origin xyz="${-wheel_base_length/2} ${lr_reflect*((wheel_base_width/2)+(wheel_thickness/2))} ${wheel_diameter/2}" rpy="0 0 0" />  
        <axis xyz="0 1 0" rpy="0 0 0" /> 
        <limit effort="0" velocity="0"/> 
        <dynamics damping="0.0" friction="0.0"/> 
      </joint>

    </xacro:macro>

        <!--<macro name="box_inertia" params="m x y z">
            <inertia  ixx="${m*(z*z+x*x)/12}" ixy = "0" ixz = "0"
                      iyy="${m*(y*y+x*x)/12}" iyz = "0"
                      izz="${m*(y*y+z*z)/12}" /> 
        </macro>
      <macro name="box_inertia" params="x y z mass">
          <inertia ixx="${0.0833333 * mass * (y*y + z*z)}" ixy="0.0" ixz="0.0"
            iyy="${0.0833333 * mass * (x*x + z*z)}" iyz="0.0"
            izz="${0.0833333 * mass * (x*x + y*y)}" />
      </macro>-->
      <macro name="box_inertia" params="x y z m">
            <inertia  ixx="${m*(y*y+z*z)/12}" ixy = "0" ixz = "0"
                      iyy="${m*(x*x+z*z)/12}" iyz = "0"
                      izz="${m*(x*x+z*z)/12}" /> 
        </macro>
      <macro name="cylinder_inirtia" params="m r h">
        <inertia  ixx="${(m*((3*r*r)+(h*h)))/12}" ixy = "0" ixz = "0"
                  iyy="${(m*((3*r*r)+(h*h)))/12}" iyz = "0"
                  izz="${(m*r*r)/2}" />
      </macro> 

    <!-- Macros End -->

        <!-- Base link -->  
      <link name="base_link">
        <visual>  
          <geometry>
            <box size="0.01 0.01 0.01"/>
          </geometry>
        </visual>
      </link> 

        <!-- Chassis START-->  
      <joint name="base_joint" type="fixed">
        <parent link="base_link"/> 
        <child link="chassis"/> 
      </joint> 

      <link name="chassis"> 
        <collision> 
          <origin xyz="0 0 ${wheel_diameter/2}" rpy="0 0 0"/> 
          <geometry> 
                <box size="${wheel_base_length} ${wheel_base_width-wheel_thickness} 0.1"/> 
          </geometry> 
        </collision> 
        <visual> 
          <origin xyz="0 0 0.3" rpy="0 0 0"/> 
          <geometry> 
             <box size="${wheel_base_length} ${wheel_base_width-wheel_thickness} 0.1"/> 
          </geometry> 
          <material name="orange"/> 
        </visual> 
        <inertial> 
          <mass value="1"/> 
          <origin xyz="0 0 0.3" rpy="0 0 0"/> 
          <box_inertia x="${wheel_base_length}" y="${wheel_base_width-wheel_thickness}" z=".1" m="1" />
          <!--<inertia ixx="0.4" ixy="0.1" ixz="0.1" iyy="0.4" iyz="0.1" izz="0.2"/>-->
        </inertial> 
      </link> 

      <gazebo reference="chassis"> 
        <!--Stiffness -->  
        <kp>1000000.0</kp> 
        <!--Dampening-->  
        <kd>0.1</kd> 
        <dampingFactor>0</dampingFactor> 
        <material>Gazebo/White</material> 
        <selfCollide>true</selfCollide> 
        <turnGravityOff>false</turnGravityOff> 
        <mu1 value="0.1"/> 
        <mu2 value="0.1"/> 
        <fdir1 value="0 0 0"/> 
      </gazebo> 
        <!-- Chassis END --> 

      <xacro:wheel_steer lr="right_wheel" lr_reflect="-1" />
      <xacro:wheel_steer lr="left_wheel" lr_reflect="1" />
      <xacro:rear_wheel lr="right_wheel_rear" lr_reflect="-1" />
      <xacro:rear_wheel lr="left_wheel_rear" lr_reflect="1" />

      <gazebo>
            <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
              <!--<robotNamespace>/ack</robotNamespace>-->
                <legacyModeNS>true</legacyModeNS>
            </plugin>
        </gazebo>


        <!-- Camera -->
        <!-- You can adjust the camera angle with the p in rpy, measured in radians. -->
        <!-- You can also increate the height of the camera by adding a number, in meters, -->
        <!-- to the z in xyz. For example, to simulate a camera mounted on a 1/2 meter post, -->
        <!-- we can replace the z value with ${wheelRadius+chassisHeight+0.5} --> 
      <joint name="camera_joint" type="fixed">
        <origin xyz="${wheel_base_length/2} 0 ${(wheel_diameter/2)+1}" rpy="0 1.0 0"/>
        <parent link="chassis"/>
        <child link="camera"/>
      </joint>

      <link name="camera">
        <collision>
          <origin xyz="0 0 0" rpy="0 0 0"/>
          <geometry>
        <box size=".05 .05 .05"/>
          </geometry>
        </collision>

        <visual>
          <origin xyz="0 0 0" rpy="0 0 0"/>
          <geometry>
        <box size=".05 .05 .05"/>
          </geometry>
          <material name="blue"/>
        </visual>

        <inertial>
          <mass value="0.05" />
          <origin xyz="0 0 0" rpy="0 0 0"/>
          <box_inertia x=".05" y=".05" z=".05" m="0.05" />
        </inertial>
      </link>

     <gazebo reference="camera">
      <material>Gazebo/Blue</material>
      <sensor type="camera" name="camera1">
          <update_rate>30.0</update_rate>
          <camera name="head">
            <horizontal_fov>1.3962634</horizontal_fov>
            <image>
              <width>1600</width>
              <height>1600</height>
              <format>R8G8B8</format>
            </image>
            <clip>
              <near>0.02</near>
              <far>300</far>
            </clip>
          </camera>
          <plugin name="camera_controller" filename="libgazebo_ros_camera.so">
            <alwaysOn>true</alwaysOn>
            <updateRate>0.0</updateRate>
            <cameraName>camera1</cameraName>
            <imageTopicName>image_raw</imageTopicName>
            <cameraInfoTopicName>camera_info</cameraInfoTopicName>
            <frameName>camera_link</frameName>
            <hackBaseline>0.07</hackBaseline>
            <distortionK1>0.0</distortionK1>
            <distortionK2>0.0</distortionK2>
            <distortionK3>0.0</distortionK3>
            <distortionT1>0.0</distortionT1>
            <distortionT2>0.0</distortionT2>
          </plugin>
        </sensor>
     </gazebo>


<!-- Trouble Begins -->     
      <xacro:include filename="$(find velodyne_description)/urdf/VLP-16.urdf.xacro"/>
      <VLP-16 parent="mount" name="velodyne" topic="/velodyne_points">
        <origin xyz="0 0 0.025" rpy="0 0 0" />
      </VLP-16>

      <joint name="mount" type="fixed" >
       <parent link="chassis" />
        <child link="mount" />
        <origin xyz="0 0 1" rpy="0 0 0" />
      </joint>
      <link name="mount" >
        <visual>
          <geometry>
            <box size="0.05 0.05 0.05" />
          </geometry>
        </visual>
        <collision>
          <geometry>
            <box size="0.05 0.05 0.05" />
          </geometry>
        </collision>
        <inertial>
          <origin xyz="0 0 0"/>
          <mass value="1"/>
          <inertia ixx="1.0" ixy="0.0" ixz="0.0"
                   iyy="1.0" iyz="0.0" 
                   izz="1.0" />
        </inertial>
      </link>

    </robot>





ben@ben-ThinkPad-S5-Yoga-15:~/workspaces/ROS/test1/src/ack$ roslaunch ack_gazebo gem_course_LiDAR.launch 
... logging to /home/ben/.ros/log/7b9583a0-f120-11e9-822d-6057183a88a6/roslaunch-ben-ThinkPad-S5-Yoga-15-32278.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://ben-ThinkPad-S5-Yoga-15:38103/

SUMMARY
========

PARAMETERS
 * /ack/joint_lw_velocity_controller/joint: left_wheel_rotate
 * /ack/joint_lw_velocity_controller/pid/d: 0.0
 * /ack/joint_lw_velocity_controller/pid/i: 1.0
 * /ack/joint_lw_velocity_controller/pid/i_clamp: 10.0
 * /ack/joint_lw_velocity_controller/pid/p: 1.5
 * /ack/joint_lw_velocity_controller/type: effort_controller...
 * /ack/joint_lwh_position_controller/joint: left_wheel_hinge
 * /ack/joint_lwh_position_controller/pid/d: 10.0
 * /ack/joint_lwh_position_controller/pid/i: 0.01
 * /ack/joint_lwh_position_controller/pid/p: 100.0
 * /ack/joint_lwh_position_controller/type: effort_controller...
 * /ack/joint_rw_velocity_controller/joint: right_wheel_rotate
 * /ack/joint_rw_velocity_controller/pid/d: 0.0
 * /ack/joint_rw_velocity_controller/pid/i: 1.0
 * /ack/joint_rw_velocity_controller/pid/i_clamp: 10.0
 * /ack/joint_rw_velocity_controller/pid/p: 1.5
 * /ack/joint_rw_velocity_controller/type: effort_controller...
 * /ack/joint_rwh_position_controller/joint: right_wheel_hinge
 * /ack/joint_rwh_position_controller/pid/d: 10.0
 * /ack/joint_rwh_position_controller/pid/i: 0.01
 * /ack/joint_rwh_position_controller/pid/p: 100.0
 * /ack/joint_rwh_position_controller/type: effort_controller...
 * /ack/joint_state_controller/publish_rate: 50
 * /ack/joint_state_controller/type: joint_state_contr...
 * /robot_description: <?xml version="1....
 * /rosdistro: kinetic
 * /rosversion: 1.12.14
 * /use_gui: False
 * /use_sim_time: True

NODES
  /ack/
    controller_spawner (controller_manager/spawner)
  /
    gazebo (gazebo_ros/debug)
    gazebo_gui (gazebo_ros/gzclient)
    joint_state_publisher (joint_state_publisher/joint_state_publisher)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    twist_to_ackermann (ack_gazebo/twist_to_ackermann)
    urdf_spawner (gazebo_ros/spawn_model)
    viewer (image_view/image_view)

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

setting /run_id to 7b9583a0-f120-11e9-822d-6057183a88a6
process[rosout-1]: started with pid [32307]
started core service [/rosout]
process[ack/controller_spawner-2]: started with pid [32331]
process[gazebo-3]: started with pid [32332]
process[gazebo_gui-4]: started with pid [32334]
process[robot_state_publisher-5]: started with pid [32340]
process[joint_state_publisher-6]: started with pid [32342]
process[urdf_spawner-7]: started with pid [32343]
process[twist_to_ackermann-8]: started with pid [32344]
process[viewer-9]: started with pid [32357]
[INFO] [1571345744.450140, 0.000000]: Controller Spawner: Waiting for service controller_manager/load_controller
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from gzserver...done.
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[ INFO] [1571345744.747624779]: Using transport "raw"
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[ INFO] [1571345745.003086208]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1571345745.006445359]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
SpawnModel script started
[INFO] [1571345745.336633, 0.000000]: Loading model XML from ros parameter
[INFO] [1571345745.343462, 0.000000]: Waiting for service /gazebo/spawn_urdf_model
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[New Thread 0x7fffce84c700 (LWP 499)]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[New Thread 0x7fffca58c700 (LWP 521)]
[New Thread 0x7fffc9d8b700 (LWP 522)]
[New Thread 0x7fffc958a700 (LWP 525)]
[New Thread 0x7fffc8d89700 (LWP 526)]
[New Thread 0x7fffc3fff700 (LWP 527)]
[New Thread 0x7fffc37fe700 (LWP 541)]
[New Thread 0x7fffc2ffd700 (LWP 542)]
[New Thread 0x7fffc27fc700 (LWP 543)]
[New Thread 0x7fffc1ffb700 (LWP 544)]
[New Thread 0x7fffc17fa700 (LWP 546)]
[New Thread 0x7fffc0ff9700 (LWP 547)]
[New Thread 0x7fffbbfff700 (LWP 548)]
[ INFO] [1571345750.795353515]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1571345750.797456611]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[New Thread 0x7fffbb7fe700 (LWP 551)]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[New Thread 0x7fff921a1700 (LWP 578)]
[New Thread 0x7fff919a0700 (LWP 579)]
[New Thread 0x7fff9119f700 (LWP 580)]
[New Thread 0x7fff9099e700 (LWP 582)]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[New Thread 0x7fff7fac1700 (LWP 625)]
[New Thread 0x7fff7f6c0700 (LWP 626)]
[New Thread 0x7fff7f2bf700 (LWP 627)]
[New Thread 0x7fff7eebe700 (LWP 689)]
[New Thread 0x7fff7e6bd700 (LWP 690)]
[New Thread 0x7fff7debc700 (LWP 691)]
[New Thread 0x7fff7d6bb700 (LWP 692)]
[INFO] [1571345751.987076, 0.000000]: Calling service /gazebo/spawn_urdf_model
Warning [parser_urdf.cc:1232] multiple inconsistent <self_collide> exists due to fixed joint reduction overwriting previous value [true] with [false].
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[ INFO] [1571345753.041948142]: Camera Plugin: Using the 'robotNamespace' param: '/'
[New Thread 0x7fff596c0700 (LWP 755)]
[ INFO] [1571345753.052504496]: Camera Plugin (ns = /)  <tf_prefix_>, set to ""
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[New Thread 0x7fff47fff700 (LWP 839)]
[Thread 0x7fff596c0700 (LWP 755) exited]
[WARN] [1571345774.639031, 0.000000]: Controller Spawner couldn't find the expected controller_manager ROS interface.
[ack/controller_spawner-2] process has finished cleanly
log file: /home/ben/.ros/log/7b9583a0-f120-11e9-822d-6057183a88a6/ack-controller_spawner-2*.log
[INFO] [1571345783.340358, 0.000000]: Spawn status: SpawnModel: Successfully spawned entity
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[New Thread 0x7fff475f0700 (LWP 1695)]
[ INFO] [1571345783.385982713]: Velodyne laser plugin ready, 16 lasers
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[ INFO] [1571345783.482516341]: Loading gazebo_ros_control plugin
[ INFO] [1571345783.482708037]: Starting gazebo_ros_control plugin in namespace: /ack
[ INFO] [1571345783.483665305]: gazebo_ros_control plugin is waiting for model URDF in parameter [/robot_description] on the ROS param server.
[tcsetpgrp failed in terminal_inferior: Inappropriate ioctl for device]
[ INFO] [1571345783.630915922]: Loaded gazebo_ros_control.
[urdf_spawner-7] process has finished cleanly
log file: /home/ben/.ros/log/7b9583a0-f120-11e9-822d-6057183a88a6/urdf_spawner-7*.log
[ INFO] [1571345791.346462650, 0.023000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1571345791.347797665, 0.024000000]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[ INFO] [1571345791.522123355, 0.132000000]: Physics dynamic reconfigure ready.
[Thread 0x7fffbbfff700 (LWP 548) exited]
[ INFO] [1571345791.533856084, 0.138000000]: Physics dynamic reconfigure ready.

Asked by horseatinweeds on 2019-10-14 18:14:08 UTC

Comments

I don't know for sure or what is happening, but the velodyne_description files also load Gazebo plugins in their .xacros. It could be that what you have in your model is conflicting somehow with what the VLP xacro is doing.

You may have already guessed that, but to test, you could disable the Gazebo-plugin in the VLP .xacro and see whether that changes anything.

Asked by gvdhoorn on 2019-10-16 02:04:25 UTC

I do not know if this matters but the definition of the transmission since ROS Indigo is:

  <gazebo>
    <plugin filename="libgazebo_ros_control.so" name="ros_control">
      <robotNamespace>robot_ns</robotNamespace>
      <robotParam>robot_description</robotParam>
      <controlPeriod>0.001</controlPeriod>
      <robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
      <legacyModeNS>true</legacyModeNS>
    </plugin>    
  </gazebo>

<transmission name="trans_name">
  <type>transmission_interface/SimpleTransmission</type>
  <joint name="joint_name">
    <hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
  </joint>
  <actuator name="joint_motor">
    <mechanicalReduction>1</mechanicalReduction>
  </actuator>
 </transmission>

Seems like to me, that you are not able to use the controllers cause they are not loaded in RobotHW.

Asked by Weasfas on 2019-10-16 04:48:37 UTC

That is the problem. [WARN] [1571345774.639031, 0.000000]: Controller Spawner couldn't find the expected controller_manager ROS interface.

This warning came up after i improved some other things about the urdf that were causing warnings. I tried using your example here:

/ack /ack/gem 0.001 gazebo_ros_control/DefaultRobotHWSim true

My namespace is /ack and my robot name is gem. I'm running out of ideas...

For one experiment I generated the urdf from my xacro, It's the temp2.txt file here: https://github.com/benwarrick/simple_ackermann/tree/master/ack_description/urdf

The xacro is gem_1kg_LiDAR.xacro

I added the output from the launch in my original post. Any advice is appreciated. Thanks.

Asked by horseatinweeds on 2019-10-17 18:41:23 UTC

Please update your question with this sort of information and make sure to format it properly. Right now it's very hard to read, and comments are too limited to contain this sort of update.

Edit your original question. Use the edit button/link for that.

Asked by gvdhoorn on 2019-10-18 04:51:25 UTC

Hi,

The repo you posted is not accessible. It would be good if you give read access.

On the other hand, I think the problem does not rely on the VLP-16 instantiation, and the plugin seems to launch correctly. That warning can be caused by several things, like lack of computing power that force the controller manager to not have enough time to load, conflicts when loading plugins (like the VLP-16)...

I am using the files you provided and I think you may have some collisions problems between links. My Gazebo is unable to start both the model and the controllers.

Also ensure you have installed gazebo_ros_pkgs and ros_control, ros_controllers.

Furthermore, you are running robot_state_publisher and joint_state_publisher in a different namespace, this is not advisable unless you do the proper remaps.

Asked by Weasfas on 2019-10-18 05:36:56 UTC

Hi Weasfas, thanks. I will update and try using one namespace for both robot_state_publisher and joint_state_publisher. Also, I set my repo to Public. (I thought I already had...)

The computer resources I think are fine. I have another robot using joint publishers along with this same LiDAR setup. Maybe it is a conflict. I will have to do more experiments.

Asked by horseatinweeds on 2019-10-18 06:16:33 UTC

Hi @horseatinweeds

After doing some tests with your package I found a several problems that, once fixed, let me display and control the base on Gazebo.

First of all, you need to take care of the tag <selfCollide> in the gazebo reference, because is causing self colliding problems in your model.

Next, you will need to change the VLP-16 description to adjust to your environment: you are loading a samples:=1875 Lidar, that is huge depending on the machine and resources allocate by Gazebo, Try to lower that number and launch the simulation. With those fixes you will be able to launch it and Gazebo will have enough time to load the controllers.

Asked by Weasfas on 2019-10-18 07:04:44 UTC

Answers