I come over RTDE and built my first client which allows to receive data over TCP stream. Now, when I started to integrate it into “monitor” application I found several limits. First, it seems it is not possible to have multiple “subscriptions” (
RTDE_CONTROL_PACKAGE_SETUP_OUTPUTS). I tested this with simulator (220.127.116.11249). Second problem I found - it is not possible to issue read/write operations without amending existing data stream once it is launched.
My example is basic - I would like to track joint positions at 50 Hz and status bits or analog/inputs outputs at 10 Hz. Currently this is not possible cause there is just one data stream at single ratio. Using simulator for each subscription I get the same recipe id (this is value returned by robot controller when subscription is made). Because outputs which can be subscribed are limited to only 2048 bytes in practice it is not possible to monitor whole robot. Also the 2048 byte limit for subscription might require splitting of subscriptions so we stay under the limit.
Second point is about getting one shot read/write for controller inputs (CON), so it does not require opening a data stream on client (EE) side. This is something which would really simplify ad-hoc operations without necessity to amend or stop subscription/data stream.
After looking a bit more it seems that second problem can be avoided. Writing of individual controller inputs can be done through setting up multiple write recipes before data synchronization is started. Yet receiving part with different frequency is still unclear.