In the existing literature of the Mutual Visibility problem for autonomous robot swarms, the adopted visibility models have some idealistic assumptions that are not consistent with practical sensing device implementations. This paper investigates the problem in the more realistic visibility model called opaque fat robots with slim omnidirectional camera. The robots are modeled as unit disks, each having an omnidirectional camera represented as a disk of smaller size. We assume that the robots have compasses that allow agreement in the direction and orientation of both axes of their local coordinate systems. The robots are equipped with visible lights which serve as a medium of communication and also as a form of memory. We present a distributed algorithm for the Mutual Visibility problem which is provably correct in the semi-synchronous setting. Our algorithm also provides a solution for Leader Election which we use as a subroutine in our main algorithm. Although Leader Election is trivial with two axis agreement in the full visibility model, it is challenging in our case and is of independent interest.