|
Stepdance Software Library
|
Enables scheduling a sequence of pre-planned motions towards given coordinate points, the system will create linearly interpolating motion between the input points. More...
#include <interpolators.hpp>
Public Member Functions | |
| int16_t | add_move (uint8_t mode, float32_t velocity_per_s, DecimalPosition x, DecimalPosition y, DecimalPosition z, DecimalPosition e, DecimalPosition r, DecimalPosition t) |
| Add a move to the list of moves the interpolator will perform (indicate target velocity). | |
| int16_t | add_timed_move (uint8_t mode, float32_t time_s, DecimalPosition x, DecimalPosition y, DecimalPosition z, DecimalPosition e, DecimalPosition r, DecimalPosition t) |
| Add a move to the list of moves the interpolator will perform (indicate motion time). | |
| void | begin () |
| Initialize the time-based interpolator. This must be called to set up the interpolator. | |
| bool | is_idle () |
| bool | queue_is_full () |
Public Attributes | |
| volatile ControlParameter | speed_overide = 1 |
| ControlParameter specifying a multiplicative modifier for the interpolator speed. | |
| BlockPort | output_x |
| Output BlockPort for the generated position signal on axis X. | |
| BlockPort | output_y |
| Output BlockPort for the generated position signal on axis Y. | |
| BlockPort | output_z |
| Output BlockPort for the generated position signal on axis Z. | |
| BlockPort | output_e |
| Output BlockPort for the generated position signal on axis E. | |
| BlockPort | output_r |
| Output BlockPort for the generated position signal on axis R. | |
| BlockPort | output_t |
| Output BlockPort for the generated position signal on axis T. | |
| BlockPort | output_parameter |
| Output BlockPort for the generated position signal of a parameter in [0, 1] range. The parameter varies from 0 to 1 along each linear segment corresponding to a single move. | |
| BlockPort | output_duration |
| Output BlockPort for the duration of the active move. Indicates the time the entire move is scheduled to take. This is useful to plan parallel motion that we want to happen during moves. | |
Protected Member Functions | |
| void | run () |
Enables scheduling a sequence of pre-planned motions towards given coordinate points, the system will create linearly interpolating motion between the input points.
For an example of how to use this class, see:
| int16_t TimeBasedInterpolator::add_move | ( | uint8_t | mode, |
| float32_t | velocity_per_s, | ||
| DecimalPosition | x, | ||
| DecimalPosition | y, | ||
| DecimalPosition | z, | ||
| DecimalPosition | e, | ||
| DecimalPosition | r, | ||
| DecimalPosition | t ) |
Add a move to the list of moves the interpolator will perform (indicate target velocity).
| mode | The mode of operation: INCREMENTAL, ABSOLUTE or GLOBAL. |
| velocity_per_s | The velocity of motion |
| x | Target x position for the move |
| y | Target y position for the move |
| z | Target z position for the move |
| e | Target e position for the move |
| r | Target r position for the move |
| t | Target t position for the move |
| int16_t TimeBasedInterpolator::add_timed_move | ( | uint8_t | mode, |
| float32_t | time_s, | ||
| DecimalPosition | x, | ||
| DecimalPosition | y, | ||
| DecimalPosition | z, | ||
| DecimalPosition | e, | ||
| DecimalPosition | r, | ||
| DecimalPosition | t ) |
Add a move to the list of moves the interpolator will perform (indicate motion time).
| mode | The mode of operation: INCREMENTAL, ABSOLUTE or GLOBAL. |
| time_s | The duration of the move |
| x | Target x position for the move |
| y | Target y position for the move |
| z | Target z position for the move |
| e | Target e position for the move |
| r | Target r position for the move |
| t | Target t position for the move |
| BlockPort TimeBasedInterpolator::output_x |
Output BlockPort for the generated position signal on axis X.
| BlockPort TimeBasedInterpolator::output_y |
Output BlockPort for the generated position signal on axis Y.