← Back to Layerchecklist

ROS (Robot Operating System)

ROS is the standard middleware for robotics — it doesn't run robots directly, but provides the communication framework that lets different parts of a robotic system talk to each other.

Interview mindset:

For every ROS setup: What nodes exist? What topics are they publishing or subscribing to? What message type is flowing between them?

Nodes

A node is a single process performing one job — reading a sensor, running a controller, processing an image.

Interview check:Know why splitting a robot's software into many small nodes is preferred over one giant program.

rosrun my_package my_node.py
Topics & Pub/Sub

Nodes communicate by publishing messages to topics, and other nodes subscribe to receive them — a decoupled, many-to-many communication pattern.

Interview check:Know that a publisher doesn't need to know who (or how many) is subscribing.

pub = rospy.Publisher('velocity', Twist, queue_size=10)
  pub.publish(msg)
  
  rospy.Subscriber('velocity', Twist, callback)
Messages

Strictly typed data structures passed between nodes — like a schema for what a topic is allowed to carry.

Interview check:Know that a publisher and subscriber must agree on the exact message type to communicate.

from geometry_msgs.msg import Twist
  
  msg = Twist()
  msg.linear.x = 1.0
Launch Files

A single file that starts multiple nodes together with their configuration, instead of running each manually.

Interview check:Know why launch files matter once a system has more than a couple of nodes.

<launch>
    <node pkg="my_package" type="my_node.py" name="my_node" />
  </launch>

ROS Interview Questions You Should Be Able to Answer

  • What is a ROS node?
  • How does the publish/subscribe model work?
  • What is a message, and why does it need a fixed type?
  • What's the benefit of splitting robot software into multiple nodes?
  • What is a launch file used for?

The Standard You Want

You should be able to sketch out a basic node graph for a simple robot task — what nodes exist, what topics connect them, and what data flows where.

ROS is about communication design as much as it is about robotics.