Skip to main content

Weeks 1-3: ROS 2 - The Robotic Nervous System

Overview

These three weeks focus on ROS 2 (Robot Operating System 2), the foundational middleware that enables communication between different software components in robotic systems. ROS 2 provides the "nervous system" for robots, allowing them to perceive, process, and act in their environment.

Week 1: ROS 2 Fundamentals

Learning Objectives

  • Understand the basic concepts of ROS 2 architecture
  • Create and manage ROS 2 nodes
  • Implement publisher-subscriber communication patterns
  • Use ROS 2 command-line tools for system introspection

Topics Covered

  • ROS 2 architecture and concepts
  • Nodes, topics, and messages
  • Basic publisher-subscriber pattern
  • ROS 2 command-line tools
  • Package and workspace management

Activities

Assessment

  • Successfully run a publisher-subscriber pair
  • Demonstrate understanding of message passing
  • Create a simple ROS 2 package

Week 2: Advanced Communication Patterns

Learning Objectives

  • Implement service-based request-response interactions
  • Use actions for long-running tasks
  • Configure parameters for runtime adjustment
  • Apply Quality of Service (QoS) settings

Topics Covered

  • Services and service definitions
  • Actions and action servers
  • Parameter management
  • Quality of Service (QoS) profiles
  • Lifecycle nodes

Activities

  • Create a service for robot control commands
  • Implement an action server for navigation tasks
  • Use parameters to configure robot behavior at runtime
  • Experiment with different QoS profiles

Assessment

  • Build a service client-server pair
  • Implement an action that provides feedback during execution
  • Demonstrate parameter reconfiguration at runtime

Week 3: Tools and System Integration

Learning Objectives

  • Use ROS 2 tools for debugging and monitoring
  • Create launch files for complex system startup
  • Implement best practices for node design
  • Integrate multiple nodes into a complete system

Topics Covered

  • ROS 2 debugging tools
  • Launch files and system composition
  • Testing and simulation integration
  • Best practices for node design
  • Error handling and logging

Activities

  • Create a launch file that starts multiple nodes
  • Use rqt tools for system visualization
  • Implement proper error handling in nodes
  • Integrate all components into a simple robot system

Assessment

  • Successfully launch a multi-node system
  • Demonstrate proper error handling
  • Create a complete robot behavior using multiple nodes

Integration with Simulation

Throughout these weeks, students will integrate their ROS 2 knowledge with simulation environments:

  • Connect ROS 2 nodes to simulated sensors
  • Control simulated robots using ROS 2 topics
  • Validate communication patterns in simulation
  • Prepare for real-world deployment by testing in simulation

Resources

Prerequisites for Next Weeks

Before moving to Weeks 4-6, ensure you can:

  • Create and run ROS 2 nodes
  • Implement publisher-subscriber patterns
  • Use services and actions appropriately
  • Debug ROS 2 systems using command-line tools
  • Package ROS 2 code into reusable packages

Common Challenges and Solutions

Challenge: Nodes Not Communicating

  • Solution: Verify nodes are on the same ROS domain
  • Check topic names match exactly between publisher and subscriber
  • Ensure message types are compatible

Challenge: Performance Issues

  • Solution: Use appropriate QoS profiles for your use case
  • Limit message frequency for high-bandwidth data
  • Use compression for large messages like images

Challenge: Parameter Management

  • Solution: Use parameter files for consistent configuration
  • Implement parameter validation in nodes
  • Use node namespacing for complex systems

Advanced Topics for Interested Students

  • Composition: Combining multiple nodes into a single process
  • Custom message types: Creating domain-specific message definitions
  • ROS 1 bridge: Connecting ROS 2 systems with ROS 1
  • Real-time considerations: Ensuring deterministic behavior

Week 1-3 Capstone Exercise

Combine all concepts learned in these three weeks by creating a simple robot system that:

  1. Publishes sensor data (simulated)
  2. Processes commands through a service
  3. Executes navigation tasks using actions
  4. Uses parameters for runtime configuration
  5. Runs as a coordinated system using a launch file

This exercise will prepare you for the simulation environments covered in Weeks 4-6, where you'll connect your ROS 2 knowledge to virtual robot platforms.