Adding big sensor throws: controller spawner couldn't find the expected controller_manager ROS interface ERROR
Hello everyone,
i am currently developing a robot with Ros Controllers and i can control it without any problems.
As soon, as i start attaching 2 laser scanner to my robot. I get the error: "controller spawner couldn't find the expected controller_manager ROS interface".
Could it be, that the process of loading the sensors takes too long? So the controller_manager shuts down?
Important parts of launch-file:
<launch>
<!-- start gazebo client -->
<group if="$(arg gui)">
<node name="gazebo_gui" pkg="gazebo_ros" type="gzclient" respawn="false" output="screen" args="--verbose"/>
</group>
<!-- Load universal robotic description format (URDF) -->
<param name="robot_description" command="$(find xacro)/xacro.py '$(arg robot_model)' tf_prefix:='$(arg tf_prefix)' ns:='$(arg robot_ns)' with_Sensor:=$(arg with_Sensor) Sensor_setting:=$(arg Sensor_setting)" />
<group ns="$(arg robot_ns)">
<!-- Load universal robotic description format (URDF) -->
<param name="robot_description" command="$(find xacro)/xacro.py '$(arg robot_model)' tf_prefix:='$(arg tf_prefix)' with_Sensor:=$(arg with_Sensor) Sensor_setting:=$(arg Sensor_setting)" />
<!-- spawn model in gazebo -->
<node name="spawn_robot_model" pkg="gazebo_ros" type="spawn_model"
args="-param robot_description
-urdf
-x $(arg pos_x)
-y $(arg pos_y)
-z $(arg pos_z)
-Y $(arg yaw)
-model $(arg robot_name)"
respawn="false" output="screen"/>
<!-- start controller -->
<include file="$(find vehicle_description)/launch/control/vehicle_control_effort.launch">
<arg name="robot_ns" value="$(arg robot_ns)" />
<arg name="tf_prefix" value="$(arg tf_prefix)" />
<arg name="control_param_file" value="$(arg control_param_file)"/>
</include>
</group>
</launch>
In the Xacro i load the sensors via:
<xacro:macro name="Sensor_setup" params="with_Sensor Sensor_setting">
<!-- Integrate Velodyne depending on the selected use case-->
<xacro:if value="${with_Sensor}">
<xacro:unless value="${Sensor_setting}"> <!-- Diagonal Setup -->
<xacro:static_velodyne_puck_vlp16 parent="$(arg tf_prefix)base_link" identifier="1" x="-${length/2}" y="${width/2}" z="${height}" roll="0" pitch="0.0" yaw="0.0"/>
<xacro:static_velodyne_puck_vlp16 parent="$(arg tf_prefix)base_link" identifier="2" x="${length/2}" y="-${width/2}" z="${height}" roll="0" pitch="0.0" yaw="0.0"/>
</xacro:unless>
<xacro:if value="${Sensor_setting}"> <!-- All Corners Setup -->
<xacro:static_velodyne_puck_vlp16 parent="$(arg tf_prefix)base_link" identifier="1" x="-${length/2}" y="${width/2}" z="${height}" roll="0" pitch="0.0" yaw="0.0"/>
<xacro:static_velodyne_puck_vlp16 parent="$(arg tf_prefix)base_link" identifier="2" x="${length/2}" y="-${width/2}" z="${height}" roll="0" pitch="0.0" yaw="0.0"/>
<xacro:static_velodyne_puck_vlp16 parent="$(arg tf_prefix)base_link" identifier="3" x="-${length/2}" y="-${width/2}" z="${height}" roll="0" pitch="0.0" yaw="0.0"/>
<xacro:static_velodyne_puck_vlp16 parent="$(arg tf_prefix)base_link" identifier="4" x="${length/2}" y="${width/2}" z="${height}" roll="0" pitch="0.0" yaw="0.0"/>
</xacro:if>
</xacro:if>
</xacro:macro>
<xacro:Sensor_setup with_Sensor="$(arg with_Sensor)" Sensor_setting="$(arg Sensor_setting)" />