ROS 实时性
实时计算是许多机器人系统的一个关键特性,尤其是安全和关键任务应用,如自主车辆、航天器和工业制造。对于实时性在ROS1中没有被考虑,但是在ROS2中已经明确定义和设计了相关特性。
对于Linux系统的实时性的解决有两个办法:一个是使用RT PREEMPT patch;另一个是安装Xenomai。
ROS1中的实时性
无论使用什么系统,“实时性”都可以按每个线程粒度配置。ROS1本质上不是实时的,部分节点可以确定的计划和执行。在pr2_mechanism里面已经包含了RT_PREEMPT patch. 对于node之间的通讯实时性保证我们可以采用realtime_tool来实现topic实时publish/subscribe。
ROS2中的实时性
ROS1 VS ROS2 设计比较
ROS2 real time current implementation
ROS2 VS ROS1+ ros_control
ROS2 demo Benchmarking