mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
The command is sent by a dedicated mavlink command and forwarded to the fixed wing position controller. The pattern is defined by the radius of the major axis, the radius of the minor axis and the orientation. The pattern is then defined by: The upper part of the pattern consist of a clockwise circle with radius defined by the minor axis. The center of the circle is defined by the major axis minus the minor axis away from the pattern center. The lower part of the pattern consist of a counter-clockwise circle with the same definitions as above. In between, the circles are connected with straight lines in a cross configuration. The lines are always tangetial to the circles. The orientation rotates the major axis around the NED down axis. The loitering logic is defined inside its own class used by the fixed wing position control module. It defines which segment (one of the circles or lines) is active and uses the path controller (npfg or l1-control) to determine the desired roll angle. A feedback mavlink message is send with the executed pattern parameters.
44 lines
2.1 KiB
Plaintext
44 lines
2.1 KiB
Plaintext
# this file is only used in the position_setpoint triple as a dependency
|
|
|
|
uint64 timestamp # time since system start (microseconds)
|
|
|
|
uint8 SETPOINT_TYPE_POSITION=0 # position setpoint
|
|
uint8 SETPOINT_TYPE_VELOCITY=1 # velocity setpoint
|
|
uint8 SETPOINT_TYPE_LOITER=2 # loiter setpoint
|
|
uint8 SETPOINT_TYPE_TAKEOFF=3 # takeoff setpoint
|
|
uint8 SETPOINT_TYPE_LAND=4 # land setpoint, altitude must be ignored, descend until landing
|
|
uint8 SETPOINT_TYPE_IDLE=5 # do nothing, switch off motors or keep at idle speed (MC)
|
|
|
|
uint8 LOITER_TYPE_ORBIT=0 # Circular pattern
|
|
uint8 LOITER_TYPE_FIGUREEIGHT=1 # Pattern resembling an 8
|
|
|
|
bool valid # true if setpoint is valid
|
|
uint8 type # setpoint type to adjust behavior of position controller
|
|
|
|
float32 vx # local velocity setpoint in m/s in NED
|
|
float32 vy # local velocity setpoint in m/s in NED
|
|
float32 vz # local velocity setpoint in m/s in NED
|
|
|
|
float64 lat # latitude, in deg
|
|
float64 lon # longitude, in deg
|
|
float32 alt # altitude AMSL, in m
|
|
float32 yaw # yaw (only for multirotors), in rad [-PI..PI), NaN = hold current yaw
|
|
bool yaw_valid # true if yaw setpoint valid
|
|
|
|
float32 yawspeed # yawspeed (only for multirotors, in rad/s)
|
|
bool yawspeed_valid # true if yawspeed setpoint valid
|
|
|
|
float32 loiter_radius # loiter major axis radius in m
|
|
float32 loiter_minor_radius # loiter minor axis radius (used for non-circular loiter shapes) in m
|
|
bool loiter_direction_counter_clockwise # loiter direction is clockwise by default and can be changed using this field
|
|
float32 loiter_orientation # Orientation of the major axis with respect to true north in rad [-pi,pi)
|
|
uint8 loiter_pattern # loitern pattern to follow
|
|
|
|
float32 acceptance_radius # navigation acceptance_radius if we're doing waypoint navigation
|
|
|
|
float32 cruising_speed # the generally desired cruising speed (not a hard constraint)
|
|
bool gliding_enabled # commands the vehicle to glide if the capability is available (fixed wing only)
|
|
float32 cruising_throttle # the generally desired cruising throttle (not a hard constraint), only has an effect for rover
|
|
|
|
bool disable_weather_vane # VTOL: disable (in auto mode) the weather vane feature that turns the nose into the wind
|