PointCloudLibrary / PointCloudLibrary/pcl

[Recognition] lineRGBD::loadTemplates cannot load cannot read PCD files in LTM archive

Open
#3,887 1 comment 0 reactions 1 assignee View on GitHub

@truhoang is already working on this.

Since Apr 8, 2020.

kind: bug module: io needs: feedback
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:

  1. Untar the file into a temporary folder using boost::filesystem and load PCD and SQMMT files in that folder then delete it. Avoid low-level(?) reading and managing tar headers.

  2. Use readBodyBinary method in PCDReader (trunk) to read the block of data. Minimal code change.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.