Unit 01 · overview

Week 1: From Java Code to Robot-System Evidence

A program prints status=READY.

That looks reassuring. It may also mean almost nothing.

This opening chapter teaches you how to read a robot-software claim from the bottom up. You will start with an ordinary Java source file, compile it, run it, and learn exactly what the Java runtime has established. Then you will compare that evidence with a WPILib robot application and a ROS 2 Jazzy runtime, where different tools answer different questions.

By the end of the week, you should be able to look at a terminal line and ask the question that matters most:

What produced this evidence, and what does it actually prove?

You will work with a small RobotStatus program, a battery-warning rule, and a controlled ROS 2 graph containing /sensor_bridge and /motor_guard. The examples are intentionally small so you can see the boundaries clearly before the course adds sensors, collections, tests, launch files, and larger robot architectures.

What you will learn

You will learn how a Java source file becomes a running program, what public static void main(String[] args) does, how methods package a rule, and why successful Java output is evidence about the Java program rather than proof about ROS 2 or physical hardware.

You will also get your first controlled look at the ROS 2 command-line interface. You will source a Jazzy environment, list nodes and topics, and inspect one node without pretending those observations prove that a motor moved or a sensor is accurate.

What you will build

Your final artifact is a Java and ROS Evidence Case File. It records:

  • one Java source claim;
  • one compile/run observation;
  • one method result;
  • one ROS 2 graph observation;
  • one claim that must remain unproven;
  • the next piece of evidence you would need to make a stronger claim.

The browser terminal is deterministic lesson state. It is not connected to your computer, a live ROS installation, a network, or a robot.

Approximate time: 3 to 4 hours across the lessons, practice, and lab.

The goal is not to become suspicious of every output line. The goal is to become precise enough that a robot-software result can survive another engineer asking, “How do you know?”