Ask Your Question
0

Use asus xtion pro (0601) and fovis_ros for visual odometry [closed]

asked 2015-08-10 23:12:37 -0600

wsAndy gravatar image

Hello everyone,

I run ROS indigo in ubuntu 64bit. I want to use asus xtion pro live (0601),which could not be identified by openni_launch, with fovis_ros. As openni2_launch didn't release gray image but fovis_ros need it, so I change camera/rgb/image_raw to camera/rgb/image_rect_mono with another node which is wrote by myself.

But I couldn't get the odometry topic , I don't know where the problem is?

Thanks first!

Here is my launch file.

<launch>
  <include file="$(find openni2_launch)/launch/openni2.launch"/>
  <arg name="camera" default="camera" />
  <node pkg="nodelet" type="nodelet" args="manager" name="nodelet_manager" />
  <node pkg="nodelet" type="nodelet" name="convert_openni_fovis" 
    args="load depth_image_proc/convert_metric nodelet_manager">
<remap from="image_raw" to="$(arg camera)/depth_registered/sw_registered/image_rect_raw"/>
<remap from="image" to="$(arg camera)/depth_registered/image_rect"/>
  </node>
<node pkg="fovis_ros" type="fovis_mono_depth_odometer" name="kinect_odometer" >
<remap from="/camera/rgb/image_rect" to="$(arg camera)/rgb/image_rect_mono" />
<remap from="/camera/rgb/camera_info" to="$(arg camera)/rgb/camera_info" />
<remap from="/camera/depth_registered/camera_info" to="$(arg camera)/depth_registered/sw_registered/camera_info" />
<remap from="/camera/depth_registered/image_rect" to="$(arg camera)/depth_registered/image_rect" />
<param name="approximate_sync" type="bool" value="True" />
</node>
</launch>
edit retag flag offensive reopen merge delete

Closed for the following reason question is not relevant or outdated by tfoote
close date 2016-09-14 14:36:51.440900

1 Answer

Sort by ยป oldest newest most voted
0

answered 2015-08-11 01:17:44 -0600

wsAndy gravatar image

Well , now I change the launch file. And I can get kinect_odometry/odometry.

My launch file

  <launch>
      <arg name="camera" default="camera" />
      <node pkg="nodelet" type="nodelet" args="manager" name="nodelet_manager" />
      <node pkg="nodelet" type="nodelet" name="convert_openni_fovis"
    args="load depth_image_proc/convert_metric nodelet_manager">
        <remap from="image_raw" to="$(arg camera)/depth_registered/sw_registered/image_rect_raw"/>
        <remap from="image" to="$(arg camera)/depth_registered/sw_registered/image_rect_raw"/>
      </node>
      <node pkg="fovis_ros" type="fovis_mono_depth_odometer" name="kinect_odometer" >
         <remap from="/camera/rgb/image_rect" to="$(arg camera)/rgb/image_rect_color" />
         <remap from="/camera/rgb/camera_info" to="$(arg camera)/rgb/camera_info" />
         <remap from="/camera/depth_registered/camera_info" to="$(arg camera)/depth_registered/camera_info" />
         <remap from="/camera/depth_registered/image_rect" to="$(arg camera)/depth_registered/image_raw" />
         <param name="approximate_sync" type="bool" value="True" />
         <param name="publish_tf" type="bool" value="False" />
      </node>
   </launch>

But when I listen to the kinect_odometry/odometry the speed is really slow. Here is the solution when I use rostopic hz /kinect_odometry/odometry

subscribed to [/kinect_odometer/odometry]
average rate: 1.110
min: 0.031s max: 2.349s std dev: 1.03080s window: 4
no new messages
average rate: 0.816
min: 0.031s max: 2.349s std dev: 1.05589s window: 5
no new messages
no new messages
average rate: 0.814
min: 0.031s max: 2.349s std dev: 1.04865s window: 7
average rate: 0.986
min: 0.008s max: 2.349s std dev: 0.99807s window: 9
average rate: 0.937
min: 0.008s max: 2.349s std dev: 0.95311s window: 10
average rate: 1.149
min: 0.008s max: 2.349s std dev: 0.89629s window: 13
average rate: 1.134
min: 0.008s max: 2.349s std dev: 0.86203s window: 14
no new messages
no new messages
average rate: 1.099
min: 0.008s max: 2.728s std dev: 0.93666s window: 17
average rate: 1.325
min: 0.008s max: 2.728s std dev: 0.86837s window: 22
no new messages
average rate: 1.345
min: 0.008s max: 2.728s std dev: 0.83081s window: 25
average rate: 1.321
min: 0.008s max: 2.728s std dev: 0.81679s window: 26
average rate: 1.362
min: 0.008s max: 2.728s std dev: 0.79061s window: 28
average rate: 1.383
min: 0.008s max: 2.728s std dev: 0.76532s window: 30
average rate: 1.465
min: 0.008s max: 2.728s std dev: 0.73953s window: 33
no new messages
average rate: 1.962
min: 0.008s max: 2.728s std dev: 0.68506s window: 48
average rate: 2.047
min: 0.008s max: 2.728s std dev: 0.67079s window: 51
average rate: 2.015
min: 0.008s max: 2.728s std dev: 0.65956s window: 53

And the /kinect_odometry/odometry 's tf is not right. Here is the information.

header: 
  seq: 1024
  stamp: 
secs: 1439273720
nsecs: 388915054
  frame_id: /odom
child_frame_id: /base_link
pose: 
  pose: 
    position: 
      x: 0.139448156997
      y: -0.227385449773
      z: 0.124124237032
    orientation: 
      x: -0.0633254242434
      y: -0.0353054853487
      z: 0.0757631766723
      w: 0.994486477741
  covariance: [0.0, 0 ...
(more)
edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2015-08-10 23:12:37 -0600

Seen: 422 times

Last updated: Aug 11 '15