aboutsummaryrefslogtreecommitdiff
path: root/src/modules/uORB/topics/offboard_control_setpoint.h
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2014-07-07 13:00:45 +0200
committerThomas Gubler <thomasgubler@gmail.com>2014-07-07 13:00:45 +0200
commit2d26e913921ce80e509bd79462319d09d12c2171 (patch)
tree897d69caa948fcdb6e2fde3adbae31e7e2683164 /src/modules/uORB/topics/offboard_control_setpoint.h
parent58adea94699aa132ee568b9fe61a48f98eb42c78 (diff)
downloadpx4-firmware-2d26e913921ce80e509bd79462319d09d12c2171.tar.gz
px4-firmware-2d26e913921ce80e509bd79462319d09d12c2171.tar.bz2
px4-firmware-2d26e913921ce80e509bd79462319d09d12c2171.zip
WIP, change uorb offboard control sp topic
Diffstat (limited to 'src/modules/uORB/topics/offboard_control_setpoint.h')
-rw-r--r--src/modules/uORB/topics/offboard_control_setpoint.h34
1 files changed, 23 insertions, 11 deletions
diff --git a/src/modules/uORB/topics/offboard_control_setpoint.h b/src/modules/uORB/topics/offboard_control_setpoint.h
index 2741f0c07..688135533 100644
--- a/src/modules/uORB/topics/offboard_control_setpoint.h
+++ b/src/modules/uORB/topics/offboard_control_setpoint.h
@@ -81,19 +81,15 @@ struct offboard_control_setpoint_s {
enum OFFBOARD_CONTROL_MODE mode; /**< The current control inputs mode */
- double p1; /**< ailerons / roll / x pos / lat */
- double p2; /**< elevator / pitch / y pos / lon */
- float p3; /**< rudder / yaw / z pos / alt */
- float p4; /**< throttle / x vel */
- float p5; /**< roll rate / y vel */
- float p6; /**< pitch rate / z vel */
- float p7; /**< yaw rate / x acc */
- float p8; /**< y acc */
- float p9; /**< z acc */
+ double position[3]; /**< lat, lon, alt / x, y, z */
+ float velocity[3]; /**< x vel, y vel, z vel */
+ float acceleration[3]; /**< x acc, y acc, z acc */
+ float attitude[4]; /**< attitude of vehicle (quaternion) */
+ float attitude_rate[3]; /**< body angular rates (x, y, z) */
//XXX: use a bitmask with wrapper functions instead
- bool ignore[9]; /**< if field i is set to true, pi should be ignored */
- bool isForceSetpoint; /**< if set to true: p7 to p9 should be interpreted as force instead of acceleration */
+ uint16_t ignore; /**< if field i is set to true, pi should be ignored */
+ bool isForceSetpoint; /**< the acceleration vector should be interpreted as force */
float override_mode_switch;
@@ -107,6 +103,22 @@ struct offboard_control_setpoint_s {
* @}
*/
+inline bool offboard_control_sp_ignore_position(const struct offboard_control_setpoint_s &offboard_control_sp, int index) {
+ return (bool)(offboard_control_sp.ignore & (1 << index));
+}
+
+inline bool offboard_control_sp_ignore_velocity(const struct offboard_control_setpoint_s &offboard_control_sp, int index) {
+ return (bool)(offboard_control_sp.ignore & (1 << (3 + index)));
+}
+
+inline bool offboard_control_sp_ignore_acceleration(const struct offboard_control_setpoint_s &offboard_control_sp, int index) {
+ return (bool)(offboard_control_sp.ignore & (1 << (6 + index)));
+}
+
+inline bool offboard_control_sp_ignore_bodyrates(const struct offboard_control_setpoint_s &offboard_control_sp, int index) {
+ return (bool)(offboard_control_sp.ignore & (1 << (9 + index)));
+}
+
/* register this as object request broker structure */
ORB_DECLARE(offboard_control_setpoint);