ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

[INFO] [1632Controller Spawner couldn't find the expected controller_manager ROS interface.

asked 2021-09-27 21:59:50 -0500

nichols gravatar image

Hi!

I'm trying to control a robotic arm I designed. I'm using moveit for kinematics and trajectory planning. I designed it in solidworks, so I used the urdf exporter plugin to get the arm into a urdf format. Then, used moveit's setup assistant to do some configuration for Moveit. I chose a pos_vel_controller to controll the arm, as the motor/hardware controllers that I'm using take a velocity and position. That spat out a package, that's got a bunch of launch files. So far, if I understand correctly, I'm supposed to launch the move group in one terminal, and launch the rviz with the moveit plugin in another as a way to make plans and execute them. I still have to implement a hardware interface, which I don't really understand how it fits into the structure. There's a ros_controllers launch file that looks like it launches the controller, but I get this error whenever I run it.

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://nichols-VirtualBox:44889/

SUMMARY
========

PARAMETERS
 * /arm_pos_vel_controller/gains/joint2/d: 1
 * /arm_pos_vel_controller/gains/joint2/i: 1
 * /arm_pos_vel_controller/gains/joint2/i_clamp: 1
 * /arm_pos_vel_controller/gains/joint2/p: 100
 * /arm_pos_vel_controller/gains/joint3/d: 1
 * /arm_pos_vel_controller/gains/joint3/i: 1
 * /arm_pos_vel_controller/gains/joint3/i_clamp: 1
 * /arm_pos_vel_controller/gains/joint3/p: 100
 * /arm_pos_vel_controller/gains/joint4/d: 1
 * /arm_pos_vel_controller/gains/joint4/i: 1
 * /arm_pos_vel_controller/gains/joint4/i_clamp: 1
 * /arm_pos_vel_controller/gains/joint4/p: 100
 * /arm_pos_vel_controller/gains/joint5/d: 1
 * /arm_pos_vel_controller/gains/joint5/i: 1
 * /arm_pos_vel_controller/gains/joint5/i_clamp: 1
 * /arm_pos_vel_controller/gains/joint5/p: 100
 * /arm_pos_vel_controller/gains/joint6/d: 1
 * /arm_pos_vel_controller/gains/joint6/i: 1
 * /arm_pos_vel_controller/gains/joint6/i_clamp: 1
 * /arm_pos_vel_controller/gains/joint6/p: 100
 * /arm_pos_vel_controller/joints: ['joint2', 'joint...
 * /arm_pos_vel_controller/type: pos_vel_controlle...
 * /controller_list: []
 * /generic_hw_control_loop/cycle_time_error_threshold: 0.01
 * /generic_hw_control_loop/loop_hz: 300
 * /hardware_interface/joints: ['joint2', 'joint...
 * /hardware_interface/sim_control_mode: 1
 * /joint_state_controller/publish_rate: 50
 * /joint_state_controller/type: joint_state_contr...
 * /moveit_sim_hw_interface/joint_model_group: robotarm
 * /moveit_sim_hw_interface/joint_model_group_pose: home
 * /rosdistro: noetic
 * /rosversion: 1.15.11

NODES
  /
    controller_spawner (controller_manager/spawner)

ROS_MASTER_URI=http://localhost:11311

process[controller_spawner-1]: started with pid [80404]
[INFO] [1632784390.847118, 0.000000]: Controller Spawner: Waiting for service controller_manager/load_controller
[WARN] [1632784421.064730, 0.000000]: Controller Spawner couldn't find the expected controller_manager ROS interface.
[controller_spawner-1] process has finished cleanly
log file: /home/nichols/.ros/log/d47630d2-1fdb-11ec-ab7a-753b5c3aea7d/controller_spawner-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done

From what I've seen, this is often a namespace issue, but in my arm urdf, srdf, and launch files I don't see any namespace declarations. I've also seen that it could be a resources issue, my resource monitor is showing that I've got plenty of cpu and memory. So all in all I don't really know how to properly start the controllers, or if I'm doing it right, or where/how to build a hardware interface. Any help or resources would be appreciated.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2021-11-02 13:33:35 -0500

nichols gravatar image

Solved. I had to implement a hardware interface, and start a joint_state_controller to get it running. It works if I launch my hardware interface, joint state controller, and then ros_controllers (from the moveit config), and then the move group.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2021-09-27 21:59:50 -0500

Seen: 420 times

Last updated: Nov 02 '21