:py:mod:`multirotor.trajectories` ================================= .. py:module:: multirotor.trajectories Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: multirotor.trajectories.Trajectory multirotor.trajectories.GuidedTrajectory Functions ~~~~~~~~~ .. autoapisummary:: multirotor.trajectories.eight_curve Attributes ~~~~~~~~~~ .. autoapisummary:: multirotor.trajectories.ScurvePlanner .. py:data:: ScurvePlanner :value: False .. py:class:: Trajectory(vehicle: multirotor.simulation.Multirotor, points: numpy.ndarray, proximity: float = None, resolution: float = None) Iterate over waypoints for a multirotor. The trajectory class can segment a list of waypoints into smaller sections and feed them to the controller when the vehicle is within a radius of its current waypoint. For example: m = Multirotor(...) traj = Trajectory( points=[(0,0,0), (0,0,2), (10,0,2)], vehicle=m, proximity=0.1, resolution=0.5) for point in traj: Each point is spaced `resolution` units apart in euclidean distance. When m.position is within `proximity` of current point, the next point in the trajectory is yielded. .. py:method:: __len__() .. py:method:: __getitem__(i: int) .. py:method:: get_params() .. py:method:: set_params(**params) .. py:method:: __iter__() .. py:method:: generate_trajectory(curr_pos=None) .. py:method:: add_waypoint(point: numpy.ndarray) .. py:method:: next_waypoint() .. py:method:: reached(wp: numpy.ndarray) -> bool .. py:class:: GuidedTrajectory(vehicle: multirotor.simulation.Multirotor, waypoints: Iterable[numpy.ndarray], steps: int = 10, proximity: float = 2.0, max_velocity: float = 7.0, max_acceleration: float = 3.0, max_jerk: float = 100, turn_factor: float = 1 / np.sqrt(2)) .. py:method:: _setup() .. py:method:: __iter__() .. py:method:: reached(wp: numpy.ndarray) -> bool .. py:function:: eight_curve(a: float = 10, N: int = 20) -> numpy.ndarray Generate a list of points following the Eight curve pattern. Parameters ---------- a : int, optional The scale of the curve, by default 50 N : int, optional Number of points to generate, by default 20 Returns ------- np.ndarray A Nx3 array of points.