When you say the tracking looks good, how did you check it ?
There are some possible reasons:
- You did not place you 3D object "on the ground". If your object is too high, or too low, it will shift
- You intrinsics parameters are not well estimated (the focal length, the distortion)
- You are trying to place objects in area where there where no trackers in MatchMover, (remember that you should always try to cover the largest area possible where you are doing the 2D tracking)
- Your tracking is not accurate enough. The solution is to try to fine tune your work in MatchMover. (You can use filters also; see online doc.)
Helper frame is one solution, to make sure calibration is well stucked.