Unit 13 · lesson

Prerequisite Checkpoint: Service Contracts Are Bounded

Use a ROS 2 service only when the interaction truly fits request/response semantics.

For one robot-side request, record:

  • request data;
  • expected response;
  • timeout/failure meaning;
  • whether retry is safe;
  • what runtime evidence proves the service exists.

Then compare the same requirement with a Java method call. Both can look like "ask for something and get a result," but they live in different runtime models.

A Java method call is local language/runtime behavior. A ROS service is middleware-visible communication between graph entities.

Bridge question

What evidence would prove that a Java-side component actually invokes the ROS service rather than merely implementing similar logic locally?

Write the missing integration path explicitly.

If service CLI mechanics are the blocker, reactivate ros2-for-students. This route owns the contract comparison, not beginner service syntax.