Hi, I am not using fake_localization but the following may help you.
I am using move_base with rtabmap for visual odometry and map building.
I am using Gazebo and I can change the initial position of the robot with this :
<!-- Spawn a robot into Gazebo -->
<node
name="spawn_urdf"
pkg="gazebo_ros"
type="spawn_model"
output="screen"
args="
-file $(find robot_package)/robotDescription/robot.urdf
-x 1.890696
-y 0.883094
-z 1.607973
-urdf
-model robot"
/>
And then I modify the odometry node with the initial_pose param:
<node pkg="rtabmap_ros" type="stereo_odometry" name="stereo_odometry" output="screen">
<remap from="left/image_rect" to="$(arg cameraOdo)/left/image_rect"/>
<remap from="right/image_rect" to="$(arg cameraOdo)/right/image_rect"/>
<remap from="left/camera_info" to="$(arg cameraOdo)/left/camera_info"/>
<remap from="right/camera_info" to="$(arg cameraOdo)/right/camera_info"/>
<remap from="odom" to="$(arg cameraOdo)/odom"/>
<param name="publish_tf" type="bool" value="true"/>
<param name="frame_id" type="string" value="base_frame"/>
<param name="odom_frame_id" type="string" value="odom"/>
<param name="initial_pose" type="string" value="1.890696 0.883094 1.607973 0 0 0" />
<param name="Odom/InlierDistance" type="string" value="0.1"/>
<param name="Odom/MinInliers" type="string" value="10"/>
<param name="Odom/RoiRatios" type="string" value="0.03 0.03 0.04 0.04"/>
<param name="Odom/MaxDepth" type="string" value="10"/>
<param name="OdomBow/NNDR" type="string" value="0.8"/>
<param name="GFTT/MaxCorners" type="string" value="500"/>
<param name="GFTT/MinDistance" type="string" value="5"/>
</node>
I know it's not what you are exactly looking for but I hope it can help.