package main import ( "cicv-data-closedloop/pjisuv_msgs" "fmt" "math" "sync" ) func Topic() string { return "/tpperception" } // 禁止存在下划线_ func Label() string { return "TargetAhead" } func Rule(shareVars *sync.Map, data *pjisuv_msgs.PerceptionObjects) string { defer func() { if r := recover(); r != nil { fmt.Println("Recovered from panic:", r) } }() velocityXOfCicvLocation, ok1 := shareVars.Load("VelocityXOfCicvLocation") angularVelocityZOfCicvLocation, ok2 := shareVars.Load("AngularVelocityZOfCicvLocation") OutsideWorkshopFlag, ok3 := shareVars.Load("OutsideWorkshopFlag") OutsideWorkshopFlag = OutsideWorkshopFlag.(bool) if ok1 && ok2 && ok3 { value1 := velocityXOfCicvLocation.(float64) value2 := angularVelocityZOfCicvLocation.(float64) for _, obj := range data.Objs { if math.Abs(float64(obj.Y)) <= 2.3 && obj.X >= 0 && obj.X <= 13 && value1 < 5.5 && math.Abs(value2) >= 0.5 && OutsideWorkshopFlag == true { return Label() } } } return "" }