Error receiving joint states in moveit
I have a problem reading joint states from my robot arm in moveit. I have a robot arm that works within RVIZ, I can move the arm around and plan paths, but every time I do I receive an error:
[ERROR] [1560760011.563298414]: Unable to identify any set of controllers that can actuate the specified joints: [ joint_a1 joint_a2 joint_a3 joint_a4 joint_a5 joint_a6 ]
[ERROR] [1560760011.563447792]: Known controllers and their joints:
[ERROR] [1560760011.563601675]: Apparently trajectory initialization failed
What do I need to check and or change?
I believe this has something to do with the controller configuration. I have several launch files relating to controller manager: kr150_moveit_controller_manager.launch
and kr150_moveit_controller_manager.launch.xml
. What is the difference between .launch
and .launch.xml
? My controllers.yaml
file and my joint_names.yaml
look correct according to the tutorial I have been following:
http://wiki.ros.org/Industrial/Tutori...
Any help will be greatly appreciated!
EDIT:
I have spent the last few days researching this problem. I think I need to adjust the moveit_planning_execution.launch file. Currrently this reads:
<launch>
<!-- The planning and execution components of MoveIt! configured to run -->
<!-- using the ROS-Industrial interface. -->
<arg name="db" default="false" />
<!-- Allow user to specify database location -->
<arg name="db_path" default="$(find kr150_moveit_config)/default_warehouse_mongo_db" />
<!-- By default, we are not in debug mode -->
<arg name="debug" default="false" />
<!-- Non-standard joint names:
- Create a file [robot_moveit_config]/config/joint_names.yaml
controller_joint_names: [joint_1, joint_2, ... joint_N]
- Update with joint names for your robot (in order expected by rbt controller)
- and uncomment the following line: -->
<rosparam command="load" file="$(find kr150_moveit_config)/config/controllers.yaml" />
<rosparam command="load" file="$(find kr150_moveit_config)/config/joint_names.yaml"/>
<rosparam command="load" file="$(find kr150_moveit_config)/config/ros_controllers.yaml" />
<arg name="use_gui" default="false" />
<!-- the "sim" argument controls whether we connect to a Simulated or Real robot -->
<!-- - if sim=false, a robot_ip argument is required -->
<arg name="sim" default="true" />
<arg name="robot_ip" default="192.168.0.5" unless="$(arg sim)" />
<arg name="port" default="30000" unless="$(arg sim)" />
<!-- load the robot_description parameter before launching ROS-I nodes -->
<include file="$(find kr150_moveit_config)/launch/planning_context.launch" >
<arg name="load_robot_description" value="true" />
</include>
<!-- run the robot simulator and action interface nodes -->
<group if="$(arg sim)">
<include file="$(find industrial_robot_simulator)/launch/robot_interface_simulator.launch" />
</group>
<!-- run the "real robot" interface nodes -->
<!-- - this typically includes: robot_state, motion_interface, and joint_trajectory_action nodes -->
<!-- - replace these calls with appropriate robot-specific calls or launch files -->
<group unless="$(arg sim)">
<include file="$$(find kr150_moveit_config)/launch/robot_interface.launch" >
<arg name="robot_ip" value="$(arg robot_ip)"/>
</include>
</group>
<!-- load the controllers -->
<node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"
output="screen" ns="follow_joint_trajectory" args="controller joint_state_controller"/>
<!-- We do not have a robot connected, so publish fake joint states -->
<node name="joint_state_publisher" pkg="joint_state_publisher ...
Yes, it's an issue with your controllers. Have you solved the problem? Please post a solution if so.