public void DetectTouchedPosition() // determine traffic state { foreach (RobotUnity r in RobotUnitylist) { if (r.FindHeaderIntersectsRiskAreaHeader(this.properties.pose.Position)) { TrafficBehaviorStateTracking = TrafficBehaviorState.HEADER_TOUCH_HEADER; break; } else if (r.FindHeaderIntersectsRiskAreaTail(this.properties.pose.Position)) { TrafficBehaviorStateTracking = TrafficBehaviorState.HEADER_TOUCH_TAIL; break; } else if (r.FindHeaderIntersectsRiskAreaRightSide(this.properties.pose.Position)) { TrafficBehaviorStateTracking = TrafficBehaviorState.HEADER_TOUCH_SIDE; break; } else if (r.FindHeaderIntersectsRiskAreaLeftSide(this.properties.pose.Position)) { TrafficBehaviorStateTracking = TrafficBehaviorState.HEADER_TOUCH_SIDE; break; } } }
public void RegisteRobotInAvailable(Dictionary <String, RobotUnity> RobotUnitylistdc) { foreach (var r in RobotUnitylistdc.Values) { if (!r.properties.NameId.Equals(this.properties.NameId)) { this.RobotUnitylist.Add(r); } } TrafficBehaviorStateTracking = TrafficBehaviorState.HEADER_TOUCH_NOTOUCH; }
protected override void SupervisorTraffic() { if (CheckSafeDistance()) { if (CheckIntersection()) { DetectTouchedPosition(); TrafficBehavior(); } } else { TrafficBehaviorStateTracking = TrafficBehaviorState.HEADER_TOUCH_NOTOUCH; TrafficBehavior(); } }
public void RegisteRobotInAvailable(List <RobotUnity> RobotUnitylist) { this.RobotUnitylist = RobotUnitylist; TrafficBehaviorStateTracking = TrafficBehaviorState.HEADER_TOUCH_NOTOUCH; }