PointCloudLibrary / PointCloudLibrary/pcl
[Recognition] lineRGBD::loadTemplates cannot load cannot read PCD files in LTM archive
@truhoang is already working on this.
Since Apr 8, 2020.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
Describe the bug
Just want to create the issue for the record. I can PR my attempt at a solution ASAP.
lineRGBD::loadTemplates attempt to load PCD files directly from file name in the archive L106. The PCD reader give cannot find PCD file because the file (LTM) is not unpacked and data from the PCD file in the archive is not loaded (LTM file is simply a .tar archive).
Context
Loading Linemod templates and point cloud masks from LTM archive.
Expected behavior
No errors when loading templates.
Current Behavior
Cannot find PCD file when parsing LTM archive.
To Reproduce
Tar any PCD file into .ltm filetype and load using lineRGBD::loadTemplates.
Your Environment (please complete the following information):
- OS: Ubuntu 18.04
- Compiler: g++
- PCL Version HEAD
Possible Solution
There are 2 solutions:
-
Untar the file into a temporary folder using
boost::filesystemand load PCD and SQMMT files in that folder then delete it. Avoid low-level(?) reading and managing tar headers. -
Use
readBodyBinarymethod inPCDReader(trunk) to read the block of data. Minimal code change.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.