ROS, the Robot Operating System, was first made available in 2007. Since then, usage has grown considerably, along with the number of potential applications and use cases. Unfortunately, design decisions made when ROS was in its infancy still apply today and have begun to show their age. These decisions include: only being supported on the Ubuntu Linux distribution, assuming the use of powerful workstations, adhering to older versions of libraries and programming languages, and the lack of encrypted communications. Rather than addressing the limitations of ROS within the confines of the existing development framework, the Open Source Robotics Foundation decided in 2014 to develop an entirely new project, ROS2, which is backwards-incompatible with ROS1. This new project aims to address all of the above limitations and more. This thesis explores the trade-offs between ROS1 and ROS2.