iBet uBet web content aggregator. Adding the entire web to your favor.
iBet uBet web content aggregator. Adding the entire web to your favor.



Link to original content: http://github.com/jbehley/SuMa/issues/47
about the input to Suma · Issue #47 · jbehley/SuMa · GitHub
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

about the input to Suma #47

Open
Hello-Water opened this issue May 21, 2024 · 4 comments
Open

about the input to Suma #47

Hello-Water opened this issue May 21, 2024 · 4 comments

Comments

@Hello-Water
Copy link

Hello, thanks for your code releasing!
I have some questions about the input to Suma:

  1. Does the visualizer default to using config/default.xml and how can i change config file to another one (for example vlp16.xml)?
  2. If I just only feed Lidar data to Suma (there is no calib.txt and other files) , when I execute Save Poses, is the pose in output file poses.txt referenced to the first frame of the Lidar data?
@jbehley
Copy link
Owner

jbehley commented May 21, 2024

thanks for your interest in our work and the feedback.

  1. Yes, I should have added it to the Readme; you call ./visualizer [<path/to/config>] [<path/to/data>], where the path to data is a directory containing the .bin files. config and path to data are optional directories, eg. \visualizer ../config/vlp16.xml will run the visualization with the vlp16 values.
  2. Currently, the savePoses method doesn't consider the calibration (see [1], not sure when I did this...). So all poses are in the local reference frame of the first LiDAR.

It might be that stuff is quite fitted to KITTI (and their data format), but hopefully it will work our for you.

[1]

void VisualizerWindow::savePoses() {
QString defaultFilename = QDir(lastDirectory_).filePath("poses.txt");
QString retValue = QFileDialog::getSaveFileName(this, "Save poses", defaultFilename, "Pose file(*.txt)");
if (!retValue.isNull() && fusion_ != nullptr) {
// Eigen::Matrix4f Tr = calib_["Tr"];
// Eigen::Matrix4f Tr_inv = Tr.inverse();
// Eigen::Matrix4f T_cam_velo = calib_["Tr"];
// Eigen::Matrix4f T_velo_cam = calib_["Tr"].inverse();
std::ofstream out(retValue.toStdString());
auto poses = fusion_->getOptimizedPoses();
for (uint32_t i = 0; i < poses.size(); ++i) {
// Eigen::Matrix4f pose = T_cam_velo * oldPoses_[i] * T_velo_cam;
Eigen::Matrix4f pose = poses[i].cast<float>();
for (uint32_t r = 0; r < 3; ++r) {
for (uint32_t c = 0; c < 4; ++c) {
out << ((r == 0 && c == 0) ? "" : " ") << pose(r, c);
}
}
out << std::endl;
}
out.close();
std::cout << "Saved poses." << std::endl;
}
}

@Hello-Water
Copy link
Author

Okay, I got it. Thank you very much for your prompt reply!

@Hello-Water
Copy link
Author

@jbehley Hello, I have another question to ask for your advice: whether the ego-motion compensation in the bin format of the KITTI dataset is compensated to the end of the lidar frame time?

@jbehley
Copy link
Owner

jbehley commented May 30, 2024

Regarding what KITTI did for the motion compensation only the authors know. I guess they used the IMU estimates. But cannot tell for sure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants