viso2 mono_odometry tf problem

asked 2017-09-22 05:07:15 -0500

mwolf gravatar image


I have a problem with mono_odometry fron viso2. The node does publish the odometry topic properly but I get this message. Notice the missing / at camera_rgb_optical_frame.

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

But a valid tf transform from base_link to camera_rgb_optical_frame is being published:

$ rosrun tf tf_monitor base_link camera_rgb_optical_frame 
RESULTS: for base_link to camera_rgb_optical_frame
**Chain is: base_link -> top_plate_link -> sensor_arch_mount_link -> camera_link -> camera_rgb_frame -> camera_rgb_optical_frame**
    Net delay     avg = -0.0247312: max = 0.068892

Is there a configuration error? Why does the warning message show camera_rgb_optical_frame without the /? Did I miss something?

Here is my launch file:


<!-- Arguments -->

<arg name="camera" default="/camera/rgb" /> <!-- The namespace where images are published -->

<!-- Run the ROS package stereo_image_proc -->
<group ns="$(arg camera)" >
    <node 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="$(arg camera)/image_rect"/>
    <remap from="/mono_odometer/odometry" to="/odometry/mono"/>

    <!-- Matcher params -->
    <param name="nms_n" value="3" />
    <param name="nms_tau" value="50" />
    <param name="match_binsize" value="50" />
    <param name="match_radius" value="200" />
    <param name="match_disp_tolerance" value="2" />
    <param name="outlier_disp_tolerance" value="5" />
    <param name="outlier_flow_tolerance" value="5" />
    <param name="multi_stage" value="1" />
    <param name="half_resolution" value="1" />
    <param name="refinement" value="1" />

    <!-- Bucketing params -->
    <param name="max_features" value="2" />
    <param name="bucket_width" value="50" />
    <param name="bucket_height" value="50" />

    <!-- Mono params -->
    <param name="camera_height" value="1.0" />
    <param name="camera_pitch" value="0.0" />
    <param name="ransac_iters" value="2000" />
    <param name="inlier_threshold" value="1e-5" />
    <param name="motion_threshold" value="100" />
</node>`enter code here`


edit retag flag offensive close merge delete


Hi mwolf: I have the same question, have you solved it? Thank you.

LU_Xiaojun gravatar imageLU_Xiaojun ( 2018-05-30 02:21:57 -0500 )edit

I do not exactly remember how I fixed it, but you can check my launch files here: Have a look at mono_odometry.launch and mondo_odometry_simple.launch

mwolf gravatar imagemwolf ( 2018-05-30 04:03:47 -0500 )edit

I have looked at mono_odometry_simple.launch, but i can't understand <arg name="camera" default="/camera/rgb"/>, how should I write my launch file? Thank you, Mwolf.

LU_Xiaojun gravatar imageLU_Xiaojun ( 2018-05-30 05:11:23 -0500 )edit