<aside> ☑️

Checklist:

  1. Learn what ROS is and why it’s essential for us </aside>

Intro Videos

https://www.youtube.com/watch?v=2lIV3dRvHmQ

https://www.youtube.com/watch?v=KAASuA3_4eg

What is ROS?

Credit: Arthur Richards

ROS (in our context) stands for the Robot Operating System. It's not really an operating system as it runs on top of Ubuntu Linux, but it provides a blackboard-type message passing and standards for robots. ROS is great for being supported by lots of off-the-shelf robots, making it easy to share and build on existing software, and taking care of repetitive housekeeping stuff like logging. However, the learning curve is quite steep, it's quite limited to Ubuntu, the timing model is challenging, and it's hard to keep up with regular upgrades.

ROS vs ROS2

ROS2 has been released that improves things like networking, security, and the timing model. It also offers Windows support. Bristol FSAI only uses ROS2; specifically, ROS2 Galactic for our sim.

ROS and ROS 2 are fully supported on Linux. ROS 2 is supposed to be supported on Windows and macOS, but it doesn’t run well on either.

Almost all coding will be done in Python, and some C++ may be necessary.

Key Concepts

Key ROS concepts are nodes (programmes that talk using ROS) and topics (channels over which messages are exchanged). A ROS node works by publishing and/or subscribing to different ROS topics.

ROS topics are asynchronous, like emails. You send one, and you may or may not get an answer. ROS also supports services which are like phone calls. A services is called and gives a response. Services are avoided for various reasons, not least because they block the caller. There are also actions which are special arrangements of topics offering call, response, progress reports, cancellation or completion. They're much more flexible and robust, but complicated, beyond the scope.

1_OEbY8Iok45zkIvg-KpO7MA.webp