The RPS-integration is based on the Artiminds WebSocket API. The timestamps delivered by the RPS are used. At the starting time of the measurement the timestamp is saved as an offset and subtracted from the timestamps of further frames.
|URAngle<0-5>||ANGLE||rad||Measured joint angle by the encoders. These can differ from target angles, if the robot is controlled by angles. The angels does not include offset by Denavit-Hartenberg systems calibration. Because the angles are actual angles these channels should be moved to the actual-channels-element. TODO|
|v<0-2>||POSITION||m||The position of the TCP in cartesian world coordinates. In case the template has a PointRobot input parameter (a relative transform from the default tool center point to a custom TCP specific to this template), this equals the position of the PointRobot frame in world coordinates. If the template doesn't have a PointRobot input parameter, the „global TCP“ aka the TCP configured in the robot configurator of the RPS is used. Summary: This is the position of the resulting TCP in world coordinates after all relevant transformations have been applied to the TCP. You will want to use this one 90% of the time. Read from „program_TCP“ of the RPSWebsocket.|
|q<0-3>||ROTATION_QUATERNION||Read from „program_TCP“ of the RPSWebsocket.|
|URt<0-5>||TEMPERATURE||°C||Temperature in the joints|
<MeasurementSystem id="rps" system="RPS" fileSuffix="rps"> <Property name="dnsidentifiablename" value="192.168.12.27"/> <Property name="sampleRate" value="120.0"/> <!--Property name="timeout" value="10000"/--> <TransducerUnit name="actual" displayName="Actual"> <!-- Availability of temperatures is no standard feature of the RPS--> <Channel name="URt0"/> <Channel name="URt1"/> <Channel name="URt2"/> <Channel name="URt3"/> <Channel name="URt4"/> <Channel name="URt5"/> </TransducerUnit> <TransducerUnit name="target" displayName="Target"> <Channel name="URAngle0"/> <Channel name="URAngle1"/> <Channel name="URAngle2"/> <Channel name="URAngle3"/> <Channel name="URAngle4"/> <Channel name="URAngle5"/> <Channel name="T"/> </TransducerUnit> </MeasurementSystem>
Be careful: In the RPS in Settings → Compiler the checkbox „Streaming“ must be set. Furthermore the Control-Plugin must be activated. Also keep in mind the setting of the Streaming-Delay. Typically a minimum delay of 32ms works. For maximum robustness set to 50ms. Sometimes smaller delays with at minimum of 16ms can work.
In Windows-Settings add the RPS-Software to use the GPU of your graphic to be used for openGL rendering.
If the Simulation runs into a timeout you can increase the Settings → General → Pathplanning → „Inverse Kinematic Timeout“ setting to e.g. 0.1s (default is only 0.01s) and the setting for the count of interations, e.g. to 5000.
Be careful: All http-requests, e.g. load, simulate, compile, start the rps-program can run into a timeout before ending. The default value is 30s. If the programms are more complex it can happen that execution of compile needs more time. In this case the value Settings –> General –> Control-Plugin –> Command-timeout has to be increased. the unit is [ms].
The <MeasurementSystem>-element has the following additional properties:
|dnsidentifiablename||This can be a domain name but typically this is ip a IP-adress in a local network.||No|
|bufferSize||Data is read from the Websocket into a ringbuffer. The default size of this buffer is 20 but it can be changed. If there is a overrun of the buffer a log warning is given and the size has to be adjusted.||No|
If the recording starts JDAQ subscribes to the RPS-Websocket and waits for the first frame. There is a timeout of fix 3s. If the first frame is not available after 3s than no data is recorded from the RPS and no rps-file is saved. A warning is written. This can be happen if the UR has problems to get the needed data. In this case a message box is opend on the UR display with the text „An error occurred while sending the robot state to the Artiminds RPS. Permantently disable state publishing.“