|
@@ -200,7 +200,7 @@ namespace KinectCar
|
|
|
new Tuple<JointType, JointType>(JointType.KneeLeft, JointType.AnkleLeft),
|
|
|
new Tuple<JointType, JointType>(JointType.AnkleLeft, JointType.FootLeft)
|
|
|
};
|
|
|
-
|
|
|
+
|
|
|
|
|
|
StatusText = _kinectSensor.IsAvailable ? Properties.Resources.RunningStatusText : Properties.Resources.NoSensorStatusText;
|
|
|
|
|
@@ -347,49 +347,77 @@ namespace KinectCar
|
|
|
float ySpineMid = positionSpineMid.Y;
|
|
|
float ZSpineMid = positionSpineMid.Z;
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- if (body.HandRightState == HandState.Closed && body.HandLeftState == HandState.Closed && yHandRight > ySpineMid && yHandLeft > xSpineMid)
|
|
|
+ if (body.HandRightState == HandState.Open && body.HandLeftState == HandState.Open)
|
|
|
{
|
|
|
- TipText = "前进";
|
|
|
- _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("8"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
-
|
|
|
- var value = Math.Atan2((yHandRight - yHandLeft), (xHandRight - xHandLeft)) * 180 / Math.PI;
|
|
|
-
|
|
|
- if (20 < value && value < 90)
|
|
|
- {
|
|
|
- TipText = "左前方行驶";
|
|
|
- _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("4"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
- }
|
|
|
-
|
|
|
- if (-90 < value && value < -20)
|
|
|
- {
|
|
|
- TipText = "右前方行驶";
|
|
|
- _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("6"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
- }
|
|
|
+ TipText = "停止";
|
|
|
+
|
|
|
+ _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("0"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
}
|
|
|
-
|
|
|
- if (body.HandRightState == HandState.Lasso && body.HandLeftState == HandState.Lasso && yHandRight > ySpineMid && yHandLeft > xSpineMid)
|
|
|
+
|
|
|
+ if (Count % 2 == 1)
|
|
|
{
|
|
|
-
|
|
|
- _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("Reversing"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
- var value = Math.Atan2((yHandRight - yHandLeft), (xHandRight - xHandLeft)) * 180 / Math.PI;
|
|
|
-
|
|
|
- if (20 < value && value < 90)
|
|
|
+
|
|
|
+ if (body.HandRightState == HandState.Closed && body.HandLeftState == HandState.Closed)
|
|
|
{
|
|
|
- TipText = "右后方行驶";
|
|
|
- _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("Reversing right"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
+
|
|
|
+ var value = Math.Atan2((yHandRight - yHandLeft), (xHandRight - xHandLeft)) * 180 / Math.PI;
|
|
|
+
|
|
|
+ if (20 > value && value > -20)
|
|
|
+ {
|
|
|
+ TipText = "前进";
|
|
|
+ Console.WriteLine("go");
|
|
|
+ _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("8"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (20 < value && value < 90)
|
|
|
+ {
|
|
|
+ TipText = "左前方行驶";
|
|
|
+ Console.WriteLine("left");
|
|
|
+ _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("4"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (-90 < value && value < -20)
|
|
|
+ {
|
|
|
+ TipText = "右前方行驶";
|
|
|
+ Console.WriteLine("rightt");
|
|
|
+ _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("6"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- if (-90 < value && value < -20)
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Count % 2 == 0)
|
|
|
+ {
|
|
|
+
|
|
|
+ if (body.HandRightState == HandState.Closed && body.HandLeftState == HandState.Closed)
|
|
|
{
|
|
|
- TipText = "左后方行驶";
|
|
|
- _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("Reversing left"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
+
|
|
|
+ var value = Math.Atan2((yHandRight - yHandLeft), (xHandRight - xHandLeft)) * 180 / Math.PI;
|
|
|
+
|
|
|
+ if (20 > value && value > -20)
|
|
|
+ {
|
|
|
+ TipText = "后退";
|
|
|
+ Console.WriteLine("brak");
|
|
|
+ _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("2"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (20 < value && value < 90)
|
|
|
+ {
|
|
|
+ TipText = "左方行驶";
|
|
|
+ _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("4"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (-90 < value && value < -20)
|
|
|
+ {
|
|
|
+ TipText = "右方行驶";
|
|
|
+ _client.Publish(Const.MQTT_TOPIC_CAR_CTRL, Encoding.UTF8.GetBytes("6"), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, false);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
|
|
|
if (jointHead.TrackingState == TrackingState.Tracked
|
|
|
&& jointHandRight.TrackingState == TrackingState.Tracked
|
|
@@ -417,7 +445,7 @@ namespace KinectCar
|
|
|
{
|
|
|
if (positionHandRight.Y < positionHead.Y)
|
|
|
{
|
|
|
- Console.WriteLine("手势合格,麦克风打开.键盘输入 下键");
|
|
|
+ Console.WriteLine("手势合格 ,麦克风打开.键盘输入 下键");
|
|
|
open1 = false;
|
|
|
open2 = false;
|
|
|
}
|
|
@@ -457,8 +485,7 @@ namespace KinectCar
|
|
|
open4 = false;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
if (open4 && open1)
|
|
|
{
|
|
|
if (positionHandLeft.Y < positionHead.Y && positionHandRight.Y < positionHead.Y)
|