I have seen that on the e-Series robots there is an RS485 communication interface directly on the robot wrist.
Is it possible to use it through URcap daemon? If yes, how?
You simply need to enable it (and maybe adjust few serial communication settings) from the
Installation/General/Tool tab, and set your code to open (and use) the specific serial port which is now named
Alessandro Tondo @qbrobotics
Some more questions related to this topic:
What happens if two or more URCap want to use the /dev/ttyTool node?
What happens if two or more URCap want to use the RS485 communication with different baudrates?
More generally, I would like to know what the rules are for sharing this resource
According to the URScript Programming Language manual you should be able to adjust the serial communication settings with this simple command:
set_tool_communication(enabled, baud_rate, parity, stop_bits, rx_idle_chars, tx_idle_chars)
Anyway I’m not sure to recommend the usage of several distinct URCaps for the same device: you should provide a mutual exclusion mechanism for the serial resource (
/dev/ttyTool) across the whole UR environment, which I don’t think it can be achieved quite easy.
On the other hand you may build a more complex URCap with a single Installation node to handle the serial resource and several Program node for your needs.
Why would you like to share this resource?
Beacause I don’t know what other URCap developer want to do. If my URCap uses /dev/ttyTool and your URCap uses /dev/ttyTool what happens if an end user want to use both my URCap and yours?
@jbm Any Universal Robots official recommendation about this topic?
I don’t see any differences to the case of two URCaps which use the
/dev/ttyUSB0 for example.
And I don’t think that you are going to use two distinct URCaps which exploit the
/dev/ttyTool at the same time.
Anyway, Jacob is for sure the right person to ask your questions.
Generally, we expect that most robots will be deployed with only one device using the Tool Communication Interface.
However, there are particular device types or dual gripper configurations, where multiple devices may share the TCI bus.
In this case, we urge that:
- The protocol is designed in a robust way, that allows devices to co-exist.
E.g. by omitting unknown packages, or using special keys and checksums to avoid replying to messages not meant for that particular device.
- By implementing a bus proticil such as Modbus RTU, which allows for multiple devices to communicate on a balanced bus.
- By ensuring that the baud rate and other settings are adjusted if applicable, before starting transmission to the device from URScript.
Generally, we do accept that multiple devices may not be compatible to run on the same bus.
However we encourage, that means are taken to ensure the most broad range of operation with other devices.