机械臂轨迹规划,用CAN通信给驱动器发送位置信息 要想实现10ms是不是必须要用实时系统才能保证?
这个问题其实最好应该请控制器方面的专家来回答,如
。我很久没有玩这方面东西了,所以只能凭着之前的一点印象来说说看。先说结论:是否必须用实时系统,取决于你控制器的架构。
在讨论这个问题之前,我们先要了解控制器拿到位置信息后,会怎么用?

如上图,是一个经典的 PD+ 重力补偿控制框图。控制器会不断更新目标位置 ,从而驱使电机转动。
然而,由于一般上位机计算的路径点比较稀疏(运动规划结果、人工设定中间点等),一般需要先对拿到的一系列路径点做轨迹插补(Trajectory generattion):

实际的控制环是根据控制周期从插补后的 中提取当前时刻的
。
问题是:这个轨迹插补既可以在上位机做,也可以在下位机做。
如果插补是在上位机做的,那么,就要求保证下位机的控制回路每次都能拿到新的目标点。这就要求上位机的系统是实时的(能保证时钟稳定),同时上下位机之间的通讯带宽也要够(实时总线等)。
如果插补是在下位机做的,那么,只要保证每个路径点都自带时间戳,下位机只要能够提前拿到几个点,就能进行插补,同时保证及时给控制回路以合适的新目标点。这种就不要求上位机是实时的,时间大概准就好了。很多工业机器人就是这种套路,如 ABB 的 EGM (external guided motion)就可以实现好像 10ms 左右的前瞻。
当然,还有一种,是「学生版」控制框架。那就是上位机不是实时的,10ms 发一个位置点给下位机,下位机也不做轨迹插补,直接用这个位置做闭环控制。这种框架不推荐。

浙公网安备 33010602011771号