If you're using
fanuc_driver (you don't state which package you're using, but I assume it's that one), then it overrides the velocity commands. That's a limitation of that driver.
gavanderhoorn/fanuc_driver_exp tries to do better, and it will not override anything, but motion performance will still not be perfect.
There is a lot of existing Q&A and discussion on the issue tracker of both
gavanderhoorn/fanuc_driver_exp which I don't want to repeat here. Summarising: except
J519, there is no Fanuc motion interface which allows you to execute trajectories exactly as they are planned on the ROS side. That's both in time and in space. Off-line generation of TP programs based on ROS trajectories is possible (and has been done), but of course comes with its own disadvantages (limited length, programs need to be uploaded, delays before execution, etc).
An alternative could be a driver based on
R912 (or Remote Motion Interface, RMI). That would essentially be a "drip-feed" of a TP program. I'm not aware of any publicly available implementation based on
And note that again except with
J519, you can never actually directly control velocity nor acceleration on a Fanuc. You only ever constrain maximum velocity, and can indirectly set the steepness of the acceleration curve.
Originally posted by gvdhoorn with karma: 86574 on 2021-11-11
This answer was ACCEPTED on the original site
Post score: 1
Comment by gvdhoorn on 2021-11-11:
See #q371112 for a similar Q&A, and see this page for more Fanuc related ROS questions (some / many of which are on similar topics).
Comment by nicob on 2021-11-15:
Thanks for de detailed answer! This helps me a lot to understand the system better.