Chapter 1: Learning Objectives
ROS 2 Basics (Nodes, Topics, Services)
Generated by: learning-objectives skill
Date: 2025-11-30
Alignment: Bloom's Taxonomy (Levels 1-3: Remember → Understand → Apply)
Level 1: Remember
Students will be able to define and list key ROS 2 concepts
-
Define a ROS 2 node
- What is a node?
- How does it fit in the ROS 2 graph?
- Example:
hello_nodepublishes "Hello, ROS 2!" every second
-
List the basic communication patterns in ROS 2
- Publication/Subscription (topics)
- Service Call/Response
- Actions (mentioned for future)
-
Recall ROS 2 command-line tools
ros2 run(execute a node)ros2 topic(interact with topics)ros2 service(interact with services)ros2 node(get node information)
Level 2: Understand
Students will be able to explain core concepts and how they interact
-
Explain how the ROS 2 graph works
- Nodes as independent processes
- Topics as communication channels
- Subscribers and publishers
- Message flow: Publisher → Topic → Subscribers
- Assessment: Can students draw a simple ROS 2 graph?
-
Describe pub/sub communication pattern
- Why use publish/subscribe?
- One-to-many communication
- Decoupled publishers and subscribers
- Topic names and message types
- QoS (Quality of Service) settings (introduced but not deep)
- Assessment: Students explain pub/sub vs client/server
-
Describe service communication pattern
- Request/response synchronous communication
- When to use services vs topics
- Service names and interface types
- Service server (provider) and client (requester)
- Assessment: Students distinguish services from topics
-
Explain how rclpy (ROS 2 Python library) works
- Node creation and initialization
- Publisher and subscriber creation
- Callback functions and event handling
- Spinning and event loop
- Assessment: Students trace code execution through rclpy
Level 3: Apply
Students will be able to use knowledge to create and run ROS 2 programs
-
Create a simple ROS 2 publisher node in Python
- Use rclpy.Node as base class
- Create publisher with create_publisher()
- Use timer to periodically publish messages
- Implement timer_callback()
- Run and verify with
ros2 topic echo - Assessment: Exercise 1 - Students create modified hello_node
-
Create a simple ROS 2 subscriber node in Python
- Create subscriber with create_subscription()
- Implement message callback function
- Process received messages
- Run alongside publisher and verify reception
- Assessment: Exercise 2 - Students create subscriber to echo published messages
-
Create a ROS 2 service client and server in Python
- Implement service server with create_service()
- Implement service callback to handle requests
- Create service client with create_client()
- Send service request and process response
- Run both and test synchronous communication
- Assessment: Exercise 3 - Students create simple math service (add two numbers)
-
Use command-line tools to interact with running ROS 2 systems
- List and inspect nodes:
ros2 node list,ros2 node info - List and inspect topics:
ros2 topic list,ros2 topic info,ros2 topic echo - Call services:
ros2 service call - View ROS 2 graph:
rqt_graph - Assessment: Students debug a running system using CLI tools
- List and inspect nodes:
Assessment Strategy
| Objective | Assessment Method | Success Criteria |
|---|---|---|
| Define ROS 2 concepts | Quiz/flashcards | 100% recall |
| Explain communication patterns | Short answer essay | Clear, logical explanation |
| Create publisher node | Hands-on exercise | Code builds, runs, publishes correctly |
| Create subscriber node | Hands-on exercise | Receives and logs messages |
| Create service pair | Hands-on exercise | Request/response works, values correct |
| Use CLI tools | Practical debugging task | Correctly diagnoses and troubleshoots |
Learning Progression
Concept Introduction
↓
Code Example (read & understand)
↓
Guided Exercise (with scaffolding)
↓
Independent Exercise (minimal help)
↓
Challenge Exercise (extend & combine)
Prerequisites
Before starting Chapter 1, students should:
- Have ROS 2 Humble installed
- Understand basic Python (variables, functions, classes)
- Be comfortable with Linux terminal
- Have completed textbook introduction
Bloom's Taxonomy Mapping
Chapter 1: ROS 2 Basics
├── Level 1 (Remember): 3 objectives
│ └── Key ROS 2 concepts and tools
├── Level 2 (Understand): 4 objectives
│ └── How pub/sub and services work
├── Level 3 (Apply): 4 objectives
│ └── Create working ROS 2 programs
└── Levels 4-6 (Analyze, Evaluate, Create)
└── Covered in Chapters 2-3
Outcomes by Section
Section 1: What is ROS 2?
- Bloom Level: Remember, Understand
- Objectives: 1.1 (define node), 1.2 (list patterns), 2.1 (explain graph)
- Activities: Lecture, code walkthrough, graph visualization
Section 2: Nodes and the Graph
- Bloom Level: Understand, Apply
- Objectives: 1.3 (recall tools), 2.1 (explain graph), 3.1 (create publisher)
- Activities: Code example, hands-on exercise, CLI exploration
Section 3: Topics - Publish and Subscribe
- Bloom Level: Understand, Apply
- Objectives: 2.2 (describe pub/sub), 3.2 (create subscriber), 3.4 (use CLI)
- Activities: Code example, two-node system, exercises
Section 4: Services - Request and Response
- Bloom Level: Understand, Apply
- Objectives: 2.3 (describe services), 3.3 (create service pair)
- Activities: Code example, synchronous communication, exercises
Notes for Content Authors
- Scaffolding: Each exercise builds on previous code examples
- Clarity: Use simple language; define technical terms
- Code Quality: All examples must be tested and run successfully
- Visuals: Include ROS 2 graph diagrams showing node/topic/service relationships
- Challenges: Extend exercises for advanced learners
- Assessment: Provide clear success criteria for each objective
Related Content
- Next: Chapter 2 (URDF Robot Description) builds on these concepts
- Previous: Textbook introduction and prerequisites
- External: ROS 2 official tutorials: https://docs.ros.org/en/humble/Tutorials.html
Status: Ready for content creation
Skills Used: learning-objectives
Output: This file + exercises.md (with solutions)