Hi weiin. Good thinking there. I am currently a little swamped and removed from the rgbdslam code, but here are my quick thoughts:
- When setting the base_frame_name to
/odom you need to unset fixed_camera,
because the transformation between
odom and openni_rgb_optical_frame is
not static.
- Letting the octomap server periodically
listen to the model sent from RGBDSLAM is probably not a good idea,
as you need to store the clouds and therefore need huge amounts of memory.
Also the timestamps of the transforms match the point clouds, but not the odom transforms.
I am not sure whether this works, but in principle you should be able
to let the octomap server listen to the camera driver and have RGBDSLAM send out the transformation online. I have the latter working on my machine, but I am not sure if it is upstream already. Maybe for performance reasons you need to use "throttle" from pkg "topic_tools" on the point cloud topic and have rgbdslam and the octomap server listen to that.
- The commented out broadcast is probably what you need. As mentioned I fixed this, and I could make the current state available, but I am not sure about the overall stability of my current code base as many things have been added and some testing would be necessary to find out if that broke existing functionality