ROS(2) in a non robot environment
Hi,
For a new project we are doing some research on middleware. Via the eProsima website I came across ROS and ROS ticks a lot of the boxes, the only thing is that this project is not a robot, we are only interested in the communication bits.
What I like about ROS:
- The discovery of nodes
- The interface of a node is well defined in a set of files (msg, srv)
- The (debugging) tools rosnode, rosservice, rostopic, etc...
- How easy it is to build a new node, at least with ROS
Now for my questions:
- Do you think it is a good idea to use ROS for this or is there a better alternative? maybe simply use eProsima RTPS.
- Is there a minimum configuration that allows me to build a non-robot system without sensor, lasers, motors, etc...?
- Do I use ROS1 or ROS2 for this?
Thank you! Peter
Edit: A couple of key points of this project:
- Running on a dual core ARM processor (cortex A9) as part of a FPGA SOC;
- 15+ nodes; some will just produce just status or provide a service, others will produce or subscribe to a binary blob (1-2 KB) at a TBD rate;
- Nodes must be able to find each other without (too much) configuration;
- System configuration (type of nodes there are and number of instances) must be easily configurable; Option to change this dynamically;
- Option to have some nodes running on a Window or Linux PC and communicate with the nodes on the ARM.
I think using ROS with "non-robots" is fine, but you give very little information (ie: none) about what it is that you actually do need to communicate which makes it hard to offer any meaningful advice.
There are some publicly available/accessible/known examples of non-robot ROS ..
.. applications. LiquidGalaxy is one of them. See EndPointCorp/lg_ros_nodes for the code.
Thanks for your response, I've added some details