Open YoshuaNava opened 6 years ago
I absolutely agree with this approach, not only for this algorithm but for every single Ros package!
But I don't have spare time to help with this package, at least not in the short term.
Cheers
I did this recently. I plan to submit a PR for this soon. I have it running ROS-free on Windows too.
@jlblancoc Thank you! Hope we can take this initiative forward
@adishavit That's awesome! Could I ask you some questions about what you did? I have tried to phrase them so that they can be answered in a brief way. Now, I assume you took away all references to ROS message passing present in the registration, odometry, mapping and transform maintenance classes. Then,
Thank you very much.
@YoshuaNava :
ScanRegistration
I now have the algorithm class BasicScanRegistration
which depends only on PCL, and which ScanRegistration
derives from, though you could also use aggregation or BasicScanRegistration
directly (no protected
members and very few virtual
functions).
This is done for each module and each is still built into an independent lib as before.
I kept the original interface as is (even where it is currently somewhat clunky and redundant).std::chrono
instead of ros::Time
there rest remains in the ROS-using transport layer.Hi @adishavit, Thank you for your feedback.
This is the fork and branch to which I have been pushing my changes: https://github.com/YoshuaNava/loam/tree/detach_ros
In the last few days, I:
std:chrono
, stored the time in seconds as a double. (this might not be the best solution, though)Until now everything seems to be working. I have been testing one module at a time. I hope I can finish this and open a pull request soon. A lot of changes might be going in, so I'll divide it into pieces.
Note: As a future enhancement, I was planning on further taking apart the ROS transport layer, as mvelas. He wrote structs that contain the inputs/outputs of each module, and is able to run it on KITTI without ROS.
However, I wonder if the tests performed by Zhang relied on ROS or not. Something I noticed in one of the Kaarta Contour videos on YouTube is that they do use rviz for real-life operation, which means that ROS is running behind the curtain.
@YoshuaNava : Would you be interested in seeing my refactoring? I'll try to upload it by tomorrow.
Hey @adishavit, That would be awesome! Please keep me updated
I just pushed it - you can see it here. It's far from perfect - my goal was to get it to build on Windows so I could evaluate it in a non-ROS environment - which it does. So this is not the most that can/should be done. Having another set of eyeballs on it would be a tremendous help. Especially with documenting the LOAM code. I'd also like to refactor the math to higher level things - but that's another issue.
Do feel free to add review comments, issues and questions.
I also made it a PR.
@adishavit this repo can be tansplanted to windows, I've tested it, but the output trajectory is deformed
@sume-cn the error in my repo is produced because I didn't add the time stamp to the messages and that's quite important. It would help if someone could do that.
Hi, I think that it could be extremely useful to detach LOAM from ROS, such that:
There was substantial work in this direction from users @adrelino and @sebdi, contained in this repo. I'm also currently working on this for my thesis, but it may take some time until I submit a pull request.
What do you think? Would anyone be interested in collaborating for achieving this?
Kind regards, Yoshua Nava