c_ros.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package config
  2. import (
  3. "cicv-data-closedloop/common/config/c_log"
  4. "cicv-data-closedloop/common/util"
  5. "github.com/bluenviron/goroslib/v2"
  6. "time"
  7. )
  8. var (
  9. RosNode *goroslib.Node
  10. RosbagPath string
  11. RosbagEnvs []string
  12. )
  13. func InitRosConfig() {
  14. var err error
  15. c_log.GlobalLogger.Info("初始化RosNode - 开始")
  16. for {
  17. time.Sleep(time.Duration(2) * time.Second)
  18. c_log.GlobalLogger.Error("初始化RosNode - 进行中:", err)
  19. if RosNode, err = goroslib.NewNode(goroslib.NodeConf{
  20. Name: "node" + util.GetNowTimeCustom(),
  21. MasterAddress: CloudConfig.Ros.MasterAddress,
  22. }); err != nil {
  23. continue
  24. }
  25. c_log.GlobalLogger.Info("初始化RosNode - 成功:", CloudConfig.Ros.MasterAddress)
  26. break
  27. }
  28. // 获取 rosbag 命令路径和环境变量
  29. for _, host := range CloudConfig.Hosts {
  30. if host.Name == LocalConfig.Node.Name {
  31. RosbagPath = host.Rosbag.Path
  32. RosbagEnvs = host.Rosbag.Envs
  33. break
  34. }
  35. }
  36. c_log.GlobalLogger.Infof("rosbag 命令路径为:%v,环境变量为:%v", RosbagPath, RosbagEnvs)
  37. }