motion tracking fish eye
All lenses cause some distortion. There are no "perfect" lenses in the real world. 

When dealing with motion tracking it is crucial to account for such lens distortion.

Usually, as part of the tracking and solve process, blender determines the lens distortion parameters.

That information can be used in two ways:

1- to create an undistorted version of the footage and use that as reference for the creation of 3D elements.

2- to distort the elements created in the 3D environment so that they match the distortion of the camera lens used to create the original footage.

Either one of those paths involve using the compositor and a movie distort node.

https://docs.blender.org/manual/en/latest/compositing/types/distort/movie_distortion.html

For a very detailed post on the subject please refer to:

How to determine lens undistortion values for motion tracking?