将实时性引入ROS系统的设问自答(上)
积累了各种各样的问题,作如下汇总
- ROS缺点
- ROS2如何引入实时性与ROS1区别
- 相关软实时性硬实时性区别
- Linux内核
- 实时扩展优劣对比
- 对比后引入Xenomai3的使用
- 闸述Xenomai3 如何提高实时性?
什么是实时性? |
ROS2给出了一个real-time computing 的定义
什么是软硬实时性系统? |
硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。软实时系统的时限是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量。硬实时与软实时之间最关键的差别在于,软实时只能提供统计意义上的实时。例如,有的应用要求系统在95%的情况下都会确保在规定的时间内完成某个动作,而不一定要求100%。实时就是在规定的时间内必须正确地完成操作,完成操作的时间有操作系统的因素,也有用户软件的因素。非实时操作系统指操作系统无法保证哪怕是最高优先级任务开始执行的最后时限。软实时操作系统指的是操作系统只能保证在xx时间内执行最高优先级的用户代码,但用户软件是否能及时完成操作,操作系统不管!硬实时嘛,操作系统一直负责到操作完成。
——来源****博主「seven-soft」的原创文章,软实时和硬实时操作系统的区别
我们这里着重强调硬实时性在系统设计上要确保没有任何操作的优先级可以凌驾于时间限制之上,确保在最坏情况下的服务时间。
标准Linux有实时性能么? |
不能保证严格的时间约束条件(有待确定)
Linux与风河的VxWorks? |
tplink的路由器,低端一般bai都是vxwork的系统,占用低,实时性高,优势主要是占用空间低,搭配的硬件成本就会下降;如果比专用功能,当然是vxwork更强大,而linux的优势极大的扩展性和资源支持,市面上的一般中高端路由器都是linux为主。
什么是thin-kernel? |
微内核方法使用了第二个内核作为硬件与Linux内核间的抽象接口。非实时Linux内核在后台运行,作为瘦内核的一项低优先级任务托管全部非实时任务。实时任务直接在微内核上运行。微内核主要用于中断管理。它截取中断用来保证实时性任务,不让非实时性抢占。推荐阅读
这种微内核的方法有风河公司的RTLinux,还有实时应用程序接口RTAI和Xenomai在使用。