1234567891011121314151617181920212223242526272829303132333435 |
- package main
- import (
- "cicv-data-closedloop/pjisuv_msgs"
- "fmt"
- "math"
- )
- func Topic() string {
- return "/tpperception"
- }
- func Label() string {
- return "TTC"
- }
- func Rule(data *pjisuv_msgs.PerceptionObjects, velocityX float64, velocityY float64, yaw float64) string {
- for _, obj := range data.Objs {
- if math.Abs(float64(obj.Y)) <= 2 && obj.X >= 8 {
- theta := DegreesToRadians(yaw)
- vxrel := (float64(obj.Vxabs)-velocityX)*math.Cos(theta) + (float64(obj.Vyabs)-velocityY)*math.Sin(theta)
- ttc := -((float64(obj.X) - 5.2) / (vxrel + 0.001))
- fmt.Println("TTC值为:", ttc)
- if ttc >= 0 && ttc <= 5 {
- return "TTC"
- }
- }
- }
- return ""
- }
- // DegreesToRadians 计算角度转弧度
- func DegreesToRadians(degrees float64) float64 {
- return degrees * math.Pi / 180.0
- }
|