- How to Follow this Course
- Setup Your Environment (+ Tools)
- Node OOP Template
- Why and When to Use ROS 2 Actions
- How do ROS 2 Actions Work?
- Create an Action Definition
- Write a Minimal Python Action Server
- Write a Minimal Python Action Client
- Accept or Reject a Goal
- Goal State Machine Explained
- Set a Goal as Succeeded or Aborted
- Send Goal Feedback
- Cancel a Goal
- Introspect Actions with ros2 action (command line)
- Goal Policy: Multiple Goals in Parallel
- Goal Policy: Refuse New Goal if Current Goal is Active
- Goal Policy: Preempt Current Goal if New Goal Received
- Goal Policy: Queue Goals
- C++ Action Server
- C++ Action Client
- Accept or Reject a Goal (C++)
- Set a Goal as Succeeded or Aborted (C++)
- Send Goal Feedback (C++)
- Cancel a Goal (C++)
- Goal Policy: Multiple Goals in Parallel (C++)
- Goal Policy: Refuse New Goal if Current Goal is Active (C++)
- Goal Policy: Preempt Current Goal if New Goal Received (C++)
- Goal Policy: Queue Goals (C++)
- Step 1 - Create and Generate the Action
- Step 2 - Action Server
- Step 3 - Action Client
- Step 4 - Accept Goal and Goal Policy
- Step 5 - Cancel with a Subscriber
- Actions Challenge - C++ Code
- What are Lifecycle Nodes, When to Use Them
- Code Setup
- Write a Lifecycle Node in Python
- Transition Between States (with ros2 lifecycle cmd line)
- Processing Errors
- Lifecycle Node Manager (using Lifecycle Services)
- Create a Launch File for Lifecycle Nodes
- Write a Lifecycle Node in C++
- Intro
- Step 1 - Transform the Node Into a Lifecycle Node
- Step 2 - Start Several Nodes (Params + Launch File)
- Step 3 - Lifecycle Manager
- Lifecycle Node Challenge - C++
- Understand How Callbacks and Spin Work
- The SingleThreaded Executor
- Multi-Threaded Executor and Callback Groups
- Which Executor/Callback Group Should You Use?
- Going back to the Actions Server Example
- Run Several Nodes in One Executable
- Executors With C++
- Manual Composition with Python
- Manual Composition with C++
- Create a ROS2 Component (plugin)
- Load a Component at Run-Time with ros2 component cmd line
- Load Components From a Launch File
- Step 1 - Base Node and Executor
- Step 2 - Action Server
- Step 3 - Lifecycle Node
- Step 4 - Component
- Step 5 - Launch File
- Step 6 - Adapt for Turtlebot3 in Gazebo