Ask Your Question
1

Understanding follow_joint_trajectory setup

asked 2017-07-03 15:13:59 -0600

achille gravatar image

updated 2017-07-03 17:37:27 -0600

I can't figure out how the MoveIt interfaces with the hardware controller. Any help or references welcome. I tried the following:

  1. I created Python action servers that handle action messages sent by MoveIt for each move group in a new package named my_robot_controller. These are dummy SimpleActionServers I modified from the actionlib tutorial. I named them my_move_group_controller.py. They print to terminal using rospy.loginfo.
  2. I edited the controllers.yaml file in my_robot_moveit/config using the same my_move_group names.
  3. Following the MoveIt! tutorial on creating the controller launch file, I created a file my_robot_description_moveit_controller_manager.launch inside the my_robot_moveit package (created using the setup assistant). According to the SRDF file in that same package/config, the robot's name is my_robot_description, as that's where the URDF lives.
  4. I created a my_robot_moveit.launch file to start rviz and moveit (like demo.launch but enabling reading from joint_states). I set fake_execution to false.
  5. rosrun my_robot_moveit my_robot_description_moveit_controller_manager.launch. This command runs and terminates without error.
  6. rosrun my_robot_moveit my_robot_moveit.launch. This launches rviz and I can visualize the robot and plan trajectories, but it seems like moveit can't find the controllers:

Relevant terminal output

[ INFO] [1499120779.494268914]: Starting scene monitor
[ INFO] [1499120779.498303784]: Listening to '/move_group/monitored_planning_scene'
[ INFO] [1499120779.499209320]: waitForService: Service [/get_planning_scene] has not been advertised, waiting...
[ INFO] [1499120781.117743014]: Waiting for arm6dof_controller/follow_joint_trajectory to come up
[ INFO] [1499120784.515498443]: Failed to call service get_planning_scene, have you launched move_group? at /tmp/binarydeb/ros-kinetic-moveit-ros-planning-0.9.8/planning_scene_monitor/src/planning_scene_monitor.cpp:486
[ INFO] [1499120784.889705013]: No active joints or end effectors found for group ''. Make sure you have defined an end effector in your SRDF file and that kinematics.yaml is loaded in this node's namespace.
[ INFO] [1499120784.890079419]: No active joints or end effectors found for group 'arm6dof'. Make sure you have defined an end effector in your SRDF file and that kinematics.yaml is loaded in this node's namespace.
[ INFO] [1499120784.892088492]: No active joints or end effectors found for group 'arm6dof'. Make sure you have defined an end effector in your SRDF file and that kinematics.yaml is loaded in this node's namespace.
[ INFO] [1499120784.892679679]: Constructing new MoveGroup connection for group 'arm6dof' in namespace ''
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QVector<int>'
(Make sure 'QVector<int>' is registered using qRegisterMetaType().)
[ INFO] [1499120786.117870928]: Waiting for arm6dof_controller/follow_joint_trajectory to come up
[ERROR] [1499120791.118052218]: Action client not connected: arm6dof_controller/follow_joint_trajectory
[ INFO] [1499120796.145848142]: Waiting for base_gripper_controller/follow_joint_trajectory to come up
[ INFO] [1499120801.146001310]: Waiting for base_gripper_controller/follow_joint_trajectory to come up
[ERROR] [1499120806.146111888]: Action client not connected: base_gripper_controller/follow_joint_trajectory
[ INFO] [1499120811.254410130]: Waiting for ee_gripper_controller/follow_joint_trajectory to come up
[ERROR] [1499120814.906571120]: Unable to connect to move_group action server 'move_group' within allotted time (30s)
[ INFO] [1499120814.906992117]: Constructing new MoveGroup connection for group 'arm6dof' in namespace ''
[ INFO] [1499120816.254549199]: Waiting for ee_gripper_controller/follow_joint_trajectory to come up
[ERROR] [1499120821.254703646 ...
(more)
edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
0

answered 2017-07-04 14:51:54 -0600

achille gravatar image

I could figure it out using the example files posted in this discussion. It is specific for the dynamixel motors, but gives a minimal example of a working configuration.

edit flag offensive delete link more
0

answered 2017-07-04 06:54:28 -0600

v4hn gravatar image

I created a my_robot_moveit.launch file to start rviz and moveit (like demo.launch but enabling reading from joint_states). I set fake_execution to false.

The move_group.launch should do just that out of the box...

I created Python action servers that handle action messages sent by MoveIt for each move group in a new package named my_robot_controller

These should setup FollowJointTrajectory actions on the topics you configured in MoveIt. You have to have them started when MoveIt starts up.

Action client not connected: arm6dof_controller/follow_joint_trajectory

This means your action server is either not configured to run on the topics "arm6dof_controller/follow_joint_trajectory/goal", ... or you simply didn't start it before starting the move_group.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2017-07-03 15:13:59 -0600

Seen: 802 times

Last updated: Jul 04 '17