arclab-hku/ESVIO

Stereo_processVisual() doesn't use event data?

Closed this issue · 4 comments

Hello authors,

Thank you for sharing such an impressive project. I was really impressed by your work.

I have one question about the code when I ran roslaunch esvio_estimator esvio.launch

In estimator.cpp, link

void Estimator::Stereo_processVisual(const map<int, vector<pair<int, Eigen::Matrix<double, 7, 1>>>> &image, // image features
                                     const map<int, vector<pair<int, Eigen::Matrix<double, 7, 1>>>> &event, // event features
                                     const std_msgs::Header &header) {

Stereo_processVisual function should process the optimization using image and event data because there is a solveOdometry_esvio function inside of it. But as far as I know, there is no code to utilize the event feature data and even when I debug it, the event feature data seems never be used.

Is it the right way of Stereo_processVisual to use? or did I miss something?

Thanks in advance!

Hi, thanks for your interest. For the "event feature data" problem.

  1. You can find that in the solveOdometry_esvio(), we use both image and event data for triangulation (such as, f_manager.Event_triangulateStereo(); f_manager.Stereo_Event_triangulate(Ps, tic, ric);).

  2. The function optimizationesvio(); is the actual optimization thread that uses the Ceres library. In this function, you can also find that we use both event and image data(such as, problem.AddResidualBlock(f_td, loss_function, para_Pose[imu_i], para_Pose[imu_j], para_Ex_Pose[1], para_EventFeature[Event_feature_index], para_Td[0]);)

@cpymaple
Thank you for the reply!

I tried to put the cout code in here

std::cout << "Stereo Event Feature " << Stereo_Event_feature.size() << std::endl; 

But it always print out the size '0' when I ran roslaunch esvio_estimator esvio.launch code. Is there something that I miss??

Thanks in advance!

@cpymaple Thank you for the reply!

I tried to put the cout code in here

std::cout << "Stereo Event Feature " << Stereo_Event_feature.size() << std::endl; 

But it always print out the size '0' when I ran roslaunch esvio_estimator esvio.launch code. Is there something that I miss??

Thanks in advance!

Hi, We fix some bugs. And now it can print out normally, maybe you can try again.

@cpymaple
Thank you for the quick reply. It's working very well now :-)
Have a good day