You could feed the wheel odometry to icp_odometry as guess to improve icp robustness:
<node pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen" >
<remap from="scan" to="/scan"/>
<remap from="odom" to="/icp_odom"/>
<param name="frame_id" type="string" value="base_footprint"/>
<param name="odom_guess_frame_id" type="string" value="wheel_odom"/>
<param name="odom_frame_id" type="string" value="icp_odom"/>
</node>
However, if icp_odometry will eventually get lost because there are no walls at some point, you may use robot_localization to do fusion of wheel odometry and icp_odometry's twist. Enable reset countdown for icp_odometry and disable tf publishing:
<node pkg="rtabmap_ros" type="icp_odometry" name="icp_odometry" output="screen" >
<remap from="scan" to="/scan"/>
<remap from="odom" to="/icp_odom"/> <!-- feed to robot_localization (use only twist as pose would diverge if getting lost) -->
<param name="frame_id" type="string" value="base_footprint"/>
<param name="odom_guess_frame_id" type="string" value="wheel_odom"/>
<param name="odom_frame_id" type="string" value="odom"/> <!-- if set to same robot_localization's odom frame, when icp_odometry resets after being lost, it will restart to latest pose from robot_localization. -->
<param name="publish_tf" type="bool" value="false"/>
<param name="Odom/ResetCountdown" type="int" value="1"/>
</node>