Ошибка в ROS: Диспетчер контроллеров не смог найти ожидаемый интерфейс ROS controller_manager
Я получаю эту ошибку:
[WARN] [1549645986.850056, 54.996000]: контроллер Spawner не смог найти ожидаемый интерфейс ROS controller_manager
при запуске urdf в беседке. Я использую ROS Kinetic и везде искал решение этой ошибки, но не смог его найти. Аналогичный вопрос задается здесь. Я сделал все, что предлагается в этой ссылке и libjoint_state_controller.so
файл присутствует в opt/ros/kinetic/lib.
Я добавил плагин беседки в моем .xacro
файл.
<gazebo>
<plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
<robotNamespace>/mushak</robotNamespace>
<robotParam>/mushak/robot_description</robotParam>
</plugin>
</gazebo>
Это .launch
файл:
<?xml version="1.0" encoding="UTF-8"?>
<launch>
<group ns="/mushak">
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find mushak_pkg)/urdf/mushak_model.xacro'" />
<arg name="x" default="0"/>
<arg name="y" default="0"/>
<arg name="z" default="0.2412"/>
<!-- Spawn the robot model -->
<node name="mybot_spawn" pkg="gazebo_ros" type="spawn_model" output="screen"
args="-urdf -param robot_description -model mushak -x $(arg x) -y $(arg y) -z $(arg z)" />
<!-- Load controllers -->
<rosparam command="load" file="$(find mushak_pkg)/config/config.yaml" />
<!-- Controllers -->
<node name="controller_spawner" pkg="controller_manager" type="spawner"
respawn="false" output="screen" ns="/mushak"
args="
joint_state_controller
joint1_position_controller
joint2_position_controller
joint3_position_controller
joint4_position_controller
joint5_position_controller
joint6_position_controller
--timeout 50
">
</node>
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"
respawn="false" output="screen">
<remap from="/joint_states" to="/mushak/joint_states" />
</node>
</group>
</launch>
Модель открывается в rviz без каких-либо ошибок. Ниже приведен вывод при запуске rospack find joint_state_controller
,
/ Опт / ROS / кинетический / доля / joint_state_controller
Кроме того, в терминале, в котором работает Gazebo, отображается следующая ошибка:
[ОШИБКА] [1550681387.800721476, 9.313000000]: отсутствует параметр GazeboRosControlPlugin при использовании DefaultRobotHWSim, по умолчанию используется значение true. Этот параметр предполагает, что у вас есть старый пакет со старой реализацией DefaultRobotHWSim, где robotNamespace не учитывается и вместо него используются абсолютные пути. Если вы не хотите исправлять эту проблему в старом пакете, просто установите значение true.
Я добавил передачи для всех суставов:
<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>
Может кто-нибудь помочь мне с этим, пожалуйста!