Distributed optimization provides a framework for deriving distributed algorithms for a variety of multi-robot problems. This tutorial constitutes the first part of a two-part series on distributed optimization applied to multi-robot problems, which seeks to advance the application of distributed optimization in robotics. In this tutorial, we demonstrate that many canonical multi-robot problems can be cast within a distributed optimization framework, such as multi-robot simultaneous localization and mapping (SLAM), multi-robot target tracking, and multi-robot task assignment problems.