MotionProf is an Automation Studio library with functions to derive and generate optimal motion profiles.
NOTE: This is not an official library and is supported by the community. MotionProf is provided as-is under the Apache License 2.0 agreement. Source code, documentation, and issues are managed through GitHub.
Function | Description |
---|---|
MotionProfAcc | Minimum acceleration to move in time over a distance |
MotionProfTime | Minimum time duration to move with acceleration over a distance |
MotionProfDist | Maximum distance from move with acceleration in time |
MotionProfVel | Minimum velocity to move with acceleration in time over a distance |
MotionProfTimeDiff | Maximum difference in time duration between fastest and slowest profiles |
MotionProfAccTimeDiff | Minimum acceleration to achieve moves throughout a time difference |
MotionProfAccTimeDiff | Minimum acceleration to achieve moves throughout a time difference starting at standstill |
MotionProfPoint | Velocity profile point interpolation |
- Download and extract the archive.
- Import the MotionProf library to your Automation Studio project.
- Logical View
- Toolbox
- Existing Library
Clone the repository.
git clone https://github.com/tmatijevich/MotionProf.git
Or, add as submodule to an existing Automation Studio project repository.
cd <project_root>
git submodule add https://github.com/tmatijevich/MotionProf.git ./Logical/Libraries/MotionProf
Several MotionProf functions can be cross-compiled in GNU Octave, a free scientific programming language largely compatible with MATLAB. Octave is utilized for plotting and testing MotionProf functions.
Launch Octave and run the build script.
make
Use this example to plot the minimum time function.
PlotMotionProfTime(0.25, 0.0, 0.5, 0.0, 2.0, 10.0, 1.2);