, I have recently purchased some heavy-duty robots capable of handling a payload of approximately 50 lbs, and they are functioning excellently across various operations. I'm interested in implementing Synthiam's skills with these robots and would like to know the process for doing so. Specifically, I am curious about how the robots can communicate with one another using Synthiam ARC. While I understand communication can occur through inputs and outputs, I'm looking for more complex interactions, such as communicating specific measurements like cutting a board to 27 1/2 inches or enabling features like face detection.
Does Synthiam provide any examples or video demonstrations of industrial robots using Synthiam skills? I noticed that there wasn't a dropdown option to select an industrial robot when posting, so I chose the EZ-B v4 as the category. If I could successfully integrate these capabilities, it would significantly enhance the functionality and collaborative potential of my robots.
Hi there, and thanks for reaching out with your questions! It sounds like you’re looking to leverage Synthiam ARC’s power to enable more advanced, collaborative interactions between your industrial robots. I’m happy to help clarify how you can get started and integrate more complex communications.
Below are some insights and steps to consider:
How Robots Can Communicate Beyond Basic I/O
Global Variables & Command Communication:
ARC uses global variables (e.g., getVar("$SomeVar") and setVar("$SomeVar", value)) and the ControlCommand() method to allow different robot skills to share information. This means one skill can send a measurement (like "27 1/2 inches") as data that another skill-or even a skill running on another robot-can process, enabling sophisticated coordinated operations.
Custom Robot Skills:
To support features like face detection, digital measurements, or any advanced sensors, you can build custom robot skills. These skills can process sensor data (such as camera feeds) and then communicate results to other robots using ARC’s communication framework. If you’re keen on building or modifying skills, check out our guide on creating a robot skill:
Create a Robot Skill.
Using the Command Duplicator & EZB Connections Skills:
Since your project already uses the Command Duplicator and EZB Connections skills, you can leverage them to send the same commands (or coordinated commands) across multiple EZ-B v4 devices. This setup lets you build synchronized actions-even when messages get more complex than a simple on/off signal.
Industrial-Grade Interactions
While Synthiam ARC is designed with hobbyist robots in mind, its flexibility makes it suitable for more industrial settings as well. Here are some pointers:
Customized Data Exchange:
You can design skills that not only send commands but also exchange data such as measurements or sensor status. For example, if a cutting process is underway, a skill can broadcast the target length (like 27 1/2 inches) to a partner skill controlling an actuator or conveyor system.
Sensor Integration & Advanced Features:
Complex features such as face detection can be implemented using plugins or third-party skills found in our robot skill Store. If an out-of-the-box solution isn’t available, the custom skill framework provides the flexibility to integrate almost any sensor - you can write the processing code in JavaScript or Python within ARC.
Video Demonstrations & Examples:
While there aren’t many industrial-specific video demos publicly available on our site at this time, many of our tutorials and documentation cover advanced implementations that can be adapted to your industrial robots. A good starting point is our robot tutorial that walks through customizing a DIY robot project:
How to Make a DIY Robot.
Next Steps & Follow-Up Questions
What specific interactions or coordinated features are you most interested in?
This could help us point you to the most relevant skills or code examples.
Are you considering developing custom skills for tasks like data communication or sensor integration?
If so, we can provide a code snippet to help you get started. Below is a brief example in JavaScript on how to send a measurement value:
Would you like guidance on setting up a custom communication protocol using ARC’s global variables and command duplication?
Feel free to ask for further details or additional examples so we can ensure you make the most of ARC’s capabilities for your industrial applications.
Looking forward to hearing more about your project and further assisting you!
Best regards,
Athena
Synthiam ARC Support Technician
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
I don't think Athena truly understood the question. What you're asking is to have multiple ARC instances communicate with each other, correct? The question sounds like you're asking robot skills to communicate with each other, and that's what her answer was.
However, if you're looking to have ARC instances communicate with each other, there are a few ways, but the most popular on all robot platforms is using MQTT. You can have a broker and multiple clients. There are several robot skills in the communication category of ARC, which you can also view on the support robot skill page.
Here is the manual for the MQTT Broker: https://synthiam.com/Support/Skills/Communication/EZMQTT-Broker?id=15863
Here is the manual for the MQTT Client: https://synthiam.com/Support/Skills/Communication/EZMQTT-Client?id=15860
Below is some additional clarification for using MQTT to have multiple ARC instances communicate with one another:
MQTT for Inter-ARC Communication
If your goal is to have separate ARC instances (each perhaps running on different machines or even onboard different robots) talking with each other, the most popular and effective method is indeed using MQTT. In this scenario:
For example, one ARC instance could publish a message (e.g., a measurement value or a command) to a topic like "robot/measurement", and other ARC instances listening on that topic will receive and process that message.
Steps to Set This Up
Add the Required MQTT Skills:
Configure Your Broker:
Configure Each Client:
Sending and Receiving Data:
Use the MQTT commands in your ARC skills. For example, to publish a string message you might use:
And in the subscribing ARC instance, your EZMQTT Client skill will catch the message, executing a script that you define (which might set a global variable or take an action based on the message).
Additional Resources
EZMQTT Broker Manual:
EZMQTT Broker Manual
EZMQTT Client Manual:
EZMQTT Client Manual
These manuals provide further detail on setup, configuration, and command usage that can help you build and fine-tune your inter-ARC communication network.
Questions for Clarification
Feel free to provide more details about your scenario so I can offer more tailored guidance and examples. Happy building!
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.