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;
         }
     }
 }
Exemple #2
0
 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;
 }