-
Notifications
You must be signed in to change notification settings - Fork 16
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
TRAJ_STOP doesn't appear to work as expected #3
Comments
To address 2, the That would allow Ideally this would be integrated into |
ros-industrial/industrial_core#199 should address ros-industrial/industrial_core#175. |
The PR partially helped indeed, but when robot is close to get to the given goal, stop() function does not take effect, on the teach pendant I see the trajectory points are already been pushed while robot is still on the move, is there any suggestion to address this ? |
I don't really understand what you mean by this. Network handling and motion are decoupled in this driver. The ROS side could push 100 pts, with the robot still not moving, depending on what buffer length is configured.
Without checking this myself it's hard to provide you with any advice. There is no way to really You could add a Another alternative: create something that drops Edit:
please note: there is no "stop() function" anywhere in the driver. You are referring to the MoveIt side of things here, I believe. |
I meant, once the controller received all the trajectory points that are going to be executed, the TRAJ_STOP doesn't stop robot anymore, and all points received points are executed, after that TRAJ_STOP is being executed.
unfortunately I could not understand the alternatives you listed above as I have no experience in KAREL programming |
so after some head scratching and getting lost in fanuc's not so clever documentations, I found a temporary solution using your fanuc_ros_cgio. But as you described in the project, the timing is not that desirable. I still hope to get some more reliable solution for this. in ros-industrial/fanuc#93 you said;
But this issue is still open here, is there any willingness to go on this issue in future ? |
Switching to an actual fieldbus would immediately reduce latency and increase determinism.
I would be OK with PRs being submitted to address this issue, but I don't have time in the foreseeable future to work on it myself. The easiest way to integrate this would probably be something I described in my previous comment:
Unfortunately using |
ros-industrial/industrial_core#175 was fixed. I expect this to work now here in Closing. |
Two reasons:
"JointTrajectoryStreamer does not send TRAJ_STOP if in IDLE state" (robot_client: JointTrajectoryStreamer does not send TRAJ_STOP if in IDLE state ros-industrial/industrial_core#175)
there is no support in the current
industrial_robot_client
for a server to signal a client to send the next traj point. The client will always send a next point upon receiving anACK
to the previously sent point. This leads to the situation whereROS_TRAJ
-- with a full point buffer -- will not send outACK
s, which makesindustrial_robot_client
hang insendAndRecieve(..)
. Any pendingTRAJ_STOP
JOINT_TRAJ_PT
s will be blocked at this point.For sparse trajectories with long (joint space) distances between subsequent traj pts this will lead to the driver first having to 'finish' a (potentially long) segment until it can
ACK
again, and only then theTRAJ_STOP
will be received.The text was updated successfully, but these errors were encountered: