main.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. package main
  2. import (
  3. pjisuvConfig "cicv-data-closedloop/aarch64/pjisuv/master/package/config"
  4. "cicv-data-closedloop/common/util"
  5. "cicv-data-closedloop/kinglong_msgs"
  6. "cicv-data-closedloop/pjisuv_msgs"
  7. "fmt"
  8. "github.com/bluenviron/goroslib/v2"
  9. "github.com/bluenviron/goroslib/v2/pkg/msgs/geometry_msgs"
  10. "github.com/bluenviron/goroslib/v2/pkg/msgs/nav_msgs"
  11. "github.com/bluenviron/goroslib/v2/pkg/msgs/sensor_msgs"
  12. "github.com/bluenviron/goroslib/v2/pkg/msgs/tf2_msgs"
  13. "github.com/bluenviron/goroslib/v2/pkg/msgs/visualization_msgs"
  14. "os"
  15. )
  16. // main 命令格式 topic-echo.exe pjisuv /cicv_location
  17. func main() {
  18. rosNode, _ := goroslib.NewNode(goroslib.NodeConf{
  19. Name: "cicvDataClosedloopTopicEcho",
  20. MasterAddress: "127.0.0.1:11311",
  21. })
  22. eType := util.ToString(os.Args[1])
  23. topic := util.ToString(os.Args[2])
  24. if eType == "pjisuv" {
  25. //1 一致
  26. if topic == pjisuvConfig.TopicOfAmrPose {
  27. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  28. Node: rosNode,
  29. Topic: topic,
  30. Callback: func(data *visualization_msgs.MarkerArray) {
  31. fmt.Println("收到话题", topic, "的数据", data)
  32. }})
  33. }
  34. //2 一致
  35. if topic == pjisuvConfig.TopicOfBoundingBoxesFast {
  36. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  37. Node: rosNode,
  38. Topic: topic,
  39. Callback: func(data *pjisuv_msgs.BoundingBoxArray) {
  40. fmt.Println("收到话题", topic, "的数据", data)
  41. }})
  42. }
  43. //3 一致
  44. if topic == pjisuvConfig.TopicOfCameraFault {
  45. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  46. Node: rosNode,
  47. Topic: topic,
  48. Callback: func(data *pjisuv_msgs.FaultVec) {
  49. fmt.Println("收到话题", topic, "的数据", data)
  50. }})
  51. }
  52. //4 一致
  53. // history 消息不一致
  54. if topic == pjisuvConfig.TopicOfCanData {
  55. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  56. Node: rosNode,
  57. Topic: topic,
  58. Callback: func(data *pjisuv_msgs.Frame) {
  59. fmt.Println("收到话题", topic, "的数据", data)
  60. }})
  61. }
  62. //5 一致
  63. if topic == pjisuvConfig.TopicOfCh128x1LslidarPointCloud {
  64. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  65. Node: rosNode,
  66. Topic: topic,
  67. Callback: func(data *sensor_msgs.PointCloud2) {
  68. fmt.Println("收到话题", topic, "的数据", data)
  69. }})
  70. }
  71. //6 一致
  72. if topic == pjisuvConfig.TopicOfCh64wLLslidarPointCloud {
  73. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  74. Node: rosNode,
  75. Topic: topic,
  76. Callback: func(data *sensor_msgs.PointCloud2) {
  77. fmt.Println("收到话题", topic, "的数据", data)
  78. }})
  79. }
  80. //7 一致
  81. if topic == pjisuvConfig.TopicOfCh64wLScan {
  82. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  83. Node: rosNode,
  84. Topic: topic,
  85. Callback: func(data *sensor_msgs.LaserScan) {
  86. fmt.Println("收到话题", topic, "的数据", data)
  87. }})
  88. }
  89. //8 一致
  90. if topic == pjisuvConfig.TopicOfCh64wRLslidarPointCloud {
  91. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  92. Node: rosNode,
  93. Topic: topic,
  94. Callback: func(data *sensor_msgs.PointCloud2) {
  95. fmt.Println("收到话题", topic, "的数据", data)
  96. }})
  97. }
  98. //9 一致
  99. if topic == pjisuvConfig.TopicOfCh64wRScan {
  100. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  101. Node: rosNode,
  102. Topic: topic,
  103. Callback: func(data *sensor_msgs.LaserScan) {
  104. fmt.Println("收到话题", topic, "的数据", data)
  105. }})
  106. }
  107. //10 一致
  108. if topic == pjisuvConfig.TopicOfCicvLidarclusterMovingObjects {
  109. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  110. Node: rosNode,
  111. Topic: topic,
  112. Callback: func(data *pjisuv_msgs.PerceptionCicvMovingObjects) {
  113. fmt.Println("收到话题", topic, "的数据", data)
  114. }})
  115. }
  116. //11 一致
  117. // history 没有数据发出(未开启自动驾驶)
  118. if topic == pjisuvConfig.TopicOfCicvAmrTrajectory {
  119. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  120. Node: rosNode,
  121. Topic: topic,
  122. Callback: func(data *pjisuv_msgs.Trajectory) {
  123. fmt.Println("收到话题", topic, "的数据", data)
  124. }})
  125. }
  126. //12 一致
  127. if topic == pjisuvConfig.TopicOfCicvLocation {
  128. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  129. Node: rosNode,
  130. Topic: topic,
  131. Callback: func(data *pjisuv_msgs.PerceptionLocalization) {
  132. fmt.Println("收到话题", topic, "的数据", data)
  133. }})
  134. }
  135. //13 一致
  136. // history 消息不一致
  137. if topic == pjisuvConfig.TopicOfCloudClusters {
  138. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  139. Node: rosNode,
  140. Topic: topic,
  141. Callback: func(data *pjisuv_msgs.AutowareCloudClusterArray) {
  142. fmt.Println("收到话题", topic, "的数据", data)
  143. }})
  144. }
  145. //14 一致
  146. if topic == pjisuvConfig.TopicOfHeartbeatInfo {
  147. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  148. Node: rosNode,
  149. Topic: topic,
  150. Callback: func(data *pjisuv_msgs.HeartBeatInfo) {
  151. fmt.Println("收到话题", topic, "的数据", data)
  152. }})
  153. }
  154. //15 一致
  155. if topic == pjisuvConfig.TopicOfLidarPretreatmentCost {
  156. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  157. Node: rosNode,
  158. Topic: topic,
  159. Callback: func(data *geometry_msgs.Vector3Stamped) {
  160. fmt.Println("收到话题", topic, "的数据", data)
  161. }})
  162. }
  163. //16 一致
  164. if topic == pjisuvConfig.TopicOfLidarPretreatmentOdometry {
  165. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  166. Node: rosNode,
  167. Topic: topic,
  168. Callback: func(data *nav_msgs.Odometry) {
  169. fmt.Println("收到话题", topic, "的数据", data)
  170. }})
  171. }
  172. //17 一致
  173. if topic == pjisuvConfig.TopicOfLidarRoi {
  174. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  175. Node: rosNode,
  176. Topic: topic,
  177. Callback: func(data *geometry_msgs.PolygonStamped) {
  178. fmt.Println("收到话题", topic, "的数据", data)
  179. }})
  180. }
  181. //18 一致
  182. if topic == pjisuvConfig.TopicOfLine1 {
  183. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  184. Node: rosNode,
  185. Topic: topic,
  186. Callback: func(data *nav_msgs.Path) {
  187. fmt.Println("收到话题", topic, "的数据", data)
  188. }})
  189. }
  190. //19 一致
  191. if topic == pjisuvConfig.TopicOfLine2 {
  192. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  193. Node: rosNode,
  194. Topic: topic,
  195. Callback: func(data *nav_msgs.Path) {
  196. fmt.Println("收到话题", topic, "的数据", data)
  197. }})
  198. }
  199. //20 一致
  200. if topic == pjisuvConfig.TopicOfMapPolygon {
  201. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  202. Node: rosNode,
  203. Topic: topic,
  204. Callback: func(data *pjisuv_msgs.PolygonStamped) {
  205. fmt.Println("收到话题", topic, "的数据", data)
  206. }})
  207. }
  208. //21 一致
  209. if topic == pjisuvConfig.TopicOfObstacleDisplay {
  210. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  211. Node: rosNode,
  212. Topic: topic,
  213. Callback: func(data *visualization_msgs.MarkerArray) {
  214. fmt.Println("收到话题", topic, "的数据", data)
  215. }})
  216. }
  217. //22 一致
  218. if topic == pjisuvConfig.TopicOfPjControlPub {
  219. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  220. Node: rosNode,
  221. Topic: topic,
  222. Callback: func(data *pjisuv_msgs.CommonVehicleCmd) {
  223. fmt.Println("收到话题", topic, "的数据", data)
  224. }})
  225. }
  226. //23 一致
  227. if topic == pjisuvConfig.TopicOfPointsCluster {
  228. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  229. Node: rosNode,
  230. Topic: topic,
  231. Callback: func(data *sensor_msgs.PointCloud2) {
  232. fmt.Println("收到话题", topic, "的数据", data)
  233. }})
  234. }
  235. //24 一致
  236. if topic == pjisuvConfig.TopicOfPointsConcat {
  237. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  238. Node: rosNode,
  239. Topic: topic,
  240. Callback: func(data *sensor_msgs.PointCloud2) {
  241. fmt.Println("收到话题", topic, "的数据", data)
  242. }})
  243. }
  244. //25 一致
  245. // history 没有数据发出(未开启自动驾驶)
  246. if topic == pjisuvConfig.TopicOfReferenceDisplay {
  247. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  248. Node: rosNode,
  249. Topic: topic,
  250. Callback: func(data *nav_msgs.Path) {
  251. fmt.Println("收到话题", topic, "的数据", data)
  252. }})
  253. }
  254. //26 一致
  255. // history 没有数据发出(未开启自动驾驶)
  256. if topic == pjisuvConfig.TopicOfReferenceTrajectory {
  257. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  258. Node: rosNode,
  259. Topic: topic,
  260. Callback: func(data *pjisuv_msgs.Trajectory) {
  261. fmt.Println("收到话题", topic, "的数据", data)
  262. }})
  263. }
  264. //27 一致
  265. // history 没有数据发出(未开启自动驾驶)
  266. if topic == pjisuvConfig.TopicOfRoiPoints {
  267. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  268. Node: rosNode,
  269. Topic: topic,
  270. Callback: func(data *sensor_msgs.PointCloud2) {
  271. fmt.Println("收到话题", topic, "的数据", data)
  272. }})
  273. }
  274. //28 一致
  275. if topic == pjisuvConfig.TopicOfRoiPolygon {
  276. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  277. Node: rosNode,
  278. Topic: topic,
  279. Callback: func(data *nav_msgs.Path) {
  280. fmt.Println("收到话题", topic, "的数据", data)
  281. }})
  282. }
  283. //29 一致
  284. if topic == pjisuvConfig.TopicOfTf {
  285. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  286. Node: rosNode,
  287. Topic: topic,
  288. Callback: func(data *tf2_msgs.TFMessage) {
  289. fmt.Println("收到话题", topic, "的数据", data)
  290. }})
  291. }
  292. //30 一致
  293. if topic == pjisuvConfig.TopicOfTpperception {
  294. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  295. Node: rosNode,
  296. Topic: topic,
  297. Callback: func(data *pjisuv_msgs.PerceptionObjects) {
  298. fmt.Println("收到话题", topic, "的数据", data)
  299. }})
  300. }
  301. //31 一致
  302. // history 没有数据发出(未开启自动驾驶)
  303. if topic == pjisuvConfig.TopicOfTpperceptionVis {
  304. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  305. Node: rosNode,
  306. Topic: topic,
  307. Callback: func(data *visualization_msgs.MarkerArray) {
  308. fmt.Println("收到话题", topic, "的数据", data)
  309. }})
  310. }
  311. //32 一致
  312. if topic == pjisuvConfig.TopicOfTprouteplan {
  313. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  314. Node: rosNode,
  315. Topic: topic,
  316. Callback: func(data *pjisuv_msgs.RoutePlan) {
  317. fmt.Println("收到话题", topic, "的数据", data)
  318. }})
  319. }
  320. //33 一致
  321. // history 没有数据发出(未开启自动驾驶)
  322. if topic == pjisuvConfig.TopicOfTrajectoryDisplay {
  323. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  324. Node: rosNode,
  325. Topic: topic,
  326. Callback: func(data *nav_msgs.Path) {
  327. fmt.Println("收到话题", topic, "的数据", data)
  328. }})
  329. }
  330. //34 一致
  331. if topic == pjisuvConfig.TopicOfUngroundCloudpoints {
  332. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  333. Node: rosNode,
  334. Topic: topic,
  335. Callback: func(data *sensor_msgs.PointCloud2) {
  336. fmt.Println("收到话题", topic, "的数据", data)
  337. }})
  338. }
  339. //35 一致
  340. if topic == pjisuvConfig.TopicOfCameraImage {
  341. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  342. Node: rosNode,
  343. Topic: topic,
  344. Callback: func(data *sensor_msgs.Image) {
  345. fmt.Println("收到话题", topic, "的数据", data)
  346. }})
  347. }
  348. //36 todo 没有数据发出
  349. if topic == pjisuvConfig.TopicOfDataRead {
  350. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  351. Node: rosNode,
  352. Topic: topic,
  353. Callback: func(data *pjisuv_msgs.Retrieval) {
  354. fmt.Println("收到话题", topic, "的数据", data)
  355. }})
  356. }
  357. }
  358. TopicOfNodeFaultInfo := "/nodefault_info"
  359. TopicOfCicvLocation := "/cicv_location"
  360. TopicOfTpperception := "/tpperception"
  361. TopicOfFaultInfo := "/fault_info"
  362. TopicOfDataRead := "/data_read"
  363. if eType == "kinglong" {
  364. if topic == TopicOfNodeFaultInfo {
  365. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  366. Node: rosNode,
  367. Topic: TopicOfNodeFaultInfo,
  368. Callback: func(data *kinglong_msgs.FaultInfo) {
  369. fmt.Println("收到话题", topic, "的数据", data)
  370. }})
  371. }
  372. if topic == TopicOfCicvLocation {
  373. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  374. Node: rosNode,
  375. Topic: TopicOfCicvLocation,
  376. Callback: func(data *kinglong_msgs.PerceptionLocalization) {
  377. fmt.Println("收到话题", topic, "的数据", data)
  378. }})
  379. }
  380. if topic == TopicOfTpperception {
  381. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  382. Node: rosNode,
  383. Topic: TopicOfTpperception,
  384. Callback: func(data *kinglong_msgs.PerceptionObjects) {
  385. fmt.Println("收到话题", topic, "的数据", data)
  386. }})
  387. }
  388. if topic == TopicOfFaultInfo {
  389. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  390. Node: rosNode,
  391. Topic: TopicOfFaultInfo,
  392. Callback: func(data *kinglong_msgs.FaultVec) {
  393. fmt.Println("收到话题", topic, "的数据", data)
  394. }})
  395. }
  396. if topic == TopicOfDataRead {
  397. _, _ = goroslib.NewSubscriber(goroslib.SubscriberConf{
  398. Node: rosNode,
  399. Topic: TopicOfDataRead,
  400. Callback: func(data *kinglong_msgs.Retrieval) {
  401. fmt.Println("收到话题", topic, "的数据", data)
  402. }})
  403. }
  404. }
  405. select {}
  406. }