You are trying to fuse a sensor-relative pose as an absolute pose. I'm not entirely familiar with ar_track_alvar, but in order to fuse a pose from a fiducial marker, you need to know the world-frame pose of that fiducial marker. For example, suppose you start your robot, and it can't see any markers. You drive around for a while, and you get to some pose, e.g., (10, 4) and with a yaw of 0.29 (I'm assuming a 2D use case). Now you see a fiducial marker. Your tracking package, presumably, produces a pose estimate relative to the camera, but that's not grounded in anything. In order for that to update your robot's pose, you need it to produce a world-frame pose estimate. In this case, there would have to be some world-frame pose associated with every single fiducial. Then, when your robot sees it at some relative pose, you'd apply that relative pose (inverse) to the fiducial world-frame pose, and you'd have the pose of your camera in the world frame. You'd have to apply the camera->base_link transform to get the pose of your robot.