unl-nimbus-lab / Freyja

High-level nonlinear state-space flight control for multirotors. Freyja is suitable for vehicles that already have a stabilizing autopilot.
GNU General Public License v3.0
14 stars 9 forks source link

Add library for trajectory primitives #4

Open ajshank opened 3 years ago

ajshank commented 3 years ago

Smooth, energy-optimal trajectories can be generated between two "waypoints" using motion primitives. The end-user waypoint publishing might be a point of conflict, but consider how this might be used at large.

Possible behaviors

  1. User calls a service with one "new" destination point and target allocated time: [pn, pe, pd, dt]
  2. User provides a bunch of waypoints ordered with time, and the system automatically cycles through them: [idx, pn, pe, pd, dt].

Behaviour needs to be fully defined if (1) is abused by making multiple service calls rapidly.

ajshank commented 3 years ago

@hildebrandt-carl This can be addressed by what you described as a waypoint manager.

ajshank commented 3 years ago

Addressed by #8 in devel branch, flight tests pending.

Consider changing waypoint_mode enumerations to begin at 1 instead of 0 -- ROS constructor will automatically fill it with 0 if nothing is specified by the caller, thereby defaulting to TIME mode.