Hello,
I am evaluating the use of ros_control or OROCOS to redesign the control layer of the robots at the company I work for, and I would like to ask those of you with practical experience on both frameworks about their particular advantages as compared to each other. I spent a few days investigating current open source control frameworks, and I narrowed it down to those two. The benefits I see in using ros_control are that our robots would be entirely within ROS' ecosystem, its development has been very active throughout the last year, and seems that it will be well supported in the future. In the case of OROCOS, it seems to me that it gives greater freedom when implementing control architectures. However, I do not have experience with any of them, so that is why I am seeking input on them.
In general, I would like to know why would one choose one over the other. For example, what are the use cases that each framework excels at? What use cases motivated the development of ros_control that OROCOS could not properly address?
Also, in terms of control engineering, what can be done in OROCOS that cannot be done in ros_control, and vice versa? For instance, I read that controllers implemented as OROCOS components can easily be set to work at different frequencies, while in ros_control cycle-skipping has to be hard coded in the controller (although I saw a patch in GitHub that tried to alleviate this). Another thing is that the controller manager in ros_control runs in a single thread, while multithreaded processes are possible in OROCOS.
It will be very helpful in our decision process if you could share with us your points of view and experiences with these frameworks.
Thank you,
Daniel