RTAB-MAP with external Odometry

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

RTAB-MAP with external Odometry

tango_explorer
Hi,

Setup:
I am trying to run RTAB-Map with external Odometry. By this, I mean that I get odometry form say wheel encoders or I compute it using another ros node. From my understanding I should be able to do this by following the instruction in here. I basically changed "base_link" to "camera_link" since i am using Kinect data and then I changed "/base_controller/odom" to the topic where I publish my odometry to e.g. "/guidance_odom".

Other information you should know:
My data is pretty much registered rgb, depth and camera_info data from the kinect. I recorded this data because I need to generate pointclouds, for my own use. I can generate these point clouds using openni_launch. The instructions I followed are here. openni_launch also generates tf's for me.  My code generates odometry using this data. The odometry has  "/camera_rgb_optical_frame" as its frame id and the timestamp is copied from corresponding rgb data.  I am running rtab_map on ros indigo, ubuntu 14.04.

Also I changed the parameter "wait_for_transform" to 0.9 instead of 0.2.

The problem:
When I try to run rtab_map as describe in my setup, it complains that:

[ WARN] [1473035534.196608105, 1472085478.122275424]: Could not get TF transform from camera_rgb_optical_frame to camera_link, sensors will not be synchronized with odometry pose.
[ WARN] [1473035537.075552580, 1472085478.410254189]: rtabmapviz: Could not get transform from camera_rgb_optical_frame to camera_link after 0.900000 seconds (for stamp=1472085477.338702)!
[ WARN] [1473035543.277895929, 1472085479.030405919]: rtabmap: Could not get transform from camera_link to camera_rgb_optical_frame after 0.900000 seconds (for stamp=1472085477.203239)!
[ERROR] [1473035543.277953249, 1472085479.030405919]: TF of received depth image 0 at time 1472085477.203239s is not set, aborting rtabmap update.

However, I can use tf echo to view the tf's. It takes a while to show up because I replay the bag slowly.

I think I will add a video so that others can see it in action but that could take a while.

Thanks,



Reply | Threaded
Open this post in threaded view
|

Re: RTAB-MAP with external Odometry

matlabbe
Administrator
Hi,

What is the rate of your TF frames? Can you show the TF tree when replaying the bag?
$ rosrun tf view_frames
$ evince frames.pdf

Make also sure that you replay the bag with "--clock" argument and global parameter use_sim_time is true.
$ rosparam set use_sim_time true

cheers
Reply | Threaded
Open this post in threaded view
|

Re: RTAB-MAP with external Odometry

tango_explorer
Hi,

I think I fixed this. The problem was that I was sending the odometry data in the wrong frame. This resulted in conflicting transformations I believe. I simply moved the odometry data to a different frame and then published the tf between my new frame and camera link. It seems to work now, howbeit a little bit slowly.