Go to the documentation of this file.
22 #ifndef OV_MSCKF_ROS1VISUALIZER_H
23 #define OV_MSCKF_ROS1VISUALIZER_H
25 #include <geometry_msgs/PoseStamped.h>
26 #include <geometry_msgs/PoseWithCovarianceStamped.h>
31 #include <nav_msgs/Odometry.h>
32 #include <nav_msgs/Path.h>
34 #include <sensor_msgs/CameraInfo.h>
35 #include <sensor_msgs/Image.h>
36 #include <sensor_msgs/Imu.h>
37 #include <sensor_msgs/NavSatFix.h>
38 #include <sensor_msgs/PointCloud.h>
39 #include <sensor_msgs/PointCloud2.h>
41 #include <std_msgs/Float64.h>
49 #include <Eigen/Eigen>
50 #include <boost/date_time/posix_time/posix_time.hpp>
51 #include <boost/filesystem.hpp>
83 ROS1Visualizer(std::shared_ptr<ros::NodeHandle> nh, std::shared_ptr<VioManager>
app, std::shared_ptr<Simulator>
sim =
nullptr);
115 void callback_stereo(
const sensor_msgs::ImageConstPtr &msg0,
const sensor_msgs::ImageConstPtr &msg1,
int cam_id0,
int cam_id1);
134 std::shared_ptr<ros::NodeHandle>
_nh;
137 std::shared_ptr<VioManager>
_app;
140 std::shared_ptr<Simulator>
_sim;
147 std::shared_ptr<tf::TransformBroadcaster>
mTfBr;
153 std::vector<std::shared_ptr<message_filters::Synchronizer<sync_pol>>>
sync_cam;
154 std::vector<std::shared_ptr<message_filters::Subscriber<sensor_msgs::Image>>>
sync_subs_cam;
190 std::map<double, Eigen::Matrix<double, 17, 1>>
gt_states;
205 #endif // OV_MSCKF_ROS1VISUALIZER_H
message_filters::sync_policies::ApproximateTime< sensor_msgs::Image, sensor_msgs::Image > sync_pol
std::mutex camera_queue_mtx
boost::posix_time::ptime rT2
std::shared_ptr< VioManager > _app
Core application of the filter system.
std::vector< geometry_msgs::PoseStamped > poses_gt
ros::Publisher pub_posegt
ros::Publisher pub_points_msckf
void publish_groundtruth()
Publish groundtruth (if we have it)
boost::posix_time::ptime rT1
void publish_features()
Publish current features.
unsigned int poses_seq_gt
Extended Kalman Filter estimator.
std::shared_ptr< Simulator > _sim
Simulator (is nullptr if we are not sim'ing)
std::vector< geometry_msgs::PoseStamped > poses_imu
std::shared_ptr< ros::NodeHandle > _nh
Global node handler.
double last_visualization_timestamp_image
ros::Publisher pub_pathimu
unsigned int poses_seq_imu
void publish_loopclosure_information()
Publish loop-closure information of current pose and active track information.
ros::Publisher pub_odomimu
image_transport::Publisher it_pub_loop_img_depth
void callback_inertial(const sensor_msgs::Imu::ConstPtr &msg)
Callback for inertial information.
image_transport::Publisher it_pub_tracks
ros::Publisher pub_pathgt
ros::Publisher pub_points_slam
void visualize()
Will visualize the system if we have new things.
std::atomic< bool > thread_update_running
bool publish_calibration_tf
void publish_state()
Publish the current state.
std::vector< std::shared_ptr< message_filters::Synchronizer< sync_pol > > > sync_cam
void publish_images()
Publish the active tracking image.
double last_visualization_timestamp
std::deque< ov_core::CameraData > camera_queue
std::vector< std::shared_ptr< message_filters::Subscriber< sensor_msgs::Image > > > sync_subs_cam
std::vector< ros::Subscriber > subs_cam
ros::Publisher pub_loop_point
void visualize_odometry(double timestamp)
Will publish our odometry message for the current timestep. This will take the current state estimate...
ros::Publisher pub_loop_pose
image_transport::Publisher it_pub_loop_img_depth_color
ros::Publisher pub_points_sim
void callback_monocular(const sensor_msgs::ImageConstPtr &msg0, int cam_id0)
Callback for monocular cameras information.
ros::Publisher pub_poseimu
std::map< int, double > camera_last_timestamp
std::shared_ptr< Simulator > sim
bool publish_global2imu_tf
std::shared_ptr< tf::TransformBroadcaster > mTfBr
ros::Publisher pub_points_aruco
void callback_stereo(const sensor_msgs::ImageConstPtr &msg0, const sensor_msgs::ImageConstPtr &msg1, int cam_id0, int cam_id1)
Callback for synchronized stereo camera information.
void visualize_final()
After the run has ended, print results.
std::ofstream of_state_est
ROS1Visualizer(std::shared_ptr< ros::NodeHandle > nh, std::shared_ptr< VioManager > app, std::shared_ptr< Simulator > sim=nullptr)
Default constructor.
void setup_subscribers(std::shared_ptr< ov_core::YamlParser > parser)
Will setup ROS subscribers and callbacks.
Helper class that will publish results onto the ROS framework.
ros::Publisher pub_loop_intrinsics
std::map< double, Eigen::Matrix< double, 17, 1 > > gt_states
ros::Publisher pub_loop_extrinsic
std::ofstream of_state_std
std::ofstream of_state_gt
ov_msckf
Author(s): Patrick Geneva
, Kevin Eckenhoff , Guoquan Huang
autogenerated on Mon Dec 16 2024 03:06:54