:py:mod:`multirotor.controller.scurves` ======================================= .. py:module:: multirotor.controller.scurves Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: multirotor.controller.scurves.SCurveController Functions ~~~~~~~~~ .. autoapisummary:: multirotor.controller.scurves.acc_1d multirotor.controller.scurves._acc_1d multirotor.controller.scurves.acc_to_target_3d multirotor.controller.scurves.acc_to_target_2d multirotor.controller.scurves.compute_accel_2d Attributes ~~~~~~~~~~ .. autoapisummary:: multirotor.controller.scurves.ScurvePlanner .. py:data:: ScurvePlanner :value: False .. py:class:: SCurveController(ctrl: multirotor.controller.pid.Controller) .. py:property:: action .. py:property:: reference .. py:property:: feedforward_weight .. py:method:: get_params() .. py:method:: set_params(**params: Dict[str, Union[numpy.ndarray, bool, float, int]]) .. py:method:: reset() .. py:method:: step(reference: numpy.ndarray, ref_is_error=False) .. py:function:: acc_1d(amax: float, vmax: float, v0: float, v1: float, disp: float, dt: float = 0.01) Solve 1d kinematics problem .. py:function:: _acc_1d(amax: float, vmax: float, v0: float, v1: float, disp: float) Solve 1d kinematics problem .. py:function:: acc_to_target_3d(amax: numpy.ndarray, vmax: numpy.ndarray, v0_vec: numpy.ndarray, v1_vec: numpy.ndarray, disp: float, dt: float = 0.01) Solve 3d kinematics problem .. py:function:: acc_to_target_2d(amax: float, vmax: float, v0_vec: numpy.ndarray, v1_vec: numpy.ndarray, disp: float, dt: float = 0.01) Solve 2d kinematics problem .. py:function:: compute_accel_2d(amax: float, vmax: float, from_position: numpy.ndarray, from_velocity: numpy.ndarray, to_position: numpy.ndarray, to_velocity: numpy.ndarray, dt: float = 0.01) -> numpy.ndarray