wg-perception / reconstruction

3d reconstruction of objects from data in the DB
15 stars 17 forks source link

TypeError when running mesh_object (python unicode vs std::string) #1

Closed pgorczak closed 9 years ago

pgorczak commented 10 years ago

The error occurs when the ecto.Dealer gets instantiated. The exact type error message is

No registered converter was able to produce a C++ rvalue of type std::string from this Python object of type unicode

It seems that a str type is expected here instead of unicode by the Python wrapper. Running object_search.py from object_recognition_core indeed prints a list of unicode elements in the session ids line but an str in the db id line.

I don't know if this issue belongs to reconstruction or rather the core since it could already happen in the upload script. Please bear with me if this is the wrong place.

Forgot to mention: I am using the ROS Indigo packages on Ubuntu 14.04.

vrabaud commented 9 years ago

I just pushed https://github.com/wg-perception/object_recognition_core/commit/81f7e1e14cde86830b25c18338baf020a0e02c09 Could you please confirm this fixes it for you ? Thx. You will need to compile the core from source

pgorczak commented 9 years ago

After wg-perception/object_recognition_core@81f7e1e14cde86830b25c18338baf020a0e02c09 the error changes to

TypeError: Expecting an object of type list; got an object of type tuple instead

in the exact same place

I should add that in the meantime, I switched to building the ORK code plus its ecto, opencv_candidate and xdot dependencies from upstream sources. The list of packages is attached below. Now I get a different behavior as well when switching back to the previous revision wg-perception/object_recognition_core@4da12695b7cff85fdc45ec094f1542498344cf58. The error I described above is gone. Instead the reconstruction runs for a while before crashing with a different message.

(...)
filter: Laplacian Smooth
meshlabserver: mainserver.cpp:271: bool MeshLabServer::Script(MeshDocument&, QString, FILE*): Assertion `parameterSet.paramList.size() == required.paramList.size()' failed.
Traceback (most recent call last):
  File "(...)object_recognition_reconstruction/mesh_object", line 192, in <module>
    simple_mesh_session(dbs, session, args)
  File "(...)object_recognition_reconstruction/mesh_object", line 148, in simple_mesh_session
    meshlab(ply_name, mesh_name)
  File "(...)object_recognition_reconstruction/mesh_object", line 75, in meshlab
    subprocess.check_call((['meshlabserver', '-i', filename_in, '-o', filename_out, '-s', script]))
  (...)
subprocess.CalledProcessError: Command '['meshlabserver', (...)]' returned non-zero exit status -6

If I can take any further steps to analyze the problem I'll do my best to help.


Packages Built From Upstream Sources

I put an according rosinstall file in a gist

corot commented 9 years ago

@pgorczak, I'm getting the same error you reported. I use code from master branch on indigo. Did you solved the problem? Thanks!

vrabaud commented 9 years ago

which instruction are you running exactly ? Thx

corot commented 9 years ago
rosrun object_recognition_reconstruction mesh_object --all --visualize --commit

and the error:

libGL error: dlopen /usr/lib/i386-linux-gnu/dri/swrast_dri.so failed (/usr/lib/i386-linux-gnu/dri/swrast_dri.so: wrong ELF class: ELFCLASS32)
libGL error: failed to load driver: swrast
Input mesh  /home/jorge/cloud_ef46aab584ed2989a50974d5ac09eb5e_00000.ply
output mesh  /tmp/tmpskfZtU/cloud_ef46aab584ed2989a50974d5ac09eb5e.stl
script /tmp/tmpZ7MOAk
Loading Plugins:
Current Plugins Dir is: /usr/lib/meshlab/plugins 
Error in XMLFile: filter_measure.xml - line: -1, column: -1 - 
Error in XMLFile: filter_mutualinfo.xml - line: -1, column: -1 - 
Total 227 filtering actions
Total 13 io plugins
Opening a file with extention ply
Mesh cloud_ef46aab584ed2989a50974d5ac09eb5e_00000.ply loaded has 1497 vn 0 fn
Apply FilterScript: '/tmp/tmpZ7MOAk'
FilterScript
Reading filter with name Surface Reconstruction: Ball Pivoting
    Reading Param with name BallRadius : RichAbsPerc
    Reading Param with name Clustering : RichFloat
    Reading Param with name CreaseThr : RichFloat
    Reading Param with name DeleteFaces : RichBool
Reading filter with name Laplacian Smooth
    Reading Param with name stepSmoothNum : RichInt
    Reading Param with name Boundary : RichBool
    Reading Param with name Selected : RichBool
Starting Script of 2 actionsfilter: Surface Reconstruction: Ball Pivoting
LOG: 2 Reconstructed surface. Added 887 faces
Advancing frontAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesAdding FacesReconstructed surface. Added 887 faces
filter: Laplacian Smooth
meshlabserver: mainserver.cpp:271: bool MeshLabServer::Script(MeshDocument&, QString, FILE*): Assertion `parameterSet.paramList.size() == required.paramList.size()' failed.
Traceback (most recent call last):
  File "/home/jorge/workspaces/ork/src/ork_reconstruction/apps/mesh_object", line 186, in <module>
    simple_mesh_session(dbs, session, args)
  File "/home/jorge/workspaces/ork/src/ork_reconstruction/apps/mesh_object", line 148, in simple_mesh_session
    meshlab(ply_name, mesh_name)
  File "/home/jorge/workspaces/ork/src/ork_reconstruction/apps/mesh_object", line 75, in meshlab
    subprocess.check_call((['meshlabserver', '-i', filename_in, '-o', filename_out, '-s', script]))
  File "/usr/lib/python2.7/subprocess.py", line 540, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['meshlabserver', '-i', 'cloud_ef46aab584ed2989a50974d5ac09eb5e_00000.ply', '-o', '/tmp/tmpskfZtU/cloud_ef46aab584ed2989a50974d5ac09eb5e.stl', '-s', '/tmp/tmpZ7MOAk']' returned non-zero exit status -6
corot commented 9 years ago

btw, the first two libGL error lines are due to a problem with my graphics driver that I have already fixed.

corot commented 9 years ago

@vrabaud, I think I found the problem, but my fix is just monkey coding that seems to work. Feel free to reject, modify or apply the PR https://github.com/wg-perception/reconstruction/pull/4