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.
For every ROS setup: What nodes exist? What topics are they publishing or subscribing to? What message type is flowing between them?
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.pyNodes 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)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.0A 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.