ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
3

State of the ECTO-based object recognition stack?

asked 2012-04-03 22:01:16 -0600

severin gravatar image

updated 2012-04-03 22:02:58 -0600

Hello,

I've been spending some time trying to figure out the puzzle, and I need some help: I'd love to try the ECTO-based framework for object recognition, but I've a hard time installing all the pieces.

I've tried on 2 boxes (one is Ubuntu 10.04, the other one is Ubuntu 12.04), on both electric and fuerte.

I understand these tools are new and everything is not stabilized yet. I summarize below my current experience. Hopefully it may help sorting out the documentation :-)

(for each step, I've referenced the link to the corresponding documentation)

  • On Ubuntu 10.04, electric:

I went for:

$ sudo apt-get install ros-electric-object-detection [1]
$ roslaunch openni_camera openni_node.launch
$ rosrun object_recognition_core orb_template.py -o my_textured_plane [2]

=> ImportError: No module named ecto

-> no package ros-electric-ecto (how ros-electric-object-recognition can work, then?), so I went for a manual installation of ecto.

$ cd ~/ros-dev-electric
$ git clone git://github.com/plasmodic/ecto_kitchen.git
$ cd ecto_kitchen
$ git submodule init
$ git submodule update

[here, the doc on [3] forget a few steps that are mentionned in README.rst, in the ecto_kitchen repo]

$ git submodule foreach git checkout master
$ ln -s ./catkin/toplevel.cmake CMakeLists.txt
$ mkdir build && cd build && cmake ../ && make -j4

It takes some time, but eventually everything compile.

[3] mentions python_path.sh that does not exist anymore. I've sourced instead ~/ros-dev-electric/ecto_kitchen/setup.sh which allows to import ecto in python.

$ rosrun object_recognition_core orb_template.py -o my_textured_plane

=> from ecto_image_pipeline.io.source import create_source
=> ImportError: No module named io.source

Here, I'm stuck. I do not know to install ecto_image_pipeline. I've tried to clone it from https://github.com/wg-perception/ecto_image_pipeline.git to ~/ros-dev-electric/ecto_kitchen, and then rebuild ecto_kitchen, but it fails at configuration (with a KeyError: 'ecto_image_pipeline').

  • On Ubuntu 10.04, fuerte:

No package for object recognition, but ecto is packaged:

$ sudo apt-get install ros-fuerte-ecto ros-fuerte-ecto-opencv ros-fuerte-ecto-pcl

Then, I've installed the recognition_kitchen [4]:

$ unset PYTHONPATH LD_LIBRARY_PATH ROS_PACKAGE_PATH
$ source /opt/ros/fuerte/setup.sh
$ cd ~/ros-dev-fuerte
$ git clone git://github.com/wg-perception/recognition_kitchen.git
$ cd recognition_kitchen
$ rosinstall . /opt/ros/fuerte ./install/rosinstall_main ./install/rosinstall_pipelines ./install/rosinstall_ros

Which fails after cloning all repos with: rosmake: error: no such option: --rosdep-install. After a while, I've figured out that I was still using rosinstall-0.5. I went a bit further with rosinstall-0.6:

$ mkdir build && cd build && cmake ..

=> CMake fails with:
[...]
-- Generating .msg files for action object_recognition_msgs/ObjectRecognition /home/slemaign/ros-dev-fuerte/recognition_kitchen/object_recognition_msgs/action/ObjectRecognition.action
/opt/ros/fuerte/share/genmsg/cmake/pkg-genmsg.cmake.em:33: error: <type 'exceptions.IOError'>: 
[Errno 2] No such file or directory: '/home/slemaign/ros-dev-fuerte/recognition_kitchen/object_recognition_msgs//home/slemaign/ros-dev-fuerte/recognition_kitchen/object_recognition_msgs/srv/GetObjectInformation.srv'

For some reason, @ARG_SERVICES@ in /opt/ros/fuerte/share/genmsg/cmake/pkg-genmsg.context.in get configured inrecognition_kitchen` with a duplicated path.

I've stopped here...

  • On Ubuntu 12.04:

Ubuntu 12.04 ships with its own libopencv 2.3 which conflicts with the one from WG (because, amongst other issues, WG links against libjpeg62 and ... (more)

edit retag flag offensive close merge delete

Comments

The four link of ubuntu 12.04 seems disappeared. Where are them? Thank you~

sam gravatar image sam  ( 2012-10-28 05:43:20 -0600 )edit

3 Answers

Sort by ยป oldest newest most voted
2

answered 2012-04-17 05:33:03 -0600

Julius gravatar image

I installed ECTO object recognition on Ubuntu 11.10 / ROS Electric and finally managed to get some of the tools working (template tracking and capturing preview). I did open my own question (it says: can this be done easier?), you might want to have a look: http://answers.ros.org/question/32015/running-ecto-object-recognition-on-ubuntu-1110-ros

edit flag offensive delete link more

Comments

How @severin solve these questions? Thank you~

sam gravatar image sam  ( 2012-10-28 05:44:26 -0600 )edit
1

answered 2012-04-18 13:39:38 -0600

Vincent Rabaud gravatar image

A lot of questions here :) The short answer is to please file bug reports as mentioned on: http://www.ros.org/wiki/object_recognition

A lot of infrastructure changes happened lately due to a full move to catkin (the new Fuerte build infrastructure) and trying to make it work on Electric.

Your problems on electric should have been fixed by now.

Your problem on Lucid fuerte requires a new genmsg release which will happen after the official release. Object recognition is a very complete stack and we still need to release new versions of some core packages to make it compile fully; the priority is on release fuerte for now. The commit that fixes genmsg is: https://github.com/ros/genmsg/commit/0f70b4608c11eb3940a85f17cd89dc9adcc9c8a5

Your problem on Precise fuerte got fixed and there are now ecto packages for Precise (or just update your rosdep).

edit flag offensive delete link more
0

answered 2013-01-17 07:03:23 -0600

stfn gravatar image

updated 2013-01-17 07:11:46 -0600

after sudo apt-get install ros-fuerte-object-recognition-capture

and running rosrun object_recognition_capture orb_template.py

I get the error

Traceback (most recent call last):
  File "/opt/ros/fuerte/share/object_recognition_capture/bin/orb_template.py", line 2, in <module>
    from object_recognition_capture.orb_capture import *
  File "/opt/ros/fuerte/lib/python2.7/dist-packages/object_recognition_capture/__init__.py", line 1, in <module>
    from .fiducial_pose_est import *
  File "/opt/ros/fuerte/lib/python2.7/dist-packages/object_recognition_capture/fiducial_pose_est.py", line 2, in <module>
    from ecto_opencv import highgui, calib, imgproc
ImportError: /opt/ros/fuerte/lib/python2.7/dist-packages/ecto_opencv/calib.so: undefined symbol: _ZN2cv9depthTo3dERKNS_3MatES2_RS0_S2_

Do you have any ideas? The undefined symbol is somewhat ... cryptical.

(Ubuntu 12.04, 32bit)

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2012-04-03 22:01:16 -0600

Seen: 1,642 times

Last updated: Jan 17 '13