Robotics is the engineering discipline of building machines that sense their environment, decide what to do and act on the physical world. In software terms it is a distributed systems problem with hard real-world constraints: many processes producing and consuming sensor data at different rates, a shared notion of time, a shared notion of where every part of the machine is in space, and no ability to retry a movement that has already collided with something.
Modern Robotics software is overwhelmingly built on ROS 2, a middleware and toolset rather than an operating system. ROS 2 gives you a node graph communicating over DDS with configurable quality-of-service, three interaction patterns — topics for streaming data, services for request/response, actions for long-running goals with feedback and cancellation — and a set of conventions that let independently written components compose. Around that sit the pieces every robot needs: tf2 for coordinate frame transforms, URDF for robot description, Nav2 for autonomous navigation, MoveIt for manipulation planning, and rviz2, rosbag2 and Gazebo for visualisation, recording and simulation.
Underneath the middleware sit the disciplines that make a robot work at all. Kinematics and transforms describe where the arm or the base actually is. Control loops — PID at the simple end, model-predictive at the complex end — turn a desired state into motor commands. Perception turns camera, lidar and IMU data into a usable world model, and state estimation fuses those noisy streams with Kalman or particle filters. Simulation is not optional: almost all Robotics development happens in Gazebo or Isaac Sim first, because hardware iteration is slow and breakage is expensive.
Why this skill matters now
Robots left the caged cell. Warehouse AMRs, agricultural platforms, inspection drones, surgical assistants, last-mile delivery units and collaborative arms all now operate in environments they share with people, which means autonomy, perception and safety software rather than a fixed program repeated on a jig. That shift moved the centre of gravity in robotics hiring from mechanical and electrical engineering towards software.
ROS 2 consolidated the field. Where the last decade fragmented across proprietary stacks, most new commercial platforms now build on ROS 2 with DDS underneath, which makes the skill portable across employers and domains in a way it previously was not. At the same time, hardware became affordable — a capable development platform now costs less than a workstation did — so teams can prototype before committing to a build.
The hiring gap is specific. There are plenty of engineers who can write Python and plenty who understand control theory, and comparatively few who can debug a tf2 tree that has drifted, tune a Nav2 costmap so a robot stops oscillating in a doorway, work out why a DDS quality-of-service mismatch is silently dropping messages, and then get all of it running reliably on a constrained onboard computer.