public Handle (QuadrotorInterface qInterface, string name, string field = "")
		{
			interface_ = qInterface;
			name_ = name;
			field_ = field;
			value_ = default(T);
		}
		public Handle (QuadrotorInterface qInterface, T source, string name, string field = "")
		{
			interface_ = qInterface;
			name_ = name;
			field_ = field;
			value_ = source;
		}
		public Handle (string name, string field = "")
		{
			interface_ = null;
			name_ = name;
			field_ = field;
			value_ = default(T);
		}
		public CommandHandle (CommandHandle other)
		{
			interface_ = other.interface_;
			name_ = other.getName ();
			field_ = other.getField ();
			new_value_ = other.new_value_;
		}
		public void CopyFrom (QuadrotorInterface qInterface, string name, string field)
		{
			interface_ = qInterface;
			name_ = name;
			field_ = field;
			new_value_ = false;
		}
		public CommandHandle (QuadrotorInterface qInterface, string name, string field)
		{
			interface_ = qInterface;
			name_ = name;
			field_ = field;
			new_value_ = false;
		}
		public CommandHandle ()
		{
			interface_ = null;
			name_ = "";
			preempted_ = false;
			new_value_ = false;
		}
		public void CopyFrom (CommandHandle other)
		{
			if ( other == null )
				return;
			interface_ = other.interface_;
			name_ = other.getName ();
			field_ = other.getField ();
			new_value_ = other.new_value_;
		}
		public HorizontalVelocityCommandHandle (QuadrotorInterface qInterface, string name) : base (qInterface, name, "linear.xy") {}
		public AccelCommandHandle (QuadrotorInterface qInterface, string name, string field = "") : base (qInterface, name, field) {}
		public HeadingCommandHandle (QuadrotorInterface qInterface, string name) : base (qInterface, name, "orientation.yaw")
		{
			scalar_ = 0;
		}
		public TwistHandle (QuadrotorInterface qInterface, Twist twist) : base (qInterface, twist, "twist") {}
		public StateHandle (QuadrotorInterface qInterface, Pose pose, Twist twist)
		{
			poseHandle = new PoseHandle ( qInterface, pose );
			twistHandle = new TwistHandle ( qInterface, twist );
		}
		public WrenchCommandHandle (QuadrotorInterface qInterface, string name) : base (qInterface, name) {}
		public MotorStatusHandle (QuadrotorInterface qInterface, MotorStatus motor_status) : base (qInterface, motor_status, "motor_status") {}
		public ImuHandle (QuadrotorInterface qInterface, Imu imu) : base (qInterface, imu, "imu") {}
		public VerticalVelocityCommandHandle (QuadrotorInterface qInterface, string name) : base (qInterface, name, "linear.z") {}
		public AttitudeCommandHandle (QuadrotorInterface qInterface, string name) : base (qInterface, name) {}
		public AngularVelocityCommandHandle (QuadrotorInterface qInterface, string name) : base (qInterface, name, "angular.z") {}
		public ThrustCommandHandle (QuadrotorInterface qInterface, string name) : base (qInterface, name) {}
		public CommandHandle_ (QuadrotorInterface qInterface, string name, string field = "") : base (qInterface, name, field)
		{
			command_ = default (T);
		}
		public AccelerationHandle (QuadrotorInterface qInterface, Accel acceleration) : base (qInterface, acceleration, "acceleration") {}
		public YawrateCommandHandle (QuadrotorInterface qInterface, string name) : base (qInterface, name) {}
		public HorizontalPositionCommandHandle (QuadrotorInterface qInterface, string name) : base (qInterface, name, "position.xy") {}
		public HeightCommandHandle (QuadrotorInterface qInterface, string name) : base (qInterface, name, "position.z") {}
		public PoseHandle (QuadrotorInterface qInterface, Pose pose) : base (qInterface, pose, "pose") {}