| 326 | } |
| 327 | |
| 328 | void RosBaseDataProvider::publishOutput(const SpinOutputPacket& vio_output) { |
| 329 | publishTf(vio_output); |
| 330 | if (odometry_pub_.getNumSubscribers() > 0) { |
| 331 | publishState(vio_output); |
| 332 | } |
| 333 | // Publish 3d mesh (not the time-horizon one! just the per-frame one) |
| 334 | if (mesh_3d_frame_pub_.getNumSubscribers() > 0) { |
| 335 | publishPerFrameMesh3D(vio_output); |
| 336 | } |
| 337 | // Publish 2d mesh debug image |
| 338 | if (debug_img_pub_.getNumSubscribers() > 0) { |
| 339 | publishDebugImage(vio_output.getTimestamp(), vio_output.mesh_2d_img_); |
| 340 | } |
| 341 | if (pointcloud_pub_.getNumSubscribers() > 0) { |
| 342 | publishTimeHorizonPointCloud(vio_output.getTimestamp(), |
| 343 | vio_output.points_with_id_VIO_, |
| 344 | vio_output.lmk_id_to_lmk_type_map_); |
| 345 | } |
| 346 | if (frontend_stats_pub_.getNumSubscribers() > 0) { |
| 347 | publishFrontendStats(vio_output); |
| 348 | } |
| 349 | // Publish Resiliency |
| 350 | if (resiliency_pub_.getNumSubscribers() > 0) { |
| 351 | publishResiliency(vio_output); |
| 352 | } |
| 353 | if (imu_bias_pub_.getNumSubscribers() > 0) { |
| 354 | publishImuBias(vio_output); |
| 355 | } |
| 356 | } |
| 357 | |
| 358 | void RosBaseDataProvider::publishTimeHorizonPointCloud( |
| 359 | const Timestamp& timestamp, const PointsWithIdMap& points_with_id, |
nothing calls this directly
no outgoing calls
no test coverage detected