Stop movement of rigid bodies 2D after collision

I’m having two rigid bodies in my game. I’m using rigidbody2D.addForce to move these rigid bodies. When they collide with a non-rigid body collider/gameobject they don’t move after collision. But, when they collide with each other(colliding with an rigid body) these objects move after collision, depending upon how much force is applied. I cannot destroy rigidbodies after collision because I’m using those for their movements.

Below is how I’m moving my objects :-

    if (Input.GetKeyDown (KeyCode.RightArrow))
    {
		//transform.Translate(0.5f, 0, 0);
		rigidbody2D.AddForce(Vector2.right * swipeSpeed);
	}
	if (Input.GetKeyDown (KeyCode.LeftArrow)) {
		//transform.Translate(-0.2f, 0, 0);
		rigidbody2D.AddForce(-Vector2.right * swipeSpeed);
	}
	if (Input.GetKeyDown (KeyCode.UpArrow)) {
		//transform.Translate(0, 0.2f, 0);
		rigidbody2D.AddForce(Vector2.up * swipeSpeed);
	}
	if (Input.GetKeyDown (KeyCode.DownArrow)) {
		//transform.Translate(0, -0.2f, 0);		
		rigidbody2D.AddForce(-Vector2.up * swipeSpeed);
	}

If you want to totally stop movement, you can set isKinematic to true in OnCollisionEnter2D

If you want to avoid bounciness, create a new PhysicsMaterial2D and set bounciness to 0.

If both are not suiting you then by code you can set the velocity to Vector2.zero in the OnCollisionEnter2D

Well, Its simple:
In Constraints (Rigidbody), Check Freeze Rotation z or see in the inspector which axis is causing your objects Rotation… Its solution unity5.1.2