123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package main
- import (
- "awesomeProject/entity"
- "awesomeProject/pjisuv_msgs"
- "fmt"
- "github.com/bluenviron/goroslib/v2"
- "math"
- "os"
- "os/signal"
- "time"
- )
- type Point struct {
- Latitude float64
- Longitude float64
- }
- var (
- param entity.PjisuvParam
- StartTime int64
- IsFollow bool
- )
- func CallbackTpperception(data *pjisuv_msgs.PerceptionObjects) {
- for _, obj := range data.Objs {
- fmt.Println("ID=", obj.Id, "Type=", obj.Type)
- if obj.Type == 4 && obj.X >= 2 && obj.X <= 20 && math.Abs(float64(obj.Y)) <= 1.2 {
- if StartTime == 0 {
- StartTime = time.Now().Unix()
- }
- // 判断是否持续超过5S
- if time.Now().Unix()-StartTime > 5 {
- if !IsFollow {
- event_label := "CBLA"
- fmt.Println(event_label)
- IsFollow = true
- }
- }
- } else {
- StartTime = 0
- IsFollow = false
- }
- }
- }
- func main() {
- go listener()
- select {}
- //time.Sleep(10000)
- }
- func listener() {
- // create a node and connect to the master
- n, err := goroslib.NewNode(goroslib.NodeConf{
- Name: "goroslib_sub",
- MasterAddress: "127.0.0.1:11311",
- })
- if err != nil {
- panic(err)
- }
- defer n.Close()
- // create a subscriber
- subEndPointMessage, err := goroslib.NewSubscriber(goroslib.SubscriberConf{
- Node: n,
- Topic: "/tpperception",
- Callback: CallbackTpperception,
- })
- if err != nil {
- panic(err)
- }
- defer subEndPointMessage.Close()
- // wait for CTRL-C
- c := make(chan os.Signal, 1)
- signal.Notify(c, os.Interrupt)
- <-c
- }
|