概述
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::GetNextStateOfMotion
TypeIIRMLVelocity
:ReflexxesAPI::RMLVelocity
,实际调用的是TypeIIRMLVelocity::GetNextStateOfMotion
数学层
TypeIIRMLPosition
和TypeIIRMLVelocity
类所需的数学函数集合,包含:
TypeIIRMLMath::MotionPolynomials
:三个TypeIIRMLPolynomial
数组(Pos、Vel、Acc)TypeIIRMLMath::TypeIIRMLPolynomial
:三阶多项式
示例代码
基本的三轴规划示例代码:
1 |
|