Ask Your Question

marcog's profile - activity

2015-03-03 01:48:53 -0500 received badge  Famous Question (source)
2012-10-01 07:06:34 -0500 received badge  Notable Question (source)
2012-08-29 00:16:18 -0500 received badge  Popular Question (source)
2012-06-01 00:01:16 -0500 commented question Object recognition: FailedFromPythonConversion exception on db

UPDATE:

On an object tabletop_object.ObjectRecognizer doing setattr(a.params, k, v) gives me

  File "<stdin>", line 1, in <module>
ecto.FailedFromPythonConversion:            exception_type  FailedFromPythonConversion
             cpp_typename  std::string
2012-05-31 07:09:06 -0500 asked a question Object recognition: FailedFromPythonConversion exception on db

I am trying to get the object_recognition stack working on ros electric, I am using ubuntu 10.04 and ros packages based installation. After capture and database uploading of a model I tried testing the detection with the tabletop approach. After some tuning I managed to get to the point where is trying to reach the objects from the db. But I got stuck with this error:

<object_recognition_core.boost.interface.ObjectDb object at 0xa8eb324>
tendrils:
    db [object_recognition_core::db::ObjectDb]
    object_ids [std::string]

object_ids
['deac36880abc636d8654728b0a000651']
Traceback (most recent call last):
  File "object_recognition_core/bin/detection", line 9, in <module>
    plasm = create_detection_plasm()
  File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/lib/python2.6/dist-packages/object_recognition_core/pipelines/plasm.py", line 54, in create_detection_plasm
    pipeline_cells[pipeline_id] = pipeline.detector(**pipeline_param)
  File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/lib/python2.6/dist-packages/object_recognition_tabletop/detector.py", line 106, in detector
    db=object_db)
  File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/lib/python2.6/dist-packages/ecto/__init__.py", line 70, in impl

    setattr(self.params, k, v)
ecto.FailedFromPythonConversion:            exception_type  FailedFromPythonConversion

            cpp_typename  std::string
            pyobject_repr  ['deac36880abc636d8654728b0a000651']

It seems that something's wrong with the object id at the db but couldn't figure out what. For more info here is the config file I'm using:

source1:
  type: ros_kinect
  rgb_frame_id: '/camera_rgb_optical_frame'

sink1:
  type: table_publisher
  package: 'object_recognition_tabletop'

pipeline1:
  method: 'tabletop_table'
  package: 'object_recognition_tabletop'
  submethod: ''
  sources: [source1]
  sinks: [sink1]
  parameters: {}

sink2:
  type: publisher
  object_ids: 'all'

pipeline2:
  method: 'tabletop_object'
  package: 'object_recognition_tabletop'
  submethod: ''
  sources: [source1, pipeline1]
  sinks: [sink2]
  parameters:
    object_ids: 'all'
    db:
      type: 'CouchDB'
      root: 'http://localhost:5984'
      collection: 'object_recognition'

Any hint on the issue is more than welcome.

Thanks in advance.

2012-05-31 05:11:26 -0500 received badge  Editor (source)
2012-05-31 05:10:38 -0500 answered a question Object Recognition server: ImportError: No module named tabletop

UPDATE: I changed the 'package' field from tabletop to 'object_recognition_tabletop' which is where the tabletop ecto files are:

/opt/ros/electric/stacks/object_recognition/object_recognition_core/lib/python2.6/dist-packages/object_recognition_tabletop/

So now here's my config:

source1: type: ros_kinect rgb_frame_id: '/camera_rgb_optical_frame'

sink1: type: table_publisher package: 'object_recognition_tabletop'

pipeline1: method: 'tabletop_table' package: 'object_recognition_tabletop' submethod: '' sources: [source1] sinks: [sink1] parameters: {}

sink2: type: publisher object_ids: 'all'

pipeline2: method: 'tabletop_object' package: 'object_recognition_tabletop' submethod: '' sources: [source1, pipeline1] sinks: [sink2] parameters: object_ids: 'REDUCED_MODEL_SET' db: type: 'SqlHousehold' host: 'wgs36' port: 5432 user: 'willow' password: 'willow' name: 'household_objects' module: 'tabletop'

And now I get this error:

Traceback (most recent call last): File "object_recognition_core/bin/detection", line 9, in <module> plasm = create_detection_plasm() File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/pyshared/object_recognition_core/pipelines/plasm.py", line 28, in create_detection_plasm DetectionPipeline) File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/pyshared/object_recognition_core/utils/find_classes.py", line 21, in find_classes m = __import__(module) File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/pyshared/object_recognition_tabletop/__init__.py", line 1, in <module> from object_recognition_tabletop.ecto_cells.tabletop_table import TableDetector ImportError: No module named ecto_cells.tabletop_table

checked that __init__.py file and there's this: 'from object_recognition_tabletop.ecto_cells.tabletop_table import TableDetector' somehow is not finding tabletop_table but it is under this path:

/opt/ros/electric/stacks/object_recognition/object_recognition_core/pyshared/object_recognition_tabletop/ecto_cells/tabletop_table.so

2012-05-31 04:06:08 -0500 asked a question Object Recognition server: ImportError: No module named tabletop

Hi there,

I'm trying to run the object_recognition stack from ROS Electric installed from packages on an Ubuntu 10.04. Up to now I'm able to run all the "capture part" and I uploaded models to the database.

I wanted to test the detection using the models in the database, but I tried running the server with the supplied config file as follows:

rosrun object_recognition_server server.py -c config_detection.tabletop

And I keep on getting:

Traceback (most recent call last): File "server.py", line 88, in <module> server = RecognitionServer(args) File "server.py", line 15, in __init__ self.plasm = create_detection_plasm() File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/pyshared/object_recognition_core/pipeline DetectionPipeline) File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/pyshared/object_recognition_core/utils/fi m = __import__(module) ImportError: No module named tabletop

I've been looking for this tabletop module somehow but I feel I'm kind of lost. Couldn't find documentation regarding the config files, so anyone able to point out something that might help is more than welcome.

Thanks in advance,


UPDATE: I changed the 'package' field from tabletop to 'object_recognition_tabletop' which is where the tabletop ecto files are:

/opt/ros/electric/stacks/object_recognition/object_recognition_core/lib/python2.6/dist-packages/object_recognition_tabletop/

So now here's my config:

source1: type: ros_kinect rgb_frame_id: '/camera_rgb_optical_frame'

sink1: type: table_publisher package: 'object_recognition_tabletop'

pipeline1: method: 'tabletop_table' package: 'object_recognition_tabletop' submethod: '' sources: [source1] sinks: [sink1] parameters: {}

sink2: type: publisher object_ids: 'all'

pipeline2: method: 'tabletop_object' package: 'object_recognition_tabletop' submethod: '' sources: [source1, pipeline1] sinks: [sink2] parameters: object_ids: 'REDUCED_MODEL_SET' db: type: 'SqlHousehold' host: 'wgs36' port: 5432 user: 'willow' password: 'willow' name: 'household_objects' module: 'tabletop'

And now I get this error:

Traceback (most recent call last): File "object_recognition_core/bin/detection", line 9, in <module> plasm = create_detection_plasm() File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/pyshared/object_recognition_core/pipelines/plasm.py", line 28, in create_detection_plasm DetectionPipeline) File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/pyshared/object_recognition_core/utils/find_classes.py", line 21, in find_classes m = __import__(module) File "/opt/ros/electric/stacks/object_recognition/object_recognition_core/pyshared/object_recognition_tabletop/__init__.py", line 1, in <module> from object_recognition_tabletop.ecto_cells.tabletop_table import TableDetector ImportError: No module named ecto_cells.tabletop_table

checked that __init__.py file and there's this: 'from object_recognition_tabletop.ecto_cells.tabletop_table import TableDetector' somehow is not finding tabletop_table but it is under this path:

/opt/ros/electric/stacks/object_recognition/object_recognition_core/pyshared/object_recognition_tabletop/ecto_cells/tabletop_table.so