-
Notifications
You must be signed in to change notification settings - Fork 951
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
Safety feedback and cobots #1958
Comments
What features would you like to retain in MoveIt if the hardware driver takes care of the slowdown?
Essentially, if you disable duration monitoring, there is no need to modify MoveIt at all.
Trajectories will simply take longer than anticipated.
If you want to have online path validation, you would have to extend the monitor.
The two options I see:
- you can monitor the safety state and update the expected runtime of the remaining trajectory.
You are probably already aware of https://github.com/ros-industrial/industrial_core/tree/kinetic-devel/industrial_msgs
These messages do not seem to contain information like that yet, but I would expect it there.
This approach will end up much more fragile than the current time-based solution because delays can accumulate
and you might have to model the dynamic response of the controller to changes in safety state if you want to stay close to the real trajectory.
- You can directly monitor joint states and map them to the executing trajectory by hand.
This also allows to verify execution tolerances.
Personally, I would like to see an upstream patch for the second option. 😎
|
Thanks for your feedback @v4hn , can you elaborate a bit more? Turning off the duration monitoring would unfortunately mean that our application "hangs" as there are multiple components without a feedback channel. (E.g. upload to robot failed, robot rejected trajectory, ...) We should modify our application such that one can still cancel such trajectories but we also need to notify higher level system or maintenance personal in case of errors. |
You send trajectories to the controller and expect it to follow that trajectory in joint-space, though the time profile can change from the computed one.
Does that mean all these components currently only rely on the time since you sent the trajectory for execution? I really would not build on that value at all...
These things should be reported by the
If "such" refers to cases of action failure: this should already be the case? |
See ros-industrial/industrial_core#187 and ros-industrial/industrial_core#131 and a few others for examples where the action is not cancelled cleanly |
You are pointing to a number of actual issues in driver implementations that should really be fixed! They are really old too, wow... Of course you can build a monitoring system around the whole system to validate its behavior, but that's (theoretically) not the idea of the functional frameworks. If I understand your intention, you are basically looking for a way to extend the monitoring system you already have (duration-based) to support safety states and dynamic external velocity scaling. I would still argue that this dynamic component justifies joint state monitoring.
|
We're currently discussing internally how to integrate external safety features with MoveIt. What we aim for is a very basic integration of area sensors that report something along the lines of 100% 50% 10% 0% depending on proximity of humans. The sensor is of course directly coupled (PROFIsafe or similar) to the hardware and MoveIt/ROS is just an observer.
This could be handled by having
TrajectoryExecutionManager
listen to a new topic with such information. I'm wondering if this has been done previously and if there are message types defined somewhere already?The message would include
@gavanderhoorn do you know of previous efforts? Should this be included in
industrial_msgs::RobotStatus
? (I personally would rather have it separately)The text was updated successfully, but these errors were encountered: