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.