How can we limit the TCP velocity to 250 mm/s as specified by safety standards for collaborative robots?
You'll have to do that outside of the driver, as the driver does not have any concept of Cartesian velocity, nor does it concern itself with the safety aspects that you refer to.
The ur_modern_driver
only exposes a FollowJointTrajectory action server. As the name implies, that server accepts goals containing a JointTrajectory. There is no support for Cartesian trajectories at this point (there is no support at the ROS API level, they could be sent to the controller using the /urscript
topic).
Edit: I'm also slightly confused by your question. Every UR robot comes with a built-in safety system that monitors robot safety and will stop the robot if it violates any of the built-in restrictions. Layering safety is always a good idea, but at the very least, the built-in safety of the robot should prevent it from violating the relevant standards.
ur_modern_driver
does not subvert, circumvent or disable any of these checks in the controller, so you can still rely on the robot controller to take care of safety (on the robot level only, of course. System-level safety is not the controller's responsibility).