Ask Your Question

viso2 tf_tree problem [closed]

asked 2016-02-11 09:52:31 -0500

moody gravatar image

Hello to everybody.

I want to use the mono odometer from vo for Odometry in the robot_localization. The first step which is allready not working is the vo. I always get the following error message:

[ WARN] [1455205411.959462457]: The tf from 'base_link' to 'camera' does not seem to be available, will assume it as identity!

I allready looked for 2 days for a solution but i just found out that i have to use a static what i allready did. I use a static transform for the odom->base_link

my launchfile looks linke this:


<!-- **********Run the ROS package image_proc********** -->
    <node ns="camera" pkg="image_proc" type="image_proc" name="image_proc">

<!-- **********Run the viso2_ros package********** -->
<node pkg="viso2_ros" type="mono_odometer" name="mono_odometer" output="screen">
    <remap from="image" to="camera/image_rect"/>
    <param name="odom_frame_id" value="odom"/>
    <param name="base_link_frame_id" value="base_link"/>
    <param name="publish_tf" value="true"/>
    <param name="invert_tf" value="false"/>

    <!-- Matcher params -->
    <param name="nms_n" value="3" /><!-- default:3 Minimum distance between maxima in pixels for non-maxima-suppression 2-->
    <param name="nms_tau" value="50" /><!-- default:50 Interest point peakiness threshold 60-->
    <param name="match_binsize" value="50" /><!-- default:50 Matching width/height (affects efficiency only)  60-->
    <param name="match_radius" value="200" /><!-- default:200 Matching radius (du/dv in pixels)  110-->
    <param name="match_disp_tolerance" value="2" /><!-- default:2 dv tolerance for stereo matches (in pixels). 2-->
    <param name="outlier_disp_tolerance" value="5" /><!-- default:5 Disparity tolerance for outlier removal (in pixels).  10-->
    <param name="outlier_flow_tolerance" value="5" /><!-- default:5 Flow tolerance for outlier removal (in pixels).  5-->
    <param name="multi_stage" value="1" /><!-- default:1 0=disabled, 1=multistage matching (denser and faster).  -->
    <param name="half_resolution" value="1" /><!-- default:1 0=disabled, 1=match at half resolution, refine at full resolution. -->
    <param name="refinement" value="1" /><!-- default:1 0=none, 1=pixel, 2=subpixel.  -->

    <!-- Bucketing params -->
    <param name="max_features" value="2" /><!-- default:2 Maximum number of features per bucket 15-->
    <param name="bucket_width" value="50.0" /><!-- default:50.0 Width of the bucket 60-->
    <param name="bucket_height" value="50.0" /><!-- default:50.0 Height of the bucket 60-->

    <!-- Mono params -->
    <param name="camera_height" value="1.0" /><!-- Height of the camera above the ground in meters. -->
    <param name="camera_pitch" value="0.0" /><!-- Pitch of the camera in radiants, negative pitch means looking downwards.  -->
    <param name="ransac_iters" value="2000" /><!-- Number of RANSAC iterations.  -->
    <param name="inlier_threshold" value="0.00001" /><!-- Fundamental matrix inlier threshold.  -->
    <param name="motion_threshold" value="100.0" /><!-- Threshold for stable fundamental matrix estimation.  -->
<node pkg="tf" type="static_transform_publisher" name="camera_broadcaster" args="0 0 0 1.5708 -1.5708 0 base_link camera 150" />


i need the tranform for moving the camera in the right direction. if i dont use the tf and the identity is used i can only use the VO with a pointing to the ceeling camera.

maybe im missing something or not seeing something.

thanks for any help.

edit retag flag offensive reopen merge delete

Closed for the following reason question is not relevant or outdated by tfoote
close date 2017-04-20 14:25:45.468022

1 Answer

Sort by ยป oldest newest most voted

answered 2016-03-15 11:19:11 -0500

Miquel Massot gravatar image

Hi moody,

if you don't set the transformation between /base_link and /camera, the odometry measurements will be relative to the camera axis (z forward, x right, y down). If you know where the camera is placed relative to the robot /base_link, you can provide a static transform as you did in order to receive the odometry readings in the robot coordinate system.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2016-02-11 09:52:31 -0500

Seen: 365 times

Last updated: Mar 15 '16