diff --git a/msg/LQCommand.msg b/msg/LQCommand.msg
index 813e5b23aa0e4c422d552c626bce2648e9a27013..0cf96223a541e5c16c4fc4b42959078c24c9e0f9 100644
--- a/msg/LQCommand.msg
+++ b/msg/LQCommand.msg
@@ -11,5 +11,6 @@ LQCommandEndConditionSpec end_condition_spec
 int32 mode
 int32 tst_unique_node_id
 bool finished
+string name     # Limited to 10 characters and will be synced
 string comment
 
diff --git a/msg/LQCommandEndConditionSpec.msg b/msg/LQCommandEndConditionSpec.msg
index 173ba40224b7c94a2de4dd10da072e1df734c8ac..fd68157e1350e82ef55173003231f9af30daa2de 100644
--- a/msg/LQCommandEndConditionSpec.msg
+++ b/msg/LQCommandEndConditionSpec.msg
@@ -1,8 +1,7 @@
-int32 timeout
+int32 timeout         # seconds
 bool horizontal
 bool vertical
 bool heading
-int32 wait_after_end_condition
+int32 wait_after_end_condition # seconds
 bool user_input
-int32 wait_after_user_input
-
+int32 wait_after_user_input    # seconds
diff --git a/msg/LQHeadingCommand.msg b/msg/LQHeadingCommand.msg
index 23a3426a1dfe7eb9e849d9ae4f358f43df05fc4b..ccfa7ca92596a5898f00eec68d9536f2af5d8c7e 100644
--- a/msg/LQHeadingCommand.msg
+++ b/msg/LQHeadingCommand.msg
@@ -1,16 +1,20 @@
 
 int32 MODE_IGNORE = 0
-int32 MODE_USE = 1
-int32 MODE_EXTERNAL_POSITION = 2
-int32 MODE_EXTERNAL_VELOCITY = 3
-int32 MODE_IN_FLIGHT_DIRECTION = 4
-int32 MODE_TOWARDS_POINT = 5
-int32 MODE_TOWARDS_EXTERNAL_POINT = 6
-int32 MODE_RC_STICK_VELOCITY = 7
+int32 MODE_HEADING_ABSOLUTE = 1
+int32 MODE_HEADING_RELATIVE = 2
+int32 MODE_HEADING_BODY_RELATIVE = 3
+int32 MODE_HEADING_RATE = 3
+int32 MODE_HEADING_POINT = 3
+int32 MODE_EXTERNAL_POSITION = 4
+int32 MODE_EXTERNAL_RATE = 5
+int32 MODE_IN_FLIGHT_DIRECTION = 6
+int32 MODE_TOWARDS_POINT = 6
+int32 MODE_TOWARDS_EXTERNAL_POINT = 7
+int32 MODE_RC_STICK_VELOCITY = 8
 
 int32 mode
-float32 x
-float32 y
-float32 z
-float32 heading
-
+float32 x       # For MODE_HEADING_POINT
+float32 y       # For MODE_HEADING_POINT
+float32 heading # Degreees, 0 towards north, postitive clockwise
+float32 rate
+bool use_rate_sign
diff --git a/msg/LQHorizontalCommand.msg b/msg/LQHorizontalCommand.msg
index 6f21e3ef922b1c6bf831689c14af9930d766c71c..498aa74697591a05df704212f246a3dad9c831c9 100644
--- a/msg/LQHorizontalCommand.msg
+++ b/msg/LQHorizontalCommand.msg
@@ -1,12 +1,19 @@
 
 int32 MODE_IGNORE = 0
 int32 MODE_USE = 1
-int32 MODE_EXTERNAL_POSITION = 2
-int32 MODE_EXTERNAL_VELOCITY = 3
-int32 MODE_KEEP_DISTANCE = 4
-int32 MODE_RC_STICK_VELOCITY = 5
+int32 MODE_HORIZONTAL_ABSOLUTE = 2
+int32 MODE_HORIZONTAL_RELATIVE = 3
+int32 MODE_HORIZONTAL_BODY_RELATIVE = 4
+int32 MODE_EXTERNAL_POSITION = 5
+int32 MODE_EXTERNAL_VELOCITY = 6
+int32 MODE_KEEP_DISTANCE = 7
+int32 MODE_RC_STICK_VELOCITY = 8
 
 int32 mode
-float32 x
-float32 y
-float32 z
+float32 x           # standard ros x, east; absolute offset in external modes
+float32 y           # standard ros y, north; absolute offset in external modes
+float32 speed
+float32 speed_end   # speed_end <= speed
+bool speed_depends_on_heading         # Slow down while adjusting heading
+bool speed_depends_on_vertical        # Slow down while adjusting vertical
+float32 distance
diff --git a/msg/LQVerticalCommand.msg b/msg/LQVerticalCommand.msg
index c8e22257e033cb320474fbd7de83546067e117c2..6f64765985bd19e9dc5e6d20c4813955fec55c62 100644
--- a/msg/LQVerticalCommand.msg
+++ b/msg/LQVerticalCommand.msg
@@ -1,10 +1,13 @@
 
 int32 MODE_IGNORE = 0
-int32 MODE_USE = 1
-int32 MODE_WITH_HORIZONTAL = 2
-int32 MODE_EXTERNAL_POSITION = 3
-int32 MODE_EXTERNAL_VELOCITY = 4
-int32 MODE_RC_STICK_VELOCITY = 5
+int32 MODE_VERTICAL_ABSOLUTE = 1
+int32 MODE_VERTICAL_RELATIVE = 2
+int32 MODE_WITH_HORIZONTAL = 3
+int32 MODE_EXTERNAL_POSITION = 4
+int32 MODE_EXTERNAL_VELOCITY = 5
+int32 MODE_RC_STICK_VELOCITY = 6
 
 int32 mode
-float32 z
+float32 z          # ros z, up, offset in external modes
+float32 speed
+