Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Different size of the dot pattern #7

Closed
beetleskin opened this issue Mar 1, 2013 · 33 comments
Closed

Different size of the dot pattern #7

beetleskin opened this issue Mar 1, 2013 · 33 comments

Comments

@beetleskin
Copy link

I tried to run the object_recognition_capture with the dot pattern. I did not print it to its original size but just chose A3 with automatic scale. When running rosrun object_recognition_capture capture -o orc_scan.bag the pattern is not completely recognized:
orc_no_pattern
However, two dots, one from the dark and one from the black side, are reprojected.

The wrong pattern size shouldn't affect the pattern recognition, should it? I guess it would just calculate a wrong distance of the pattern.
Anyway, I tried to change the hard coded pattern parameter in fiducial_pose_est.py by multiplying every number concerned with the pattern by 0.5, which didn't improve the recognition.

@vrabaud
Copy link
Member

vrabaud commented Mar 1, 2013

The size actually does not matter anymore (I need to update the docs) as the pattern is found in 2d, and the plane finder rectifies the wrong 3d scale if any. That output you have also only relies on 2d so it's displayed no matter what

Your result is really weird as I pointed the camera at my screen with your image and could find the pattern :) (from source or packages). I do not even understand what is being displayed (those two dots).

I guess you have the same result when the camera is looking at it straight up ?

@beetleskin
Copy link
Author

Hmm strange indeed. I get the same result from any camera pose ... OpenCV issue?

@vrabaud
Copy link
Member

vrabaud commented Mar 1, 2013

naah, that's pertty standard. But just in case, which OpenCV do you have ?
(I am about to push a patch that also displays the plane and we'll see what you get there)

@beetleskin
Copy link
Author

I built ecto from source as well, and as ecto doen't depend on any opencv installed, I guess I'm using their version. However, I have OpenCV 2.4.3.2 installed. Btw. running capture with the dot pattern gives me this warning/error.

(python:5075): GLib-GObject-CRITICAL **: g_param_spec_double: assertion `default_value >= minimum && default_value <= maximum' failed
(python:5075): GLib-GObject-CRITICAL **: g_object_class_install_property: assertion `G_IS_PARAM_SPEC (pspec)' failed
(python:5075): GLib-GObject-WARNING **: g_object_notify: object class `GdkScreenX11' has no property named `resolution

But the program keeps running anyway.

@beetleskin
Copy link
Author

I still get the two weird points but after your last commit the dot pattern capture crashes with segfault when the pattern is visible. GDB says:

Program received signal SIGSEGV, Segmentation fault.
PlaneFilter::process (this=0x8668908, inputs=..., outputs=...)
    at /home/stfn/devn/ros_dai_groovy_catkin/src/wg_perception/capture/cells/PlaneFilter.cpp:126
126         if (*mask != 255)

@vrabaud
Copy link
Member

vrabaud commented Mar 6, 2013

ok, fixed the potential crash. Thx.
what command are you running now ? I am not sure on how that is different from #6

@beetleskin
Copy link
Author

Its the same just without the template input, so the dot patter should be tracked, but still isn't.

@vrabaud
Copy link
Member

vrabaud commented Mar 7, 2013

ok, I fixed the crash. If that still does not work, can you please try the samples/dot_poser.py in ecto_opencv ? Thx.

@beetleskin
Copy link
Author

Are you sure? I still get the very same segfault (146:: if (*mask != 255).
The dot_poser.py seems to find dot correspondences but the marker just jumps around the black-on-white-dots:
dot_poser1

@vrabaud
Copy link
Member

vrabaud commented Mar 16, 2013

Can you please send thee full backtrace ? Or at least tell me in which file you have the crash. Thx
(I guess you updated the ecto_opencv + ecto_image_pipeline code too). We've had other people using that since the fix so it's really supposed to work.

@beetleskin
Copy link
Author

Hm, nope, everything should be up to date. Here comes the backtrace:

Program received signal SIGSEGV, Segmentation fault.
PlaneFilter::process (this=0x86688d0, inputs=..., outputs=...)
    at /home/stfn/devn/ros_dai_groovy_catkin/src/wg_perception/capture/cells/PlaneFilter.cpp:146
146         if (*mask != 255)
(gdb) bt
#0  PlaneFilter::process (this=0x86688d0, inputs=..., outputs=...)
    at /home/stfn/devn/ros_dai_groovy_catkin/src/wg_perception/capture/cells/PlaneFilter.cpp:146
#1  0xb29f3775 in process (outputs=..., inputs=..., this=0x86779b0)
    at /home/stfn/devn/ros_dai_groovy_catkin/src/ecto_kitchen/ecto/include/ecto/cell.hpp:407
#2  ecto::cell_<PlaneFilter>::dispatch_process (this=0x86779b0, inputs=..., outputs=...)
    at /home/stfn/devn/ros_dai_groovy_catkin/src/ecto_kitchen/ecto/include/ecto/cell.hpp:411
#3  0xb7138044 in ecto::cell::process (this=0x86779b0) at /home/stfn/devn/ros_dai_groovy_catkin/src/ecto_kitchen/ecto/src/lib/cell.cpp:253
#4  0xb71f65cc in ecto::schedulers::invoke_process (graph=..., vd=5)
    at /home/stfn/devn/ros_dai_groovy_catkin/src/ecto_kitchen/ecto/src/lib/ecto/impl/invoke.cpp:133
#5  0xb71ee8db in ecto::scheduler::execute_iter (this=0x867fad8, cur_iter=30, num_iters=0, stack_idx=5)
    at /home/stfn/devn/ros_dai_groovy_catkin/src/ecto_kitchen/ecto/src/lib/scheduler.cpp:208
#6  0xb71f26bc in operator() (a3=5, p=<optimized out>, this=<synthetic pointer>, a2=0, a1=<optimized out>)
    at /usr/include/boost/bind/mem_fn_template.hpp:393
#7  operator()<boost::_mfi::mf3<void, ecto::scheduler, unsigned int, unsigned int, unsigned int>, boost::_bi::list0> (f=<synthetic pointer>, 
    this=<synthetic pointer>, a=...) at /usr/include/boost/bind/bind.hpp:457
#8  operator() (this=<synthetic pointer>) at /usr/include/boost/bind/bind_template.hpp:20
#9  asio_handler_invoke<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ecto::scheduler, unsigned int, unsigned int, unsigned int>, boost::_bi::list4<boost::_bi::value<ecto::scheduler*>, boost::_bi::value<unsigned int>, boost::_bi::value<unsigned int>, boost::_bi::value<unsigned int> > > > (
    function=...) at /usr/include/boost/asio/handler_invoke_hook.hpp:64

But just in case I'll try the capture on another machine.

@beetleskin
Copy link
Author

ok, other machine:

  • groovy, via apt-get package: same dot syndrome as in the very first post (two highlighted dots, no crash)
  • groovy, compiled from source: same as on my machine (crash when pattern is visible)

@vrabaud
Copy link
Member

vrabaud commented Mar 22, 2013

that is really weird. It seems your mask defining the planes is simply empty. The only thing I can think of now is the sensor: what sensor are you using ? We only tested with Asus and Kinect.
Can you please try the ecto_opencv/samples/rgbd/plane_sample.py script (just say if it does find planes or not). Thx.

@beetleskin
Copy link
Author

We're using a standard Kinect but with the unstable drivers (OpenNI 1.5.4.0). plane_sample looks fine:
plane_sample

I tracked some variables in PlaneFilter::process(...) and found something odd:

std::cout << "emtpy?:" << masks_->empty() << " | " << masks_->rows << " " << masks_->cols << " | " << y  << " | " << (int)*mask << std::endl;
std::cout << "(" << origin.y << " | " << origin.x << ") " << *window_size_ << std::endl;

gives right before the crash:

emtpy?:0 | 480 640 | 320 | 255
(420 | -2147483648) 100

So origin.x seems to be wrong. Therefore we end up anywhere in memory with the mask pointer.

Next i tracked:

std::cout << T << std::endl;
std::cout << K << std::endl;
std::cout << T_tmp << std::endl;
std::cout << origin << std::endl;

resulting in

[0, 0, -0.0078125]
[525, 0, 320.5;
  0, 525, 240.5;
  0, 0, 1]
[-nan, -1.87891, -0.0078125]
[-2147483648, 240]

before a crash. But I guess it's normal that the input data of this cell is not valid if the OpposingDotPoseEstimator draws those weird two points instead of the pattern reprojection ...?

@vrabaud
Copy link
Member

vrabaud commented Mar 28, 2013

ok, it's weird: cv::Vec3f T_tmp = K*T;
So T_tmp should not have NaN's as long as K and T have none. That looks like an OpenCV bug. Would you be on 32 bit by any chance ? Is there any way you can upgrade OpenCV to 2.4.4 ? (the default one in ROS Groovy). Thx.

@beetleskin
Copy link
Author

I am running on 32bit, but with the correct OpenCV version:

stfn@stfn-MacBook:~/devn/ros_dai_groovy_catkin/devel/lib$ ldd libopencv_rgbd.so 
    linux-gate.so.1 =>  (0xb76fb000)
    libopencv_calib3d.so.2.4 => /opt/ros/groovy/lib/libopencv_calib3d.so.2.4 (0xb75f9000)
    libopencv_core.so.2.4 => /opt/ros/groovy/lib/libopencv_core.so.2.4 (0xb73be000)
    libopencv_imgproc.so.2.4 => /opt/ros/groovy/lib/libopencv_imgproc.so.2.4 (0xb710f000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb700a000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb6fde000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb6fc0000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6e16000)
    libopencv_flann.so.2.4 => /opt/ros/groovy/lib/libopencv_flann.so.2.4 (0xb6dab000)
    libopencv_features2d.so.2.4 => /opt/ros/groovy/lib/libopencv_features2d.so.2.4 (0xb6d05000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6cea000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb6cd4000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb6ccb000)
    /lib/ld-linux.so.2 (0xb76fc000)

@beetleskin
Copy link
Author

Further Testing: I printed '
T, K, T_tmp, K*T, (*K_)*(*T_in_) resulting in:

[0, 0, -2.13698e-42]
[525, 0, 320.5;
  0, 525, 240.5;
  0, 0, 1]
[-nan, -5.13943e-40, -2.13698e-42]
[-6.84901e-40, -5.13943e-40, -2.13698e-42]
[-6.849512775270072e-40; -5.139805998291583e-40; -2.137133471223111e-42]
[0, 0]
Segmentation fault (core dumped)

So maybe there is something wrong with cv::Vec3f? Why ever ...
Its also strange, that _K_T* and (K)(T_in)* have slightly different results after the 3th decimal place. Double-Float-Conversion?

@vrabaud
Copy link
Member

vrabaud commented Apr 3, 2013

thx so much for debugging. I know the OpenCV test farm does not have much 32 bit testing these days.
Do you have teh same kind of error with a small piece of code doing the same computation ?

@beetleskin
Copy link
Author

Actually, I'm not sure how to debug this. I wrote a small test, crunched in the numbers but got only valid results:

    double t_data[] = {0, 0, -2.13698e-42};
    double k_data[] = {525, 0, 320.5, 0, 525, 240.5, 0, 0, 1};
    Vec3d T(t_data);
    Vec3f T_f(T);
    Matx33d K(k_data);
    Matx33f K_f(K);
    Vec3f T_tmp = K_f*T_f;

    cout << T << endl;
    cout << K << endl;
    cout << T_tmp << endl;
    cout << K_f*T_f << endl;

I tried a couple constructors/float-double-conversions etc, but erverything produces normal numbers (I used opencv header and libs from groovy of course)

@beetleskin beetleskin reopened this Apr 5, 2013
@vrabaud
Copy link
Member

vrabaud commented Apr 14, 2013

ok, I really hate this bug :) I had tried to replicate like you to no avail. I tried different compilers, I valgrinded (with memcheck) and everything seems normal ...
Can you please update your OpenCV to 2.4.4 ? (it's up to date in Groovy, 2.4.5 should be pushed today too). What is your gcc ? Do you compile in release or debug ?
Random idea: can you replace the float to double in that part of the code ? (like cv::Vec3d and so on). Thx a bunch.

@vrabaud
Copy link
Member

vrabaud commented Apr 14, 2013

Other suggestion, please dump K and T to a yaml file and maybe we can repeat independently

@beetleskin
Copy link
Author

Well, I don't know where this comes from, but now I get the following error with any pipeline ...

stfn@stfn-MacBook:~/devn/ros_dai_groovy_catkin/src/ecto_kitchen/ecto_opencv/samples/rgbd$ python plane_sample.py 
Registration? 1
Sync? 0
Warning: USB events thread - failed to set priority. This might cause loss of data...
OpenCV Error: Assertion failed (depth.type() == CV_64FC1 || depth.type() == CV_32FC1 || depth.type() == CV_16UC1 || depth.type() == CV_16SC1) in depthTo3d, file /home/stfn/devn/ros_dai_groovy_catkin/src/ecto_kitchen/opencv_candidate/src/rgbd/src/depth_to_3d.cpp, line 235
Traceback (most recent call last):
  File "plane_sample.py", line 81, in <module>
    run_plasm(options, plasm, locals=vars())
  File "/home/stfn/devn/ros_dai_groovy_catkin/src/ecto_kitchen/ecto/python/ecto/opts.py", line 85, in run_plasm
    sched.execute(options.niter)
ecto.CellException:            exception_type  CellException
                cell_name  calib::DepthTo3d
                cell_type  calib::DepthTo3d
            function_name  process
                     type  cv::Exception
                     what  /home/stfn/devn/ros_dai_groovy_catkin/src/ecto_kitchen/opencv_candidate/src/rgbd/src/depth_to_3d.cpp:235: error: (-215) depth.type() == CV_64FC1 || depth.type() == CV_32FC1 || depth.type() == CV_16UC1 || depth.type() == CV_16SC1 in function depthTo3d

In rviz the input data looks fine as usual ... any ideas where this is comming from? It seems like no depth image is processed . Running rosrun ecto_image_pipeline capture_openni_usb.py gives me:

libpng warning: Image width is zero in IHDR
libpng warning: Image height is zero in IHDR
libpng error: Invalid IHDR data

vidcap.py says:

Traceback (most recent call last):
  File "/home/stfn/devn/ros_dai_groovy_catkin/src/ecto_kitchen/ecto_image_pipeline/cells/scripts/vidcap.py", line 5, in <module>
    from image_pipeline import Rectifier, CalibrationLoader
ImportError: No module named image_pipeline

like most other executables in ecto_image_pipeline as well.

rosrun ecto_pcl openni_viewer.py however works fine!

I'm confused ... I'm still on the same code here. Nothing changed except the updates from apt-get ... Maybe the cmake install log is of some help:

stfn@stfn-MacBook:~/devn/ros_dai_groovy_catkin$ catkin_make
Base path: /home/stfn/devn/ros_dai_groovy_catkin
Source space: /home/stfn/devn/ros_dai_groovy_catkin/src
Build space: /home/stfn/devn/ros_dai_groovy_catkin/build
Devel space: /home/stfn/devn/ros_dai_groovy_catkin/devel
Install space: /home/stfn/devn/ros_dai_groovy_catkin/install
####
#### Running command: "cmake /home/stfn/devn/ros_dai_groovy_catkin/src -DCATKIN_DEVEL_PREFIX=/home/stfn/devn/ros_dai_groovy_catkin/devel -DCMAKE_INSTALL_PREFIX=/home/stfn/devn/ros_dai_groovy_catkin/install" in "/home/stfn/devn/ros_dai_groovy_catkin/build"
####
-- The C compiler identification is GNU 4.6.3
-- The CXX compiler identification is GNU 4.6.3
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Using CATKIN_DEVEL_PREFIX: /home/stfn/devn/ros_dai_groovy_catkin/devel
-- Using CMAKE_PREFIX_PATH: /home/stfn/devn/ros_dai_groovy_catkin/devel;/opt/ros/groovy
-- This workspace overlays: /home/stfn/devn/ros_dai_groovy_catkin/devel;/opt/ros/groovy
-- Found PythonInterp: /usr/bin/python (found version "2.7.3") 
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found.
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- Using CATKIN_TEST_RESULTS_DIR: /home/stfn/devn/ros_dai_groovy_catkin/build/test_results
-- catkin 0.5.65
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 16 packages in topological order:
-- ~~  - ecto
-- ~~  - ecto_openni
-- ~~  - ecto_ros
-- ~~  - ecto_pcl
-- ~~  - object_recognition_msgs
-- ~~  - object_recognition_renderer
-- ~~  - opencv_candidate
-- ~~  - ecto_opencv
-- ~~  - ecto_image_pipeline
-- ~~  - object_recognition_core
-- ~~  - object_recognition_capture
-- ~~  - object_recognition_linemod
-- ~~  - object_recognition_reconstruction
-- ~~  - object_recognition_ros
-- ~~  - object_recognition_tod
-- ~~  - object_recognition_transparent_objects
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'ecto'
-- ==> add_subdirectory(ecto_kitchen/ecto)
-- Boost version: 1.46.1
-- Boost version: 1.46.1
-- Found the following Boost libraries:
--   date_time
--   python
--   regex
--   serialization
--   system
--   thread
-- Boost version 1.46.1
-- ECTO_EXCEPTION_SHARED_POINTERS_ARE_CONST: FALSE
-- ECTO_EXCEPTION_DIAGNOSTIC_IMPL_TAKES_CHARSTAR: TRUE
-- ECTO_EXCEPTION_RELEASE_RETURNS_VOID: FALSE
-- ECTO_EXCEPTION_TAG_TYPE_NAME_RETURNS_STRING: TRUE
-- ECTO_EXCEPTION_TYPE_INFO_NESTED: FALSE
-- ECTO_EXCEPTION_CONTAINER_WITHOUT_CLONE: FALSE
-- Found PythonLibs: /usr/lib/libpython2.7.so (found version "2.7.3") 
-- Found Git: /usr/bin/git (found version "1.7.9.5") 
-- ecto commit:       af3b7f557b92c46e2d73913d01148180723f8785
-- ecto tag (long):   0.5.5
-- ecto tag (short):  0.5.5
-- ecto last_mod:     Tue, 12 Mar 2013 18:42:30 -0700
-- +++ processing catkin package: 'ecto_openni'
-- ==> add_subdirectory(ecto_kitchen/ecto_openni)
-- OpenNI version 1.5.4
-- Boost version: 1.46.1
-- Found the following Boost libraries:
--   serialization
--   filesystem
--   system
--   thread
-- OpenNI headers: /usr/include/ni
-- +++ processing catkin package: 'ecto_ros'
-- ==> add_subdirectory(ecto_kitchen/ecto_ros)
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.26") 
-- checking for module 'eigen3'
--   found eigen3, version 3.0.5
-- Found Eigen: /usr/include/eigen3  
-- Eigen found (include: /usr/include/eigen3)
-- Data fetch.
** Downloading:
** http://vault.willowgarage.com/wgdata1/vol1/ecto_data/t01.bag
** to:
** /home/stfn/devn/ros_dai_groovy_catkin/build/ecto_kitchen/ecto_ros/data/t01.bag
-- +++ processing catkin package: 'ecto_pcl'
-- ==> add_subdirectory(ecto_kitchen/ecto_pcl)
-- Found eigen: /usr/include/eigen3  
-- Boost version: 1.46.1
-- Found the following Boost libraries:
--   system
--   filesystem
--   thread
--   date_time
--   iostreams
-- checking for module 'flann'
--   found flann, version 1.7.1
-- Found Flann: /opt/ros/groovy/lib/libflann_cpp_s.a  
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
** WARNING ** io features related to openni will be disabled
-- Found libusb-1.0: /usr/include  
-- Found qhull: /usr/lib/libqhull.so  
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
** WARNING ** visualization features related to openni will be disabled
-- looking for PCL_COMMON
-- Found PCL_COMMON: /opt/ros/groovy/lib/libpcl_common.so  
-- looking for PCL_KDTREE
-- Found PCL_KDTREE: /opt/ros/groovy/lib/libpcl_kdtree.so  
-- looking for PCL_OCTREE
-- Found PCL_OCTREE: /opt/ros/groovy/lib/libpcl_octree.so  
-- looking for PCL_SEARCH
-- Found PCL_SEARCH: /opt/ros/groovy/lib/libpcl_search.so  
-- looking for PCL_SAMPLE_CONSENSUS
-- Found PCL_SAMPLE_CONSENSUS: /opt/ros/groovy/lib/libpcl_sample_consensus.so  
-- looking for PCL_IO
-- Found PCL_IO: /opt/ros/groovy/lib/libpcl_io.so  
-- looking for PCL_FEATURES
-- Found PCL_FEATURES: /opt/ros/groovy/lib/libpcl_features.so  
-- looking for PCL_FILTERS
-- Found PCL_FILTERS: /opt/ros/groovy/lib/libpcl_filters.so  
-- looking for PCL_KEYPOINTS
-- Found PCL_KEYPOINTS: /opt/ros/groovy/lib/libpcl_keypoints.so  
-- looking for PCL_SURFACE
-- Found PCL_SURFACE: /opt/ros/groovy/lib/libpcl_surface.so  
-- looking for PCL_REGISTRATION
-- Found PCL_REGISTRATION: /opt/ros/groovy/lib/libpcl_registration.so  
-- looking for PCL_GEOMETRY
-- Found PCL_GEOMETRY: /opt/ros/groovy/include/pcl-1.6  
-- looking for PCL_SEGMENTATION
-- Found PCL_SEGMENTATION: /opt/ros/groovy/lib/libpcl_segmentation.so  
-- looking for PCL_VISUALIZATION
-- Found PCL_VISUALIZATION: /opt/ros/groovy/lib/libpcl_visualization.so  
-- looking for PCL_TRACKING
-- Found PCL_TRACKING: /opt/ros/groovy/lib/libpcl_tracking.so  
-- Found PCL: /usr/lib/libboost_python.so;/usr/lib/libboost_thread-mt.so;/usr/lib/libboost_system-mt.so;/usr/lib/libboost_filesystem-mt.so;pthread;/usr/lib/libboost_date_time-mt.so;/usr/lib/libboost_iostreams-mt.so;optimized;/opt/ros/groovy/lib/libpcl_common.so;debug;/opt/ros/groovy/lib/libpcl_common.so;optimized;/opt/ros/groovy/lib/libflann_cpp_s.a;debug;/opt/ros/groovy/lib/libflann_cpp_s-gd.a;optimized;/opt/ros/groovy/lib/libpcl_kdtree.so;debug;/opt/ros/groovy/lib/libpcl_kdtree.so;optimized;/opt/ros/groovy/lib/libpcl_octree.so;debug;/opt/ros/groovy/lib/libpcl_octree.so;optimized;/opt/ros/groovy/lib/libpcl_search.so;debug;/opt/ros/groovy/lib/libpcl_search.so;optimized;/opt/ros/groovy/lib/libpcl_sample_consensus.so;debug;/opt/ros/groovy/lib/libpcl_sample_consensus.so;vtkCommon;vtkRendering;vtkHybrid;optimized;/opt/ros/groovy/lib/libpcl_io.so;debug;/opt/ros/groovy/lib/libpcl_io.so;optimized;/opt/ros/groovy/lib/libpcl_features.so;debug;/opt/ros/groovy/lib/libpcl_features.so;optimized;/opt/ros/groovy/lib/libpcl_filters.so;debug;/opt/ros/groovy/lib/libpcl_filters.so;optimized;/opt/ros/groovy/lib/libpcl_keypoints.so;debug;/opt/ros/groovy/lib/libpcl_keypoints.so;optimized;/usr/lib/libqhull.so;debug;/usr/lib/libqhull.so;optimized;/opt/ros/groovy/lib/libpcl_surface.so;debug;/opt/ros/groovy/lib/libpcl_surface.so;optimized;/opt/ros/groovy/lib/libpcl_registration.so;debug;/opt/ros/groovy/lib/libpcl_registration.so;optimized;/opt/ros/groovy/lib/libpcl_segmentation.so;debug;/opt/ros/groovy/lib/libpcl_segmentation.so;optimized;/opt/ros/groovy/lib/libpcl_visualization.so;debug;/opt/ros/groovy/lib/libpcl_visualization.so;optimized;/opt/ros/groovy/lib/libpcl_tracking.so;debug;/opt/ros/groovy/lib/libpcl_tracking.so  
-- Boost version: 1.46.1
-- Found the following Boost libraries:
--   signals
--   thread
-- +++ processing catkin package: 'object_recognition_msgs'
-- ==> add_subdirectory(wg_perception/object_recognition_msgs)
-- Generating .msg files for action object_recognition_msgs/ObjectRecognition /home/stfn/devn/ros_dai_groovy_catkin/src/wg_perception/object_recognition_msgs/action/ObjectRecognition.action
-- object_recognition_msgs: 13 messages, 1 services
-- +++ processing catkin package: 'object_recognition_renderer'
-- ==> add_subdirectory(wg_perception/ork_renderer)
-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/i386-linux-gnu/libX11.so;/usr/lib/i386-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/i386-linux-gnu/libX11.so
-- Found OpenGL: /usr/lib/i386-linux-gnu/libGL.so  
-- checking for module 'assimp'
--   found assimp, version 2.0
-- Building assimp v3
-- Found GLUT: /usr/lib/i386-linux-gnu/libglut.so  
-- +++ processing catkin package: 'opencv_candidate'
-- ==> add_subdirectory(ecto_kitchen/opencv_candidate)
-- OpenCV version: 2.4.4
-- OpenCV headers: /opt/ros/groovy/include/opencv;/opt/ros/groovy/include
-- +++ processing catkin package: 'ecto_opencv'
-- ==> add_subdirectory(ecto_kitchen/ecto_opencv)
-- OpenCV version: 2.4.4
-- OpenCV headers: /opt/ros/groovy/include/opencv;/opt/ros/groovy/include
-- Adding support for v4l2 image capture
-- +++ processing catkin package: 'ecto_image_pipeline'
-- ==> add_subdirectory(ecto_kitchen/ecto_image_pipeline)
-- Eigen found (include: /usr/include/eigen3)
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
** WARNING ** io features related to openni will be disabled
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
** WARNING ** visualization features related to openni will be disabled
-- looking for PCL_COMMON
-- looking for PCL_KDTREE
-- looking for PCL_OCTREE
-- looking for PCL_SEARCH
-- looking for PCL_SAMPLE_CONSENSUS
-- looking for PCL_IO
-- looking for PCL_FEATURES
-- looking for PCL_FILTERS
-- looking for PCL_KEYPOINTS
-- looking for PCL_SURFACE
-- looking for PCL_REGISTRATION
-- looking for PCL_GEOMETRY
-- looking for PCL_SEGMENTATION
-- looking for PCL_VISUALIZATION
-- looking for PCL_TRACKING
-- Found PCL: /usr/lib/libboost_system-mt.so;/usr/lib/libboost_filesystem-mt.so;/usr/lib/libboost_thread-mt.so;/usr/lib/libboost_date_time-mt.so;/usr/lib/libboost_iostreams-mt.so;optimized;/opt/ros/groovy/lib/libpcl_common.so;debug;/opt/ros/groovy/lib/libpcl_common.so;optimized;/opt/ros/groovy/lib/libflann_cpp_s.a;debug;/opt/ros/groovy/lib/libflann_cpp_s-gd.a;optimized;/opt/ros/groovy/lib/libpcl_kdtree.so;debug;/opt/ros/groovy/lib/libpcl_kdtree.so;optimized;/opt/ros/groovy/lib/libpcl_octree.so;debug;/opt/ros/groovy/lib/libpcl_octree.so;optimized;/opt/ros/groovy/lib/libpcl_search.so;debug;/opt/ros/groovy/lib/libpcl_search.so;optimized;/opt/ros/groovy/lib/libpcl_sample_consensus.so;debug;/opt/ros/groovy/lib/libpcl_sample_consensus.so;vtkCommon;vtkRendering;vtkHybrid;optimized;/opt/ros/groovy/lib/libpcl_io.so;debug;/opt/ros/groovy/lib/libpcl_io.so;optimized;/opt/ros/groovy/lib/libpcl_features.so;debug;/opt/ros/groovy/lib/libpcl_features.so;optimized;/opt/ros/groovy/lib/libpcl_filters.so;debug;/opt/ros/groovy/lib/libpcl_filters.so;optimized;/opt/ros/groovy/lib/libpcl_keypoints.so;debug;/opt/ros/groovy/lib/libpcl_keypoints.so;optimized;/usr/lib/libqhull.so;debug;/usr/lib/libqhull.so;optimized;/opt/ros/groovy/lib/libpcl_surface.so;debug;/opt/ros/groovy/lib/libpcl_surface.so;optimized;/opt/ros/groovy/lib/libpcl_registration.so;debug;/opt/ros/groovy/lib/libpcl_registration.so;optimized;/opt/ros/groovy/lib/libpcl_segmentation.so;debug;/opt/ros/groovy/lib/libpcl_segmentation.so;optimized;/opt/ros/groovy/lib/libpcl_visualization.so;debug;/opt/ros/groovy/lib/libpcl_visualization.so;optimized;/opt/ros/groovy/lib/libpcl_tracking.so;debug;/opt/ros/groovy/lib/libpcl_tracking.so  
-- Found PythonLibs: /usr/lib/libpython2.7.so  
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
-- +++ processing catkin package: 'object_recognition_core'
-- ==> add_subdirectory(wg_perception/object_recognition_core)
-- Found PythonLibs: /usr/lib/libpython2.7.so (found version "2.7.3") 
-- Found CURL: /usr/lib/i386-linux-gnu/libcurl.so (found version "7.22.0") 
-- Eigen found (include: /usr/include/eigen3)
-- +++ processing catkin package: 'object_recognition_capture'
-- ==> add_subdirectory(wg_perception/capture)
-- +++ processing catkin package: 'object_recognition_linemod'
-- ==> add_subdirectory(wg_perception/linemod)
-- +++ processing catkin package: 'object_recognition_reconstruction'
-- ==> add_subdirectory(wg_perception/reconstruction)
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
** WARNING ** io features related to openni will be disabled
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
** WARNING ** visualization features related to openni will be disabled
-- looking for PCL_COMMON
-- looking for PCL_KDTREE
-- looking for PCL_OCTREE
-- looking for PCL_SEARCH
-- looking for PCL_SAMPLE_CONSENSUS
-- looking for PCL_IO
-- looking for PCL_FEATURES
-- looking for PCL_FILTERS
-- looking for PCL_KEYPOINTS
-- looking for PCL_SURFACE
-- looking for PCL_REGISTRATION
-- looking for PCL_GEOMETRY
-- looking for PCL_SEGMENTATION
-- looking for PCL_VISUALIZATION
-- looking for PCL_TRACKING
-- Found PythonLibs: /usr/lib/libpython2.7.so  
-- Eigen found (include: /usr/include/eigen3)
-- +++ processing catkin package: 'object_recognition_ros'
-- ==> add_subdirectory(wg_perception/object_recognition_ros)
-- Found PythonLibs: /usr/lib/libpython2.7.so (found version "2.7.3") 
-- Eigen found (include: /usr/include/eigen3)
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
** WARNING ** io features related to openni will be disabled
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
** WARNING ** visualization features related to openni will be disabled
-- looking for PCL_COMMON
-- looking for PCL_KDTREE
-- looking for PCL_OCTREE
-- looking for PCL_SEARCH
-- looking for PCL_SAMPLE_CONSENSUS
-- looking for PCL_IO
-- looking for PCL_FEATURES
-- looking for PCL_FILTERS
-- looking for PCL_KEYPOINTS
-- looking for PCL_SURFACE
-- looking for PCL_REGISTRATION
-- looking for PCL_GEOMETRY
-- looking for PCL_SEGMENTATION
-- looking for PCL_VISUALIZATION
-- looking for PCL_TRACKING
-- Found PCL: /usr/lib/libboost_python.so;/usr/lib/libboost_thread-mt.so;/usr/lib/libboost_system-mt.so;/usr/lib/libboost_filesystem-mt.so;/usr/lib/libboost_serialization-mt.so;/usr/lib/libboost_date_time-mt.so;/usr/lib/libboost_iostreams-mt.so;optimized;/opt/ros/groovy/lib/libpcl_common.so;debug;/opt/ros/groovy/lib/libpcl_common.so;optimized;/opt/ros/groovy/lib/libflann_cpp_s.a;debug;/opt/ros/groovy/lib/libflann_cpp_s-gd.a;optimized;/opt/ros/groovy/lib/libpcl_kdtree.so;debug;/opt/ros/groovy/lib/libpcl_kdtree.so;optimized;/opt/ros/groovy/lib/libpcl_octree.so;debug;/opt/ros/groovy/lib/libpcl_octree.so;optimized;/opt/ros/groovy/lib/libpcl_search.so;debug;/opt/ros/groovy/lib/libpcl_search.so;optimized;/opt/ros/groovy/lib/libpcl_sample_consensus.so;debug;/opt/ros/groovy/lib/libpcl_sample_consensus.so;vtkCommon;vtkRendering;vtkHybrid;optimized;/opt/ros/groovy/lib/libpcl_io.so;debug;/opt/ros/groovy/lib/libpcl_io.so;optimized;/opt/ros/groovy/lib/libpcl_features.so;debug;/opt/ros/groovy/lib/libpcl_features.so;optimized;/opt/ros/groovy/lib/libpcl_filters.so;debug;/opt/ros/groovy/lib/libpcl_filters.so;optimized;/opt/ros/groovy/lib/libpcl_keypoints.so;debug;/opt/ros/groovy/lib/libpcl_keypoints.so;optimized;/usr/lib/libqhull.so;debug;/usr/lib/libqhull.so;optimized;/opt/ros/groovy/lib/libpcl_surface.so;debug;/opt/ros/groovy/lib/libpcl_surface.so;optimized;/opt/ros/groovy/lib/libpcl_registration.so;debug;/opt/ros/groovy/lib/libpcl_registration.so;optimized;/opt/ros/groovy/lib/libpcl_segmentation.so;debug;/opt/ros/groovy/lib/libpcl_segmentation.so;optimized;/opt/ros/groovy/lib/libpcl_visualization.so;debug;/opt/ros/groovy/lib/libpcl_visualization.so;optimized;/opt/ros/groovy/lib/libpcl_tracking.so;debug;/opt/ros/groovy/lib/libpcl_tracking.so  
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found.
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt4: /usr/bin/qmake (found version "4.8.1") 
-- +++ processing catkin package: 'object_recognition_tod'
-- ==> add_subdirectory(wg_perception/tod)
-- Eigen found (include: /usr/include/eigen3)
-- +++ processing catkin package: 'object_recognition_transparent_objects'
-- ==> add_subdirectory(wg_perception/transparent_objects)
-- Boost version: 1.46.1
-- Found the following Boost libraries:
--   program_options
--   signals
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
** WARNING ** io features related to openni will be disabled
-- checking for module 'openni-dev'
--   package 'openni-dev' not found
-- Could NOT find openni (missing:  OPENNI_INCLUDE_DIRS) 
** WARNING ** visualization features related to openni will be disabled
-- looking for PCL_COMMON
-- looking for PCL_KDTREE
-- looking for PCL_OCTREE
-- looking for PCL_SEARCH
-- looking for PCL_SAMPLE_CONSENSUS
-- looking for PCL_IO
-- looking for PCL_FEATURES
-- looking for PCL_FILTERS
-- looking for PCL_KEYPOINTS
-- looking for PCL_SURFACE
-- looking for PCL_REGISTRATION
-- looking for PCL_GEOMETRY
-- looking for PCL_SEGMENTATION
-- looking for PCL_VISUALIZATION
-- looking for PCL_TRACKING
-- Found PCL: /usr/lib/libboost_program_options-mt.so;/usr/lib/libboost_signals-mt.so;/usr/lib/libboost_system-mt.so;/usr/lib/libboost_filesystem-mt.so;/usr/lib/libboost_thread-mt.so;/usr/lib/libboost_date_time-mt.so;/usr/lib/libboost_iostreams-mt.so;optimized;/opt/ros/groovy/lib/libpcl_common.so;debug;/opt/ros/groovy/lib/libpcl_common.so;optimized;/opt/ros/groovy/lib/libflann_cpp_s.a;debug;/opt/ros/groovy/lib/libflann_cpp_s-gd.a;optimized;/opt/ros/groovy/lib/libpcl_kdtree.so;debug;/opt/ros/groovy/lib/libpcl_kdtree.so;optimized;/opt/ros/groovy/lib/libpcl_octree.so;debug;/opt/ros/groovy/lib/libpcl_octree.so;optimized;/opt/ros/groovy/lib/libpcl_search.so;debug;/opt/ros/groovy/lib/libpcl_search.so;optimized;/opt/ros/groovy/lib/libpcl_sample_consensus.so;debug;/opt/ros/groovy/lib/libpcl_sample_consensus.so;vtkCommon;vtkRendering;vtkHybrid;optimized;/opt/ros/groovy/lib/libpcl_io.so;debug;/opt/ros/groovy/lib/libpcl_io.so;optimized;/opt/ros/groovy/lib/libpcl_features.so;debug;/opt/ros/groovy/lib/libpcl_features.so;optimized;/opt/ros/groovy/lib/libpcl_filters.so;debug;/opt/ros/groovy/lib/libpcl_filters.so;optimized;/opt/ros/groovy/lib/libpcl_keypoints.so;debug;/opt/ros/groovy/lib/libpcl_keypoints.so;optimized;/usr/lib/libqhull.so;debug;/usr/lib/libqhull.so;optimized;/opt/ros/groovy/lib/libpcl_surface.so;debug;/opt/ros/groovy/lib/libpcl_surface.so;optimized;/opt/ros/groovy/lib/libpcl_registration.so;debug;/opt/ros/groovy/lib/libpcl_registration.so;optimized;/opt/ros/groovy/lib/libpcl_segmentation.so;debug;/opt/ros/groovy/lib/libpcl_segmentation.so;optimized;/opt/ros/groovy/lib/libpcl_visualization.so;debug;/opt/ros/groovy/lib/libpcl_visualization.so;optimized;/opt/ros/groovy/lib/libpcl_tracking.so;debug;/opt/ros/groovy/lib/libpcl_tracking.so  
-- Found PythonLibs: /usr/lib/libpython2.7.so  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/stfn/devn/ros_dai_groovy_catkin/build
####
#### Running command: "make -j2 -l2" in "/home/stfn/devn/ros_dai_groovy_catkin/build"
####
Scanning dependencies of target ecto
[  0%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/abi.cpp.o
[  0%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/cell.cpp.o
[  0%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/edge.cpp.o
[  1%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/tendril.cpp.o
[  1%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/tendrils.cpp.o
[  1%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/plasm.cpp.o
[  1%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/plasm/impl.cpp.o
[  1%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/util.cpp.o
[  1%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/log.cpp.o
[  2%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/except.cpp.o
[  2%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/parameters.cpp.o
[  2%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/profile.cpp.o
[  2%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/python.cpp.o
[  2%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/registry.cpp.o
[  2%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/rethrow.cpp.o
[  2%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/serialization.cpp.o
[  3%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/scheduler.cpp.o
[  3%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/ecto/impl/invoke.cpp.o
[  3%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/strand.cpp.o
[  3%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/test.cpp.o
^A[  3%] Building CXX object ecto_kitchen/ecto/src/lib/CMakeFiles/ecto.dir/time.cpp.o
Linking CXX shared library /home/stfn/devn/ros_dai_groovy_catkin/devel/lib/libecto.so
[  3%] Built target ecto
Scanning dependencies of target gtest
[  3%] Building CXX object gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o

@vrabaud
Copy link
Member

vrabaud commented Apr 16, 2013

ok, good (?) news, other people have something similar in totally digferent packages:
http://answers.ros.org/question/57240/camera-calibration-crashes/
Precise 32 bits ....

@beetleskin
Copy link
Author

shit ... anything I can do? due to our ros stacks we're still bound to fuerte and 32bit ... If not you can close this issue and I go somewhere crying.

@vrabaud
Copy link
Member

vrabaud commented Apr 17, 2013

Some of the samples you mention need fixes but that main bug really is about 32 bit. You seem fairly competent so I am please requesting your help to fix what is not (almost officially) and OpenCV bug for 32 bit.
Some people say that if they compile OpenCV themselves, it works. Can you please compile 2.4.4 (not 2.4.5) yourself and try to have a -O3 flag when compiling (just ccmake in the build folder and you'll see the flag in the advanced parameters). Tell me if that works. That should not. Then please try -O2. In both cases, please use sse3. Thx a bunch !

@beetleskin
Copy link
Author

talking of competence ... I'm not sure how to convince cmake (in a groovy catkin-workspace) to ignore the groovy opencv package and use the system opencv resp. self-compiled instead ...

@vrabaud
Copy link
Member

vrabaud commented Apr 23, 2013

well, you need to look at the cmake variables: just use ccmake or cmake-gui in your build folder and you can change the OpenCV it is using there I think

@vrabaud
Copy link
Member

vrabaud commented Apr 23, 2013

btw, I just pushed OpenCV 2.4.5, does that fix anything for you ?

@beetleskin
Copy link
Author

Where did you push it?
I changed to set the opencv-config to my custom build and it seems, that it works for the include files. however the perception-libraries are still linked to the groovy-opencv-stack libs ...

@vrabaud
Copy link
Member

vrabaud commented Apr 30, 2013

I pushed 2.4.5 to ROS. It's also on the github website if you want to compile from source.
You can also overwrite the libraries in /opt/ros/groovy/lib: sure it's ugly, but that will work.

@vrabaud
Copy link
Member

vrabaud commented May 6, 2013

How foolish of me to think there was a bug in OpenCV :) I was able to reproduce it and I fixed ecto_opencv, can you please confirm that this does not crash for you anymore ?

@beetleskin
Copy link
Author

Sorry for the long abstinence, busy times. But yes, runs like a charme with the ros-fuerte stacks! Thanks a lot for the effort. I push the allmighty close-button then :)

Where was the bug in the end?

@vrabaud
Copy link
Member

vrabaud commented Jun 2, 2013

I was passing a matrix upstream for R and T even when no valid results where found: they contained invalid data that would actually be partly valid sometimes. Now, I send back an empty matrix in such cases, so no more playing with random data.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants