-
Notifications
You must be signed in to change notification settings - Fork 195
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
FSU may limit robot velocity and interfere with MotoROS #247
Comments
@EricMarcil @ted-miller fyi. |
@EricMarcil: I've never used / interacted with the FSU, but can it set/read IOs on the main controller? Or other variables / flags? If it can (ie: when it is active or limiting or generally interfering), we could use that to detect it and take appropriate action. |
@EricMarcil @ted-miller: have you had any more indication that the FSU may be interefering or ran into any issues (or customers)? |
Area monitoring and motion range that generate alarm are fine, since it will create an alarm that will completely stop the motion and the alarm status bit will be reported. The system will need to be reset and new motion planned from the current position. The issue is mainly with the FSU speed limit function. When it becomes enables, the motion commands capped to the speed limit and excess motion is discarted and we don't have any feedback of it. So from ROS perspective, the motion completed properly but the robot is not where you would expect it. So currently, the recommendation is not to use the FSU speed limit with ROS. You are better off to set the system to alarm. Otherwise, you would need to program the FSU to also generate an output when the speed limit kicks in and seperately monitor that signal (outside of the MotoRos driver or by customizing the MotoRos driver). Since up to 63 speed limits conditions can be programmed using various signals, it is difficult for us to define a generic monitoring system, especially since the FSU is independent from the controller so we don't have the same level of access. We've put in a request to get new APIs that would allow us to better monitor the FSU current speed limitation but at this time we don't have a timeline as to when it will be available. |
Thanks for your comments.
If MoveIt is used, the Trajectory Execution Monitor may already have stepped in and cancelled execution of the trajectory as it checks tracking error and if that becomes too large will cancel the goal. If users send |
Stupid question: there is no "speed limit (any of the 63) is active" IO signal available then? |
There are signals that indicates that an FSU condition is turning on, but we can't know what that condition is. It could speed-limit, range limit, tool orientation limit... and if it is the speed, what is the limit 0? 100? 250 mm/s? We would need to download and parse the FSU configuration files. So it might be possible but difficult. At this time, we haven't had anyone officially requesting this, so it is difficult to justify putting the time and effort into it. |
If people are in need of this functionality, let us know. We can then re-assess the situation. |
No, I was thinking that maybe we could check whether that signal is high/on/true and trigger an error if the FSU is active. As for now we can't know what the scaling is, so if there is any scaling, we could refuse to execute trajectories. That way we'd at least inform users instead of having them run into the issue and then asking/reading docs. |
I'll close this for now as we're blocked on the availability of access to the state of the FSU and we don't have an actual report of this being an issue. If any of that changes, we can revisit (and re-open). |
We have just tried using the MotoROS robot-side software together with the moto library, and we can confirm the FSU issue. Our (borrowed) robot had an FSU with an (unknown to us) tool speed limit of 250mm/s, and the trajectory we sent to the robot moved faster than this. The effect is that the robot doesn't reach some of the trajectory points, without informing the user, and then keeps going while the rest of the program is far from the trajectory - it is similar, but executed in a different position entirely. We concluded that the FSU was actually potentially dangerous in this scenario. We disabled it, and then everything was fine*, and MotoROS knew where the robot was again. *well, it also disabled the safety curtain... |
@madsherlock Disabling the FSU is a bit of an overkill. There are many functions (like motion range limits) available in the FSU that are very useful. You should be able to disable only the speed limit by going to Security security level and then the Safety Function menu. Select the Speed Limit and review the list of the speed limits and set them to Invalid as needed. On an HC-robots, some of the PFL default limits are all the way to the bottom (file 31 and 32). You can change the speed limit (but I do not recommend increasing it) but cannot invalidate directly. To disable that one, you have to go to the Safety Function - Safety Logic Circuit menu and disable the PFL function by putting a NOT at the beginning of the first line. For more detail refer to manual 181437-1CD (HW1484764) Collaborative Operation Instructions, section 3.3.1. Disabling Collaborative Operation by Changing the Safety Logic Circuit. Disabling the PFL function of an HC-robot basically makes it a normal non-collaborative robot and people should not be allowed close to the robot while it is running. Finally, as you change safety settings, a safety risk analysis should be conducted to make sure that the system is still safe to operate. |
One of our customers uses the FSU for speed limiting based on a laser scanner, with a slowdown-zone and a stop-zone. Telling them to replace the speed limiting with "stop the robot" works, but reduces the value and attractiveness of their investment into the robot, the FSU and safety equipment, so they (and we) do need this functionality. Have there been any changes to the API two allow finding out if FSU speed limiting is active? |
@cjue Unfortunately, there hasn't been any changes to the API. I'll try to investigate if I can find some work around... but it's a long shot. |
Just an update. I've manage to handle the FSU Speed Limitation inside the MotoRos driver. |
Thanks for the update, we are still very interested in that functionality. We just spent a lot of time to find out why one robot cell sometimes misbehaved, only to find out that a PLC sometimes activated the speed limiter for some seconds without anyone noticing. |
So far, I tested moving multiple axes in the joint space for a single robot. Need to test:
To Do:
If anyone has time to do some testing on it and review the code. It would be appreciated. |
I believe we should also decide what the ROS side should do. Motion planners/executors like MoveIt will notice a gradually increasing tracking error, and at some point will decide to cancel the motion. Without some way of MotoROS notifying
yes, that would be necessary. |
@EricMarcil, |
Opened PR #542 |
@EricMarcil |
@iydv Technically, the hard part is done. But as mention by @gavanderhoorn, the motoman_driver would need to be revised. I'm not familiar with that part and was hoping for some assistance. I know that Gavanderhoorn and Ted Miller are focusing on the ROS2 effort. So, if you or someone else are able to help, it would be appreciated. |
From #245 (comment):
The text was updated successfully, but these errors were encountered: