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.
-
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);
). -
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!
Hi, We fix some bugs. And now it can print out normally, maybe you can try again.