According to Physics textbooks,
A Rigidbody is a solid body that does not deform even when force is applied to it.
Any object that obeys the laws of physics is called a Rigidbody.
To make a gameobject into Rigidbody in Unity, you just need to add the Rigidbody component to it. In case of 2D, the component is called Rigidbody2D
Rigidbody is needed
1. When the object needs to be affected by physics forces.
2. When Collision detection is required.
3. For creating custom character controller that uses physics.
For Unity to detect collision, both the objects need to have a collider attached to them and one of the objects should have a Rigidbody.
Unity has different types of Rigid bodies and the forces acting on them is calculated by the physics engine based on the type of Rigidbody
Static Rigidbody are object that are immovable and not affected by forces. Example: Building
Any game object with a Rigidbody component that moves based on physics forces is considered as a dynamic Rigidbody. Example : Ball
Kinematic Rigid bodies are game object that have a Rigidbody component but are set to static by checking the is kinematic option.
A kinematic Rigidbody can be changed to dynamic Rigidbody during game play by unchecking the iskinematic option using a script.
To know more about Rigid bodies and how to set the parameters, read out post below.