Quiz help - failed to load joint_position_controller

I’ve posted replies to a few previous topics, but haven’t gotten a response, so I’ll open an new topic.

When I run my quiz_control.launch I get the following:

ROS_MASTER_URI=http://6_simulation:11311

process[ur5/controller_spawner-1]: started with pid [1149]
process[robot_state_publisher-2]: started with pid [1150]
[INFO] [1618878193.859697, 0.000000]: Controller Spawner: Waiting for service controller_manager/load_controller
[INFO] [1618878193.872348, 35.031000]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1618878193.883442, 35.038000]: Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [1618878193.890640, 35.042000]: Loading controller: shoulder_lift_joint_position_controller
[ERROR] [1618878195.219501, 36.332000]: Failed to load shoulder_lift_joint_position_controller
[INFO] [1618878195.222042, 36.332000]: Loading controller: shoulder_pan_joint_position_controller
[ERROR] [1618878196.276089, 37.356000]: Failed to load shoulder_pan_joint_position_controller
[INFO] [1618878196.278865, 37.358000]: Loading controller: wrist_1_joint_position_controller
[ERROR] [1618878197.327076, 38.376000]: Failed to load wrist_1_joint_position_controller
[INFO] [1618878197.329411, 38.378000]: Loading controller: wrist_2_joint_position_controller
[ERROR] [1618878198.394504, 39.401000]: Failed to load wrist_2_joint_position_controller
[INFO] [1618878198.401064, 39.410000]: Loading controller: wrist_3_joint_position_controller
[ERROR] [1618878199.471390, 40.440000]: Failed to load wrist_3_joint_position_controller
[INFO] [1618878199.473808, 40.441000]: Loading controller: joint_state_controller
[INFO] [1618878199.732056, 40.694000]: Controller Spawner: Loaded controllers: joint_state_controller
[INFO] [1618878199.744444, 40.699000]: Started controllers: joint_state_controller

I’ve looked at the topics where others have had similar issues - I don’t see a clear solution. I’ve looked at the ur_description files, and I’ve looked at the code in other topics - my joints seem to have the correct names. in the ur_description xacro files there is a ${prefix} in front of the joint names - I can’t trace the prefix all the way back because in ur.gazebo.xacro there is a reference to ur_arm_gazebo that I can’t seem to track down. That said, the links also have ${prefix}, and when I look at the output from rostopic echo tf the links don’t have any prefix. So I think my joints are named correctly in the yaml file.

At this point I’ve completely run out of ideas - any hint would be very helpful so I can actually finish the quiz. I’m completely stuck otherwise since my joint position controllers won’t load.

Thanks,
/K

OK. I finally figured this out without any hints, and I am now a better human being for it :grinning:

For future students- look carefully at the xacro files. It’s much more obscure than the examples we had in previous lessons with the rrobot. Focus on the transmission types for the joints. I still have trouble figuring out what’s getting substituted where in xacro files, which is why I had initially missed it. I kept thinking I had the joint names wrong, so I was looking at the wrong thing. Hope my hints help.

/K