suchetanrs / ORB-SLAM3-ROS2-Docker

This repository contains a full wrapper class for running ORB-SLAM3 on a docker container with ROS2 Humble with Ubuntu 22.04.
130 stars 26 forks source link

mono based project #14

Open GLtangzero opened 1 month ago

GLtangzero commented 1 month ago

@suchetanrs I moved it in the new issue and cleaned that comment.

Hello my friend, I just make a mono type demo which based on the project. I could running it on my computer, but still I think it should be check by you. Please check the attach. orb_slam3_ros2_wrapper_mono.zip just colcon build --symlink-install and running ros2 launch orb_slam3_ros2_wrapper unirobot_mono.launch.py (PS: Before you input the image to the orbslam3 in mono model you need to shake the camera, please don't let it keep in on position) The fork link is here.

Thanks!

Originally posted by @GLtangzero in https://github.com/suchetanrs/ORB-SLAM3-ROS2-Docker/issues/12#issuecomment-2216595607

xujingao13 commented 1 month ago

@GLtangzero Thanks for the excellent repo! It works well.

I have just a little question. I noticed that the system will be publishing a topic named /mono_map_points. Will all the map points information be stored in the topic message?

GLtangzero commented 1 month ago

@xujingao13 Hello, this project is almost 95% same with the orgin rgbd project, I just change the working type to mono. And yes, for the user could seperate clearly of the pointcloud topic, I change the origin topic name from map_point to mono_map_points their abilities are same, both are using for public the pointcloud2 data. Thank you for your ask, please be free to report any question.

xujingao13 commented 1 month ago

Hi @GLtangzero, is the current project also works well on visual-inertial-SLAM as I found the node also subscribe the /imu: sensor_msgs/msg/Imu topic.

GLtangzero commented 1 month ago

@xujingao13 Hello, I have ask suchetanrs about this one. Even there is a imu topic, but for now it's work that he told me. If you want you could @ him to ask this question. Thanks!

xujingao13 commented 1 month ago

@GLtangzero Thanks! I have another question. Could you help me on separating all mappoints and current tracked mappoints into two ros topics? I'm not sure about how to realize it.

GLtangzero commented 1 month ago

@xujingao13 Hello: I'm not sure your meaning about to realize the ability of all mappoints. As I know about the orbslam3 ability(from their paper and the experience which I used). If you want get the pointclouds data it's better to get the current type, because sometime the orbslam will lost the target so it will create a new map until find enough same key point to loop closing then the maps will merge. So if you want get the all mappoints it will quiet dangerous, because some time the points are not merge finished, the data is not good for you. PS: Of course it's just my opinion it's better to read the paper and the code by yourself. Thanks.

xujingao13 commented 1 month ago

@GLtangzero Thanks! I found out that the exact thing I need is the separating of Active Reference MapPoints (those marked as red in Pangolin) and Current MapPoints (plus black marked dots), and publishing them in two different topics. I have already realized it through calling GetReferenceMapPoints() and GetCurrentMapPoints() respectively. Thanks again for your help.

hsutzu commented 3 weeks ago

Hello I am working on this project, and I have some issues. When I use ctrl+c to terminate the orb-slam3 and it will show process died and did not finish the save map, however I was wondering if you met the same problem as well?

GLtangzero commented 3 weeks ago

@hsutzu Hello: I just check the original code from orbslam3, this is the link to the code, and try to follow this one: ` SLAM.Shutdown();

// Tracking time statistics
sort(vTimesTrack.begin(),vTimesTrack.end());
float totaltime = 0;
for(int ni=0; ni<nImages; ni++)
{
    totaltime+=vTimesTrack[ni];
}
cout << "-------" << endl << endl;
cout << "median tracking time: " << vTimesTrack[nImages/2] << endl;
cout << "mean tracking time: " << totaltime/nImages << endl;

// Save camera trajectory
SLAM.SaveTrajectoryTUM("CameraTrajectory.txt");
SLAM.SaveKeyFrameTrajectoryTUM("KeyFrameTrajectory.txt");   
return 0;`

For now this project does not have a save part I think. Sorry for now, I can't upload this function, because I'm not in the school so I can't figure it out. Please try to follow the original code or try to connect the author suchetanrs. Thanks!

hsutzu commented 3 weeks ago

I was wondering did you use imu sensors? Sincere I only use mono camera, then maybe I shouldn't give any information of imu so I didn't add it at the yaml file

GLtangzero commented 3 weeks ago

@hsutzu Hello again, As I write in the README this monocular project is rewrite from the original project(suchetanrs' rgbd project ). As he said, until now the imu model still can't use in the system even you can find it in the code. So It can't use for now. Thanks!