problem with viso2 "visual odometer got lost" [closed]
hi i am having some problem with the viso2 package's stereo odometry,it gives me "visual odometer got lost" when i am trying to run the launch file.I am currently using 2 Ueye UI-1226LE - USB 2.0 Camera for the stereo odometry.Below are the error that it gives me.
SUMMARY
========
PARAMETERS
* /dynparam_ubuntu_14461_8489014763432242877/auto_exposure
* /dynparam_ubuntu_14461_8489014763432242877/frame_rate
* /dynparam_ubuntu_14461_8489014763432242877/l_pixel_clock
* /dynparam_ubuntu_14461_8489014763432242877/r_pixel_clock
* /dynparam_ubuntu_14461_8489014763432242877/zoom
* /kitty_stereo/stereo_image_proc/correlation_window_size
* /kitty_stereo/stereo_image_proc/disparity_range
* /kitty_stereo/stereo_image_proc/min_disparity
* /kitty_stereo/stereo_image_proc/prefilter_cap
* /kitty_stereo/stereo_image_proc/prefilter_size
* /kitty_stereo/stereo_image_proc/speckle_range
* /kitty_stereo/stereo_image_proc/speckle_size
* /kitty_stereo/stereo_image_proc/texture_threshold
* /kitty_stereo/stereo_image_proc/uniqueness_ratio
* /rosdistro
* /rosversion
* /use_sim_time
NODES
/kitty_stereo/
stereo_image_proc (stereo_image_proc/stereo_image_proc)
/
base_link_to_camera (tf/static_transform_publisher)
dynparam_ubuntu_14461_8489014763432242877 (dynamic_reconfigure/dynparam)
rosbag (rosbag/play)
stereo_odometer (viso2_ros/stereo_odometer)
ROS_MASTER_URI=http:// localhost:11311
core service [/rosout] found
process[base_link_to_camera-1]: started with pid [14521]
process[rosbag-2]: started with pid [14539]
process[kitty_stereo/stereo_image_proc-3]: started with pid [14556]
process[stereo_odometer-4]: started with pid [14577]
[ INFO] [1390285927.188771517]: Subscribing to:
* /kitty_stereo/left/image_rect
* /kitty_stereo/right/image_rect
* /kitty_stereo/left/camera_info
* /kitty_stereo/right/camera_info
process[dynparam_ubuntu_14461_8489014763432242877-5]: started with pid [14602]
[ INFO] [1390285927.228780458]: Basic Odometer Settings:
odom_frame_id = /odom
base_link_frame_id = /base_link
publish_tf = true
[ INFO] [1390285928.211526383, 1385798595.722205257]: Retrieving initial transform for /base_link to /camera.
[ INFO] [1390285928.211638745, 1385798595.722205257]: Initialized libviso2 stereo odometry with the following parameters:
Calibration parameters:
f = 1504.27
cu = 188.791
cv = 59.5449
Matcher parameters:
nms_n = 3
nms_tau = 50
match_binsize = 50
match_radius = 200
match_disp_tolerance = 2
outlier_disp_tolerance = 5
outlier_flow_tolerance = 5
multi_stage = 1
half_resolution = 1
refinement = 1
Bucketing parameters:
max_features = 2
bucket_width = 50
bucket_height = 50
Stereo odometry parameters:
base = 0.281359
ransac_iters = 200
inlier_threshold = 1.5
reweighting = 1
ref_frame_change_method = 0
ref_frame_motion_threshold = 5
ref_frame_inlier_threshold = 150
[ WARN] [1390285928.216198038, 1385798595.722205257]: Visual Odometer got lost!
[dynparam_ubuntu_14461_8489014763432242877-5] process has finished cleanly
log file: /home/acsc/.ros/log/a56e242a-8245-11e3-bf8d-48022a9ad0c5/dynparam_ubuntu_14461_8489014763432242877-5*.log
[ WARN] [1390285929.245663614, 1385798596.751227928]: Visual Odometer got lost!
[ WARN] [1390285930.250121013, 1385798597.777895990]: Visual Odometer got lost!
[ WARN] [1390285931.248951670, 1385798598.781152478]: Visual Odometer got lost!
[ WARN] [1390285932.318369814, 1385798599.847003310]: Visual Odometer got lost!
[ WARN] [1390285933.353832605, 1385798600.882260371]: Visual Odometer got lost!
[ WARN] [1390285934.417855748, 1385798601.942012156]: Visual Odometer got lost!
[ WARN] [1390285935.456077597, 1385798602.975817837]: Visual Odometer got lost!
[ WARN] [1390285936.456490832, 1385798603.986285772]: Visual Odometer got lost!
[ WARN] [1390285937.527047462, 1385798605.048900696]: Visual Odometer got lost!
[ WARN] [1390285938.559818811, 1385798606.088479625]: Visual Odometer got lost!
[ WARN] [1390285939.594780232, 1385798607.122738611]: Visual Odometer got lost!
and this is the launch file i am currently using
<launch>
<!-- Arguments -->
<arg name="kitty_01" default="/home/acsc/fuerte_workspace/sandbox/kitti_01.bag"/> <!-- Your bagfile here -->
<arg name="camera" default="/kitty_stereo" /> <!-- The namespace where images are published -->
<arg name="disparity_params" default="/home/acsc/fuerte_workspace/sandbox/disparity_params.yaml"/> <!-- Camera calibration parameters -->
<param name="/use_sim_time" value="true"/>
<node pkg="tf" type="static_transform_publisher" name="base_link_to_camera" args="0 0 0 0 0 0 /base_link /camera 100 " />
<!-- Run the rosbag -->
<node pkg="rosbag" type="play" name="rosbag" args="--clock $(arg kitty_01)"/>
<!-- Run the ROS package stereo_image_proc -->
<group ns="$(arg camera)" >
<node pkg="stereo_image_proc" type="stereo_image_proc" name="stereo_image_proc">
<rosparam file="$(arg disparity_params)"/>
</node>
</group>
<!-- Run the viso2_ros package -->
<node pkg="viso2_ros ...
Your parameters and launch file look alright. Have you checked the `/stereo_odometer/info` topic? Does the disparity image of your stereo system look good? You can also have a look at the point cloud published by the odometer to see if features are detected. Do you get errors without motion?
Hi the disparity image of stereo system looks fine,I get errors even without motion.Does the tf have something to do with the error?can you show me what should I do for the tf as I am not very sure.as for the others can I get back to you in 2 days time cause I am currently away.thanks for the help
hi i have added the result that i have got from the /stereo_odometer/info topic above.
For the point cloud i tried using rviz but it gives me a error "For frame [/camera]: No transform to fixed frame [/odom]. TF error: [Unable to lookup transform, cache is empty, when looking up transform from frame [/camera] to frame [/odom]]"
hi i have also notice that after a certain amount of time the program will say "[rosbag-2] process has finished cleanly".The bagfile i am using is "set_01 (grayscale)" from www6.in.tum.de/~kloses/rvc/kitti_bags/
12 matches with 6 inliers is poor. viso2 works normally with thousands of matches. It seems that either your system is not well calibrated or the scene has no features. For rviz, try setting the fixed frame to your cam frame. As VO calculation fails, odom->base_link is not published by viso2_ros.
ok thanks,for the base_line of the camera if the calculated base_line is 0.281 meter while my actual base_line is 0.285 meter does it make a huge difference? For the length of the chessboard square i use is 0.093 meter is it ok?
And from what you see is there any problem with my code or is it the problem with the calibration or the scene has no features?