From an Empty Workspace to a Running Robot in One Prompt
The hard parts of robotics are supposed to be perception, planning, and control. So why does so much of the day go to everything that comes before them? The hidden setup tax in every robotics simulation project Ask anyone what's hard about robotics and you'll get the same list: perception, planning, control, navigation. The genuinely interesting problems. If you track where your hours actually go, though, a strange thing shows up. A big chunk of the day disappears before you reach any of that. You're not solving hard problems yet. You're just getting to the starting line: wiring up a workspace, writing description files, stitching together launch files, and coaxing a simulator into opening without errors. It's the unglamorous tax on every project, and most of us have quietly accepted it as the cost of doing business. Building a differential drive robot simulation in ROS 2 and Gazebo from scratch A diff drive base, a LiDAR, and Gazebo, set up from one prompt instead of an afternoon of boilerplate. A few days ago I wanted a simple mobile robot simulation. Nothing exotic: a differential drive base (two driven wheels, the classic mobile-robot setup), a LiDAR for sensing, running in Gazebo . This is the kind of thing that should be straightforward. In practice it's an afternoon of boilerplate before the robot so much as twitches. So instead of wiring it up by hand, I wanted to see how far Drift could get from a single prompt. To make it a fair test, I stripped the workspace down to nothing. No packages, no URDF, no launch files. A blank slate. Then I typed one line: "Create a mobile simulation from scratch." From XACRO to URDF: how the robot description gets generated in ROS 2 What the tool wrote first, and what XACRO and URDF actually do for your robot. It checked the workspace first: The opening move was sensible: it looked at the current directory to understand what it was working with. It generated a XACRO file for the robot's dimensions: XACRO is the macro-based for