ov_msckf::RosVisualizer class

Helper class that will publish results onto the ROS framework.

Also save to file the current total state and covariance along with the groundtruth if we are simulating. We visualize the following things:

  • State of the system on TF, pose message, and path
  • Image of our tracker
  • Our different features (SLAM, MSCKF, ARUCO)
  • Groundtruth trajectory if we have it

Constructors, destructors, conversion operators

RosVisualizer(ros::NodeHandle& nh, std::shared_ptr<VioManager> app, std::shared_ptr<Simulator> sim = nullptr)
Default constructor.

Public functions

void visualize()
Will visualize the system if we have new things.
void visualize_odometry(double timestamp)
Will publish our odometry message for the current timestep. This will take the current state estimate and get the propagated pose to the desired time. This can be used to get pose estimates on systems which require high frequency pose estimates.
void visualize_final()
After the run has ended, print results.

Protected functions

void publish_state()
Publish the current state.
void publish_images()
Publish the active tracking image.
void publish_features()
Publish current features.
void publish_groundtruth()
Publish groundtruth (if we have it)
void publish_loopclosure_information()
Publish loop-closure information of current pose and active track information.
void sim_save_total_state_to_file()
Save current estimate state and groundtruth including calibration.

Protected variables

std::shared_ptr<VioManager> _app
Core application of the filter system.
std::shared_ptr<Simulator> _sim
Simulator (is nullptr if we are not sim'ing)

Function documentation

ov_msckf::RosVisualizer::RosVisualizer(ros::NodeHandle& nh, std::shared_ptr<VioManager> app, std::shared_ptr<Simulator> sim = nullptr)

Default constructor.

nh ROS node handler
app Core estimator manager
sim Simulator if we are simulating