ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Welcome arennuit!

Nice first question! However, since it is not really ROS-related, you might get more and maybe better answers at general Robotics forums/Q&As, such as robotics.stackexchange.com. Anyway, here are my thoughts:

You already did the important step of splitting your system up into RT and non-RT areas. Now, the question remains how to connect them. To answer this, you need to figure out whether or not you need a hard real-time connection between both.

For example, if you plan to do joint trajectory interpolations and send each position/velocity command at hight speed to the motors, you might want to have a deterministic/low jitter connection to your motor control boards.

I'm not sure, what requirements you have: You stated, you want to determine (deduct) desired motor positions and speeds on the PC, but you also plan to run those control loop(s) at only 30hz. So, in case you don't do something like a fine-grained joint trajectory computation on the PC, I wouldn't expect you to need a real-time connection between your PCs and RTs. Hence, TCP/IP could be well suited for your system (as you stated, cheap and simple).

If however at some point you have the need for it, you can look into CAN[1] and Ethercat controllers for your PC. Be aware, that those controllers are often quite expensive. CAN has the advantage, that especially the devices/slaves (not the PC controller) are much cheaper than Ethercat, which on the other hand is more powerful (e.g. much higher bandwidth). Furthermore, you will need a RT system for your PC, such as Xenomai, in order to be able to run the fast control loops, which need to communicate with your RTs, in the real-time space. Setting up such a system and writing correct programs for it is also more difficult and time-consuming, than writing programs for normal user space.

[1] I don't think CAN is so exotic in the Robotic world. Companies such as PAL Robotics and Schunk are working with it. Also, we recently starting experimenting with it.

I hope, I could help you a bit! Keep us updated how your robot will look like in the end! :-)