Robotics StackExchange | Archived questions

viso2 mono_odometry tf problem

Hi,

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

[ 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 baselink to camerargbopticalframe 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"/>
</group>
<!-- 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`

Asked by mwolf on 2017-09-22 05:07:15 UTC

Comments

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

Asked by LU_Xiaojun on 2018-05-30 02:21:57 UTC

I do not exactly remember how I fixed it, but you can check my launch files here: https://github.com/mowolf/lab-ros-workspace/tree/master/odometry_fusion/launch Have a look at mono_odometry.launch and mondo_odometry_simple.launch

Asked by mwolf on 2018-05-30 04:03:47 UTC

I have looked at mono_odometry_simple.launch, but i can't understand , how should I write my launch file? Thank you, Mwolf.

Asked by LU_Xiaojun on 2018-05-30 05:11:23 UTC

Answers