srv / fovis

ROS wrapper for fovis, a visual odometry library
23 stars 21 forks source link

Problem using fovis on ROS. #6

Closed limhyon closed 10 years ago

limhyon commented 10 years ago

Environment: Ubuntu 12.04, ROS-Hydro.

Hi, I executed openni node by following command. $ roslaunch openni_launch openni.launch And I have made some mappings of topics by followings.

However, I got Segmentation Fault and NO_DATA output.

[ INFO] [1402637548.003299708]: Initialized fovis odometry with the following options: bucket_height = 80 bucket_width = 80 clique_inlier_threshold = 0.1 fast_threshold = 20 fast_threshold_adaptive_gain = 0.005 feature_search_window = 25 feature_window_size = 9 inlier_max_reprojection_error = 1.5 max_keypoints_per_bucket = 25 max_mean_reprojection_error = 10.0 max_pyramid_level = 3 min_features_for_estimate = 10 min_pyramid_level = 0 ref_frame_change_threshold = 150 stereo_max_disparity = 128 stereo_max_dist_epipolar_line = 1.5 stereo_max_refinement_displacement = 1.0 stereo_require_mutual_match = true target_pixels_per_feature = 250 update_target_features_with_refined = false use_adaptive_threshold = true use_bucketing = true use_homography_initialization = true use_image_normalization = false use_subpixel_refinement = true

[ WARN] [1402637548.018896710]: fovis odometry status: NO_DATA [fovis-1] process has died [pid 15181, exit code -11, cmd /home/asctec/catkin_ws/devel/lib/fovis_ros/fovis_mono_depth_odometer /camera/rgb/image_rect:=/camera/rgb/image_color /camera/depth_registered/image_rect:=/camera/depth/image_rect /camera/depth_registered/camera_info:=/camera/depth/camera_info name:=fovis log:=/home/asctec/.ros/log/1226ddfa-f2bc-11e3-b876-c4d9875b3f38/fovis-1.log]. log file: /home/asctec/.ros/log/1226ddfa-f2bc-11e3-b876-c4d9875b3f38/fovis-1*.log all processes on machine have died, roslaunch will exit shutting down processing monitor... ... shutting down processing monitor complete done

miquelmassot commented 10 years ago

Hi limhyon,

have you rectified the images? fovis is expecting rectified topics. Otherwise, it will not work.

Take a look here

limhyon commented 10 years ago

Hi. I am using off-the-shelf Kinect for now. I think openni itself has proper calibration data of Kinect. By the way, what launch file are you using for kinect? In my case

$ roslaunch openni_launch openni.launch

miquelmassot commented 10 years ago

Try this launchfile

limhyon commented 10 years ago

I am already using it. But it does not launch openni. I meant what openni launch file was used to get proper rectified image for the Kinect? Thank you for the quick response.

miquelmassot commented 10 years ago

I've now seen in your error that you've changed the depth_registered to "depth". Can you try with the other topic (depth_registered) and with a mono image?

limhyon commented 10 years ago

I've made the launch file as repository. But, I couldn't get depth image. Do you know why? Do I have to run something other nodes to get registered depth images? I can see depth image on rviz but not that topic (/camera/depth_registered/image_rect).

[ WARN] [1402652587.381119721]: [mono_processor] Low number of synchronized image/depth/image_info/depth_info tuples received. Images received: 174 (topic '/camera/rgb/image_rect_mono') Depth images received: 0 (topic '/camera/depth_registered/image_rect') Image camera info received: 175 (topic '/camera/rgb/camera_info') Depth camera info received: 0 (topic '/camera/depth_registered/sw_registered/camera_info') Synchronized tuples: 0

So, could you tell me what exactly did you executed to get odometer data? Just fovis should be not. You might get something other recipes (e.g., some combination of launch file).

miquelmassot commented 10 years ago

You have to enable it in openni node using param depth_registration (bool, default: false) If true, uses OpenNI's factory-calibrated depth->RGB registration.

limhyon commented 10 years ago

What is the purpose of convert_openni_fovis? I can only obtain depth image from /camera/depth_registered/image_raw. Other is not. But the error is following

[ERROR] [1402670819.300889206]: Depth image must be in 32bit floating point format!

Could you please run your side launch file, and confirm it is working?

miquelmassot commented 10 years ago

I didn't understand very well your last post. What do you mean by "Other is not"? Please, read the nodelet information

Nodelet to convert raw uint16 depth image in mm to float depth image in m.

I think that's what you are missing. I cannot test it because I don't have any available kinect.

limhyon commented 10 years ago

Thanks for the reply. Let me clarify my problem.

  1. I have clean installed Ubuntu + ROS
  2. I turned on depth_registration flag on openni.launch.
  3. $ roslaunch openni_launch openni.launch
  4. $ roslaunch fovis_ros fovis_hydro_openni.launch

It does not work. Reasons:

  1. /camera/depth_registered/sw_registered/camera_info
    • nothing outputs
  2. /camera/depth_registered/image_rect
    • nothing outputs

I downloaded Kinect calibration data, and it is located ${HOME}/.ros/camera_info/depth_A00362A04444102A.yaml ${HOME}/.ros/camera_info/rgb_A00362A04444102A.yaml

But how did you wrote fovis_hydro_openni.launch? Why nothing outputs of default launch file?

miquelmassot commented 10 years ago

I've just edited the available launchfile to suit your needs. I cannot try it, but it's the way I think it should work. See it here.

limhyon commented 10 years ago

Thank you very much. Your script provide proper images. However, I got following outputs.

http://pastie.org/9287037

I executed with option launch-prefix="xterm -e gdb --args" to debug.

I got following huge error (with gdb)

http://pastie.org/9287042

limhyon commented 10 years ago

I've changed my RGBD driver to freenect, and it seems outputs all things correctly. However, in libfovis, the error occurred. It is very frustrating. Can anyone run current status of fovis_ros and check whether is running or not?

limhyon commented 10 years ago

I found that one difference between working and not working is that Eigen version difference. The one that is working (not from ROS, standalone) prints out Eigen ver:3.2.1 "Eigen ver:" << EIGEN_WORLD_VERSION << "." << EIGEN_MAJOR_VERSION << "." << EIGEN_MINOR_VERSION

But ROS 3.0.5

limhyon commented 10 years ago

I just finished to check whether the Eigen is a problem or not. Actually, it is not a problem. I've compiled fovis standalone with Eigen 3.0.5, it works well. Hmm..

miquelmassot commented 10 years ago

Check that you are using libfovis and fovis, both from github (hydro-devel branch)

If you're using libfovis as a debian package, try to remove it and clone our repo.

On 14 June 2014 07:56, Hyon Lim notifications@github.com wrote:

I've changed my RGBD driver to freenect, and it seems outputs all things correctly. However, in libfovis, the error occurred. It is very frustrating. Can anyone run current status of fovis_ros and check whether is running or not?

— Reply to this email directly or view it on GitHub https://github.com/srv/fovis/issues/6#issuecomment-46080352.

Miquel Massot

miquel.massot@gmail.com http://www.facebook.com/massot http://www.twitter.com/resisteix http://gplus.to/massot

limhyon commented 10 years ago

I am 100% sure that I've cloned github repository of both libfovis and fovis.

miquelmassot commented 10 years ago

Hi,

I've just downloaded the dataset Sequence 'freiburg1_xyz' from here and tested it with fovis using this launchfile. It's normal that fovis outputs a NO_DATA message once, when it's initializing. Check that the topic

/kinect_odometer/odometry

has something. Can you test the same?

limhyon commented 10 years ago

Ok. I will firstly test sequence. I will let you know the result soon.

On Saturday, June 14, 2014, Miquel Massot notifications@github.com wrote:

Hi,

I've just downloaded the dataset Sequence 'freiburg1_xyz' from here http://vision.in.tum.de/data/datasets/rgbd-dataset/download and tested it with fovis using this launchfile https://gist.github.com/miquelmassot/d5583ba27b9ab4bf7a42. It's normal that fovis outputs a NO_DATA message once, when it's initializing. Check that the topic

/kinect_odometer/odometry

has something. Can you test the same?

— Reply to this email directly or view it on GitHub https://github.com/srv/fovis/issues/6#issuecomment-46085072.

limhyon commented 10 years ago

In my case, it is also crashed. Same error as Kinect running. What version of linux did you used?

$ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 12.04.2 LTS Release: 12.04 Codename: precise

$ uname -a Linux machine 3.5.0-34-generic #55~precise1-Ubuntu SMP Fri Jun 7 16:25:50 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

$ rosversion -d hydro.

I think all is okay. But I do not know why it has error.

miquelmassot commented 10 years ago

This is what I have. You may want to update to 12.04.4

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.4 LTS Release: 12.04 Codename: precise

$ uname -a Linux miquel-uib 3.8.0-42-generic #62~precise1-Ubuntu SMP Wed Jun 4 22:04:18 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

$ rosversion -d hydro

On 14 June 2014 16:24, Hyon Lim notifications@github.com wrote:

In my case, it is also crashed. Same error as Kinect running. What version of linux did you used?

$ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 12.04.2 LTS Release: 12.04 Codename: precise

$ uname -a Linux machine 3.5.0-34-generic #55~precise1-Ubuntu SMP Fri Jun 7 16:25:50 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

$ rosversion -d hydro.

I think all is okay. But I do not know why it has error.

— Reply to this email directly or view it on GitHub https://github.com/srv/fovis/issues/6#issuecomment-46090811.

Miquel Massot

miquel.massot@gmail.com http://www.facebook.com/massot http://www.twitter.com/resisteix http://gplus.to/massot

limhyon commented 10 years ago

Ok. I will try 12.04.4 LTS, and see it is working or not.

limhyon commented 10 years ago

Issue resolved. The problem is not figured out thoroughly, but clean installed Ubuntu does not have the problem.

miquelmassot commented 10 years ago

Could you tell the difference between a free install and what you had?