Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Robot Operating System 2 (ROS2) is a framework for programming robots that we use as the backbone for our software architecture. Despite the name, it is not truly an OS, but actually a set of packages installed over Ubuntu that aid robotic software development by simplifying communications between processes and providing common functionality so we don’t have to reinvent the wheel. The version of ROS2 we use is called foxygalactic (please check with the software lead or senior member that this is the version we are using for our current rover). Before getting started with ROS, first install it by following the official tutorial: https://docs.ros.org/en/foxygalactic/Installation/Ubuntu-Install-Debians.html

ROS2 Basic Concepts

The challenge of programming an entire robot is that it quickly becomes hugely complicated. Between firmware to control your sensors and actuators, and the logic to perform various functions, if you tried to code everything at once you would end up a) reinventing the wheel on many components, and b) end up with a hugely messy program that probably won’t adapt well to changes in objectives, and any changes you make will likely break other things. When tackling such a challenge it is important to decompose your problem into smaller subproblems which can be self-contained. This way each sub-problem can be solved more simply, and the system gains modularity because you can swap out subcomponents without affecting other parts.

...

Go through these tutorials to get a better understanding of ROS2. They are pretty thorough and cover almost everything you need to know. Although there is much more to ROS2 - the idea behind this guide is not meant to overwhelm you but to serve as a guide. There are many neat things in ROS2 such as topic statistics, life cycle nodes, quality of service, and callback groups. In the effort of making this training as simple and straightforward as possible, I will not explore these concepts here. The tutorials I have attached below are HIGHLY RECOMMENDED to be completed before you move on to completing the software training challenge. In fact, I would go far enough to say it is (more) difficult to complete the software training challenge without the ROS2 foxy tutorials. These tutorials are helpful, but you do not need to go through all of them. Only go through the ones that you believe will help you best.