This work presents a distributed method for multi-robot coordination based on nonlinear model predictive control (NMPC) and dual decomposition. Our approach allows the robots to coordinate in tight spaces (e.g., highway lanes, parking lots, warehouses, canals, etc.) by using a polytopic description of each robot's shape and formulating the collision avoidance as a dual optimization problem. Our method accommodates heterogeneous teams of robots (i.e., robots with different polytopic shapes and dynamic models can be part of the same team) and can be used to avoid collisions in $n$-dimensional spaces. Starting from a centralized implementation of the NMPC problem, we show how to exploit the problem structure to allow the robots to cooperate (while communicating their intentions to the neighbors) and compute collision-free paths in a distributed way in real time. By relying on a bi-level optimization scheme, our design decouples the optimization of the robot states and of the collision-avoidance variables to create real time coordination strategies. Finally, we apply our method for the autonomous navigation of a platoon of connected vehicles on a simulation setting. We compare our design with the centralized NMPC design to show the computational benefits of the proposed distributed algorithm. In addition, we demonstrate our method for coordination of a heterogeneous team of robots (with different polytopic shapes).