ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
Couple of things which we found in ROS1 that are making it non hard RT capable:
See also this very good article: https://github.com/ros2/ros2/wiki/Real-Time-Programming.
In general as Geoff already mentioned above, for real-time, you need a host OS that provides certain guarantees such as scheduling sequence with a proper scheduler, always enough compute time, static memory, etc. Then you need to have fixed all of the points above in ROS (in ROS2 we are doing this as we speak) and finally you also need to avoid having the same in your application. In the final step you need to design and optimize your application by using tools such as valgrind or LTTng to make sure that you don't spend too much waiting around.