The source code of the Reflexxes Type IV Motion Library is structured in a simple and clear three-layered way:
- The Interface Layer
- The Algorithm Layer
- The Math Layer
Illustration of the three source code layers of the Reflexxes Motion Libraries.
The Interface Layer
The interface layer is based on the class ReflexxesLib and constitutes the user API of the Reflexxes Motion Libraries. It wraps around the algorithmic classes TypeIVOTGPosition and TypeIVOTGPosition (cf. The Algorithm Layer) and hides all functionalities that are not required by the user application in order to obtain a clean and minimal interface for all applications. For a description of input and output values, please refer to the Description of Input Values and the Description of Output Values.
Class List
File List
The Algorithm Layer
The algorithm layer contains the actual Type IV On-Line Trajectory Generation (OTG) algorithm. The position-based algorithm is realized by the class TypeIVOTGPosition, and the velocity-based algorithm is realized by the class TypeIVOTGVelocity. Both classes make use of the namespace TypeIVOTGMath, which provides all mathematical foundation for the algorithms (cf. The Math Layer). The methods to call the actual algorithms are TypeIVOTGPosition::GetNextStateOfMotion() and TypeIVOTGPosition::GetNextStateOfMotion(), both of which are used by the API class ReflexxesLib (cf. The Interface Layer).
Class List
- TypeIVOTGPosition
- TypeIVOTGVelocity
File List for the Position-Based Algorithm
- TypeIVOTGPosition.h
- TypeIVOTGThreadControl.h
- TypeIVOTGPosition.cpp
- TypeIVOTGCalculatePositionalExtrems.cpp
- TypeIVOTGCalculateScalingVector.cpp
- TypeIVOTGFallBackStrategy.cpp
- TypeIVOTGIsPhaseSynchronizationPossible.cpp
- TypeIVOTGStep1.cpp
- TypeIVOTGStep2PS.cpp
- TypeIVOTGStep2TS.cpp
- TypeIVOTGStep3.cpp
- TypeIVOTGThreadFunction.cpp
File List for the Velocity-Based Algorithm
- TypeIVOTGVelocity.h
- TypeIVOTGVelocity.cpp
- TypeIVOTGVelocityCalculatePositionalExtrems.cpp
- TypeIVOTGVelocityFallBackStrategy.cpp
- TypeIVOTGVelocityIsPhaseSynchronizationPossible.cpp
- TypeIVOTGVelocitySetupPhaseSyncSelectionVector.cpp
The Math Layer
The math layer is the most fundamental layer. It provides a collection of mathematical functions that required by the classes TypeIVOTGPosition and TypeIVOTGVelocity. All these functions are contained in the namespace TypeIVOTGMath.
Class List
- TypeIVOTGMath::MotionPolynomials
- TypeIVOTGMath::TypeIVOTGPolynomial
File List
- TypeIVOTGABK.h
- TypeIVOTGDecisionTree1A.h
- TypeIVOTGDecisionTree1B1.h
- TypeIVOTGDecisionTree1B2.h
- TypeIVOTGDecisionTree1B3.h
- TypeIVOTGDecisionTree1C.h
- TypeIVOTGDecisionTree2.h
- TypeIVOTGDefinitions.h
- TypeIVOTGMath.h
- TypeIVOTGPolynomial.h
- TypeIVOTGPolynomial.h
- TypeIVOTGQuicksort.h
- TypeIVOTGStep1Decisions.h
- TypeIVOTGStep1IntermediateChangingProfiles.h
- TypeIVOTGStep1IntermediateTimeProfiles.h
- TypeIVOTGStep1Profiles.h
- TypeIVOTGStep1RootFunctions.h
- TypeIVOTGStep2Decisions.h
- TypeIVOTGStep2IntermediateProfiles.h
- TypeIVOTGStep2Profiles.h
- TypeIVOTGVelocityTools.h
- TypeIVOTGABK.cpp
- TypeIVOTGDecisionTree1A.cpp
- TypeIVOTGDecisionTree1B1.cpp
- TypeIVOTGDecisionTree1B2.cpp
- TypeIVOTGDecisionTree1B3.cpp
- TypeIVOTGDecisionTree1C.cpp
- TypeIVOTGDecisionTree2.cpp
- TypeIVOTGMath.cpp
- TypeIVOTGPolynomial.cpp
- TypeIVOTGQuicksort.cpp
- TypeIVOTGStep1Decisions.cpp
- TypeIVOTGStep1IntermediateChangingProfiles.cpp
- TypeIVOTGStep1IntermediateTimeProfiles.cpp
- TypeIVOTGStep1Profiles.cpp
- TypeIVOTGStep1RootFunctions.cpp
- TypeIVOTGStep2Decisions.cpp
- TypeIVOTGStep2IntermediateProfiles.cpp
- TypeIVOTGStep2Profiles.cpp
- TypeIVOTGStep2RootFunctions.cpp
- TypeIVOTGVelocityTools.cpp