---
pageClass: is-wide-page
---
# PositionSetpoint (UORB message)
this file is only used in the position_setpoint triple as a dependency.
**TOPICS:** position_setpoint
## Fields
| Name | Type | Unit [Frame] | Range/Enum | Description |
| ---------------------------------- | --------- | ------------ | ---------- | ------------------------------------------------------------------------------------------------- |
| timestamp | `uint64` | | | time since system start (microseconds) |
| valid | `bool` | | | true if setpoint is valid |
| type | `uint8` | | | setpoint type to adjust behavior of position controller |
| vx | `float32` | | | local velocity setpoint in m/s in NED |
| vy | `float32` | | | local velocity setpoint in m/s in NED |
| vz | `float32` | | | local velocity setpoint in m/s in NED |
| lat | `float64` | | | latitude, in deg |
| lon | `float64` | | | longitude, in deg |
| alt | `float32` | | | altitude AMSL, in m |
| yaw | `float32` | | | yaw (only in hover), in rad [-PI..PI), NaN = leave to flight task |
| loiter_radius | `float32` | m | [0 : INF] | loiter major axis radius |
| loiter_minor_radius | `float32` | m | [0 : INF] | loiter minor axis radius (used for non-circular loiter shapes) |
| loiter_direction_counter_clockwise | `bool` | | | loiter direction is clockwise by default and can be changed using this field |
| loiter_orientation | `float32` | rad | [-pi : pi] | orientation of the major axis with respect to true north |
| loiter_pattern | `uint8` | | | loitern pattern to follow |
| acceptance_radius | `float32` | | | horizontal acceptance_radius (meters) |
| alt_acceptance_radius | `float32` | | | vertical acceptance radius, only used for fixed wing guidance, NAN = let guidance choose (meters) |
| cruising_speed | `float32` | | | the generally desired cruising speed (not a hard constraint) |
| gliding_enabled | `bool` | | | commands the vehicle to glide if the capability is available (fixed wing only) |
| cruising_throttle | `float32` | | | the generally desired cruising throttle (not a hard constraint), only has an effect for rover |
## Constants
| Name | Type | Value | Description |
| ------------------------------------------------------------- | ------- | ----- | -------------------------------------------------------------- |
| SETPOINT_TYPE_POSITION | `uint8` | 0 | position setpoint |
| SETPOINT_TYPE_VELOCITY | `uint8` | 1 | velocity setpoint |
| SETPOINT_TYPE_LOITER | `uint8` | 2 | loiter setpoint |
| SETPOINT_TYPE_TAKEOFF | `uint8` | 3 | takeoff setpoint |
| SETPOINT_TYPE_LAND | `uint8` | 4 | land setpoint, altitude must be ignored, descend until landing |
| SETPOINT_TYPE_IDLE | `uint8` | 5 | do nothing, switch off motors or keep at idle speed (MC) |
| LOITER_TYPE_ORBIT | `uint8` | 0 | Circular pattern |
| LOITER_TYPE_FIGUREEIGHT | `uint8` | 1 | Pattern resembling an 8 |
## Source Message
[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/PositionSetpoint.msg)
::: details Click here to see original file
```c
# 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 in hover), in rad [-PI..PI), NaN = leave to flight task
float32 loiter_radius # [m] [@range 0, INF] loiter major axis radius
float32 loiter_minor_radius # [m] [@range 0, INF] loiter minor axis radius (used for non-circular loiter shapes)
bool loiter_direction_counter_clockwise # loiter direction is clockwise by default and can be changed using this field
float32 loiter_orientation # [rad] [@range -pi, pi] orientation of the major axis with respect to true north
uint8 loiter_pattern # loitern pattern to follow
float32 acceptance_radius # horizontal acceptance_radius (meters)
float32 alt_acceptance_radius # vertical acceptance radius, only used for fixed wing guidance, NAN = let guidance choose (meters)
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
```
:::