概述
Reflexxes(全称为Reflexxes Motion Library,简称RML)是一个开源(Type-II开源, Type-IV商业库)的在线运动轨迹生成库,具有众多优点使其可以应用于机器人、数控机床和伺服驱动系统等领域,V-REP中集成了RML-Type-IV,目前Reflexxes公司已经被谷歌收购。
Reflexxes算法库结构
概述
基本结构如下

Type-II和Type-IV相差加加速度的边界条件和加速度输出


Reflexxes的在线轨迹生成算法主要分为以下三步:
- Step 1: 计算同步时间
- Step 2: 同步所选的轴
- Step 3: 计算输出数值
由于仅有Type-II开源以下仅涉及Type-II相关内容
接口层
ReflexxesAPI是唯一的用户接口类非常紧凑,用它的两个方法ReflexxesAPI::RMLPosition来执行基于位置的在线轨迹生成算法和ReflexxesAPI::RMLVelocity用于基于速度的算法RMLInputParameters:包含RMLPositionInputParameters和RMLVelocityInputParameters,用于输入参数RMLOutputParameters:包含RMLPositionOutputParameters和RMLVelocityOutputParameters,用于输出参数RMLFlags包含:RMLPositionFlags和RMLVelocityFlags,用于在线轨迹规划算法的参数化标记,如同步方式(无同步non-synchronized、时间同步time-synchronized、相位同步phase-synchronized)等RMLVector:数组类
算法层
包含实际的Type-II在线轨迹生成算法,提供给ReflexxesAPI使用,其中包含了数学层中提供的决策树TypeIIRMLDecisionTree
TypeIIRMLPosition:ReflexxesAPI::RMLPosition,实际调用的是TypeIIRMLPosition::GetNextStateOfMotionTypeIIRMLVelocity:ReflexxesAPI::RMLVelocity,实际调用的是TypeIIRMLVelocity::GetNextStateOfMotion
数学层
TypeIIRMLPosition和TypeIIRMLVelocity类所需的数学函数集合,包含:
TypeIIRMLMath::MotionPolynomials:三个TypeIIRMLPolynomial数组(Pos、Vel、Acc)TypeIIRMLMath::TypeIIRMLPolynomial:三阶多项式
示例代码
基本的三轴规划示例代码:
1 |
|