'Real-time' position streaming interface(s): requirements, design and implementation #186
Replies: 3 comments 6 replies
-
As a starting point perhaps: what sort of functionality should the new interface support? Streaming at which rate? Modalities (ie: position, velocity, something else)? Should it absolutely use ROS messages, or would it actually be advantageous to decouple it from the ROS side of MotoROS2? |
Beta Was this translation helpful? Give feedback.
-
On the topic of synchronisation, we're very interested in the ability to synchronously stream joint commands to different movement groups, such as robot and multi-axis turntable, robot and linear rail, robot and robot, etc. |
Beta Was this translation helpful? Give feedback.
-
Does this functionality have any rough date in the roadmap yet? |
Beta Was this translation helpful? Give feedback.
-
This is a discussion around the following item on our roadmap:
MotoROS2 currently supports a mode in which
JointTrajectory
messages can be drip-fed to the controller, oneJointTrajectoryPoint
at a time, but this interface uses an additional queue inside MotoROS2 -- additional, as it's a queue ofJointTrajectoryPoint
s, which get deconstructed into increments, queued, then fed to the Yaskawa motion controller, which also queues (and filters).For quite a few applications being able to construct such "infinite" trajectories is already sufficient, but for more on-line and reactive use-cases all the queuing and filtering introduces both additional latency, jitter and reduces determinism (ie: when will my motion be executed exactly).
The latter especially complicates synchronisation of actions that are coordinated by an off-controller entity (setting IO or reading sensor data fi), and the former two are undesirable in any robot control application which must accurately track a reference signal.
While some fundamental limitations in the current controller generation(s) (ros-industrial/motoman#219) can't be solved here in MotoROS2, the goal would be to avoid introducing additional latency as much as possible -- fi by removing queuing as much as possible or by setting certain system parameters to specific values by default when a specific motion interface is active (#48).
This new interface would not necessarily have to use ROS messages/services/actions for data exchange, but MotoROS2 would have to be able to coordinate and moderate access to that interface, as we would want to seamlessly integrate it with MotoROS2 and avoid conflicts with other control modes.
We know of work in this direction by several community members -- some of which is even publicly available. In this thread we'd like to gather ideas for the addition of this new motion interface to MotoROS2 from members in the community that either have already or are planning to work on and/or with such low-latency interfaces. We'd also like to collaborate with community members to implement the new interface.
I'll
@-mention
some of the accounts that have expressed interest in this topic in the past (in no particular order and I'm surely forgetting/missing some people) to help get the discussion started: @tingelst, @drolleigh, @adv4ncr, @jarvisschultz, @rr-robert, @rr-tom-noble, @smurray47, @mmatl and @emielkemmm.Beta Was this translation helpful? Give feedback.
All reactions