-
Notifications
You must be signed in to change notification settings - Fork 412
Add ROS param (robot_receive_timeout) to control reverse interface timeouts #745
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ROS param (robot_receive_timeout) to control reverse interface timeouts #745
Conversation
Useful when the connection to the robot does not support real-time control
7c22f49
to
90013f2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for that contribution! Could I ask you to make sure the clang-format job succeeds? Also, I've added one comment about trajectory mode.
@@ -1354,7 +1359,7 @@ void HardwareInterface::startCartesianInterpolation(const hardware_interface::Ca | |||
{ | |||
size_t point_number = trajectory.trajectory.points.size(); | |||
ROS_DEBUG("Starting cartesian trajectory forward"); | |||
ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_START, point_number); | |||
ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_START, point_number, robot_receive_timeout_); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as with the other.
ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_START, point_number, robot_receive_timeout_); | |
ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_START, point_number); |
@@ -1292,7 +1297,7 @@ void HardwareInterface::startJointInterpolation(const hardware_interface::JointT | |||
{ | |||
size_t point_number = trajectory.trajectory.points.size(); | |||
ROS_DEBUG("Starting joint-based trajectory forward"); | |||
ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_START, point_number); | |||
ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_START, point_number, robot_receive_timeout_); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For trajectory control messages the default value is a lot higher actually, since we can tolerate missing communication for a longer period. Hence, I would suggest not adding it here.
ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_START, point_number, robot_receive_timeout_); | |
ur_driver_->writeTrajectoryControlMessage(urcl::control::TrajectoryControlMessage::TRAJECTORY_START, point_number); |
@urfeex |
Okay! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again!
tested and seems to work as expected. |
Backport of ROS2 PR UniversalRobots/Universal_Robots_ROS2_Driver#1003
Useful when the connection to the robot does not support real-time control.
If it fixes the issue #507 for me