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

Revision history [back]

click to hide/show revision 1
initial version

I would like to control the velocity of the path execution of the UR5 robot.

Do you want to specify velocity constraints on path segments, or are you after actual velocity control (ie: control joint velocity instead of position)?

If the former: that is already supported, and should be specified in the trajectory that is send to the control_msgs/FollowJointTrajectoryAction Action server setup by the ur_driver.

If the latter: the current ROS-Industrial driver for UR doesn't expose the velocity control functionality of the UR controller yet. You might want to look at alternatives, such as urx.

I would like to control the velocity of the path execution of the UR5 robot.

Do you want to specify velocity constraints on path segments, or are you after actual velocity control (ie: control joint velocity instead of position)?

If the former: that is already supported, and should be specified in the trajectory that is send to the control_msgs/FollowJointTrajectoryAction Action server setup by the ur_driver. I just remembered: the current ur_driver does not actually use the velocity field in a JointTrajectoryPoint. Velocity (and also acceleration) are derived from the time_from_start field each JointTrajectoryPoint contains.

If the latter: the current ROS-Industrial driver for UR doesn't expose the velocity control functionality of the UR controller yet. You might want to look at alternatives, such as urx.

I would like to control the velocity of the path execution of the UR5 robot.

Do you want to specify velocity constraints on path segments, or are you after actual velocity control (ie: control joint velocity instead of position)?

If the former: that is already supported, and should be specified in the trajectory that is send to the control_msgs/FollowJointTrajectoryAction Action server setup by the ur_driver. I just remembered: the current ur_driver does not actually use the velocity field in a JointTrajectoryPoint. Velocity (and also acceleration) are derived from the time_from_start field each JointTrajectoryPoint contains.

If the latter: the current ROS-Industrial driver for UR doesn't expose the velocity control functionality of the UR controller yet. You There is however work ongoing to open up that interface for use from ROS. In the mean-time, you might want to look at alternatives, such as urx.

I would like to control the velocity of the path execution of the UR5 robot.

Do you want to specify velocity constraints on path segments, or are you after actual velocity control (ie: control joint velocity instead of position)?

If the former: that is already supported, and should be specified in the trajectory that is send to the control_msgs/FollowJointTrajectoryAction Action server setup by the ur_driver. I just remembered: the current ur_driver does not actually use the velocity field in a JointTrajectoryPoint. Velocity (and also acceleration) are derived from the time_from_start field each JointTrajectoryPoint contains.

If the latter: the current ROS-Industrial driver for UR doesn't expose the velocity control functionality of the UR controller yet. There is however work ongoing to open up that interface for use from ROS. In the mean-time, you might want to look at alternatives, such as urx.


Actually, I want to specify the velocity on path segment like you described in your first solution. I’ve found the time_from_start in the JointTrajectoryPoint Message. But how to use and set velocity values properly?

Isn't time_from_start automatically calculated (and then recalculated in ur_driver)? Afaicr I've never had to set those fields manually. Especially not when using MoveIt. If you do need to set it by hand, then time_from_start is essentially the inverse of the velocity specified for the segment between point n and n+1.

I would like to control the velocity of the path execution of the UR5 robot.

Do you want to specify velocity constraints on path segments, or are you after actual velocity control (ie: control joint velocity instead of position)?

If the former: that is already supported, and should be specified in the trajectory that is send to the control_msgs/FollowJointTrajectoryAction Action server setup by the ur_driver. I just remembered: the current ur_driver does not actually use the velocity field in a JointTrajectoryPoint. Velocity (and also acceleration) are derived from the time_from_start field each JointTrajectoryPoint contains.

If the latter: the current ROS-Industrial driver for UR doesn't expose the velocity control functionality of the UR controller yet. There is however work ongoing to open up that interface for use from ROS. In the mean-time, you might want to look at alternatives, such as urx.


Actually, I want to specify the velocity on path segment like you described in your first solution. I’ve found the time_from_start in the JointTrajectoryPoint Message. But how to use and set velocity values properly?

Isn't time_from_start automatically calculated (and then recalculated in ur_driver)? Afaicr I've never had to set those fields manually. Especially not when using MoveIt. If you do need to set it by hand, then time_from_start is essentially the inverse of the velocity specified for the for point n should be the time at which the previous segment between should be finished. So for a distance x and velocity v, time_from_start for point n+1 should be time_from_start for n and n+1.

+ x/v, if I'm not mistaken.

I would like to control the velocity of the path execution of the UR5 robot.

Do you want to specify velocity constraints on path segments, or are you after actual velocity control (ie: control joint velocity instead of position)?

If the former: that is already supported, and should be specified in the trajectory that is send to the control_msgs/FollowJointTrajectoryAction Action server setup by the ur_driver. I just remembered: the current ur_driver does not actually use the velocity field in a JointTrajectoryPoint. Velocity (and also acceleration) are derived from the time_from_start field each JointTrajectoryPoint contains.

If the latter: the current ROS-Industrial driver for UR doesn't expose the velocity control functionality of the UR controller yet. There is however work ongoing to open up that interface for use from ROS. In the mean-time, you might want to look at alternatives, such as urx.


Actually, I want to specify the velocity on path segment like you described in your first solution. I’ve found the time_from_start in the JointTrajectoryPoint Message. But how to use and set velocity values properly?

Isn't time_from_start automatically calculated (and then recalculated in ur_driver)? Afaicr I've never had to set those fields manually. Especially not when using MoveIt. If you do need to set it by hand, then time_from_start for point n should be the time at which the previous segment should be finished. So for a distance x and velocity v, time_from_start for point n+1 should be time_from_start for n + x/v, if I'm not mistaken.

mistaken (see also Moving the arm using the Joint Trajectory Action - 1.4: The trajectory message).

I would like to control the velocity of the path execution of the UR5 robot.

Do you want to specify velocity constraints on path segments, or are you after actual velocity control (ie: control joint velocity instead of position)?

If the former: that is already supported, and should be specified in the trajectory that is send to the control_msgs/FollowJointTrajectoryAction Action server setup by the ur_driver. I just remembered: the current ur_driver does not actually use the velocity field in a JointTrajectoryPoint. Velocity (and also acceleration) are derived from the time_from_start field each JointTrajectoryPoint contains.

If the latter: the current ROS-Industrial driver for UR doesn't expose the velocity control functionality of the UR controller yet. There is however work ongoing to open up that interface for use from ROS. In the mean-time, you might want to look at alternatives, such as urx.


Actually, I want to specify the velocity on path segment like you described in your first solution. I’ve found the time_from_start in the JointTrajectoryPoint Message. But how to use and set velocity values properly?

Isn't time_from_start automatically calculated (and then recalculated in ur_driver)? Afaicr I've never had to set those fields manually. Especially not when using MoveIt. If you do need to set it by hand, then time_from_start for point n should be the time at which the previous segment should be finished. So for a distance x (whatever 'distance' means in your particular case) and velocity v, time_from_start for point n+1 should be (time_from_start for n ) + x/v, if I'm not mistaken (see also Moving the arm using the Joint Trajectory Action - 1.4: The trajectory message).