Autoplay
Autocomplete
Previous Lesson
Complete and Continue
ROS 2 Software Development from the Ground Up™
Introduction
Welcome(Same as Promo) (1:49)
ROS 2 and the Modern Robotics Software Landscape
What Problem Does ROS Solve? (3:40)
ROS Is Not An Operating System (2:49)
The Development Environment, Distribution and Language Choice (2:54)
Overview of the ROS Application Stack (3:22)
The ROS 2 Computational Graph
Nodes, Processes and the ROS Graph (1:57)
Understanding Names and Namespaces (1:08)
The Discovery Process (1:48)
Understanding Topics, Publishers and Subscribers (1:52)
Some Good Examples For Using Topics (0:40)
Understanding Messages and Interfaces (2:45)
Understanding Services (1:50)
Understanding How Actions Model a Task Over Time (2:42)
Understanding How Parameters Configure Nodes (2:35)
Choosing the Correct ROS Interface (3:05)
QoS and Distributed-System Behaviour
Why Quality-of-Service(QoS) Exists (2:08)
Understanding How Reliability Trades Recovery Against Resources (2:52)
Understanding History and Queue Depth (1:49)
Understanding Durability (2:32)
Understanding QoS Compatibility (3:03)
Using Sensor Profiles for Current Observations (2:55)
Latency, Stale Data and Resource Trade-offs (2:49)
Choosing QoS from Application Requirements (2:43)
Understanding Object, Archive and Partial Link
Objectives: The Artifacts of Compilation (1:36)
Understanding the Object File and the Archive File (3:48)
Overview of Lab2: Building Our First Artifacts (1:15)
Programming: Creating the SDK Features and SDK Core Files (3:28)
Programming: Implementing the SDK Features Header File (3:00)
Programming: Implementing the SDK Core File (5:38)
Programming: Implementing the SDK Features Source File (1:42)
Programming: Creating the Static Archive Using the Required Object Files (7:50)
Programming: Creating a Thin Archive (1:50)
Programming: Creating the Relocatable Bundle Using the Required Object Files (5:31)
The Toolchain Targets and ABI Matrix
Objectives:Building for a Diverse World (1:37)
Targeting the Core with '-mcpu' (1:45)
Understanding the ABI Contract: How Functions Talk About Floats (2:40)
Overview of Lab3: Producing SDK SKUs (1:48)
Programming: Creating the SDK Math Module and Support-matrix (3:56)
Programming: Implementing the SDK Math Module (2:33)
Programming: Creating the SKU Subdirectories Inside the 'obj' and 'lib' Folders (2:55)
Programming: Building the Cortex-M4 Hardware FPU SKU Library (7:47)
Programming: Building the Cortex-M4 Software FPU SKU Library (2:25)
Programming: Building the Cortex-M0 Hardware FPU SKU Library (1:41)
Testing the Library
Programming: Creating the FP-ABI Test Project (3:58)
Programming: Configuring the Project to Use the Library (5:07)
Programming: Proving the Function Executes Successfully Without the .c File (6:48)
Programming: Adding the Correct Library Files to the Project (8:07)
API Surface, Namespacing, and Compatibility Policy
Objectives: Designing for the Future (1:25)
Overview of Lab4: Carving a Minimal and Stable API (1:52)
Programming: Creating the SDK Internal File and API Policy File (3:34)
Programming: Updating the SDK API .h File wth 'c' Guards and Versioning Macros (4:09)
Programming: Defining the Opaque Handle and Error Codes (4:52)
Programming: Updating the Public API Function Declarations (2:07)
Programming: Implementing the Private Internal Header File (5:08)
Programming: Updating the 'my_sdk_ap.c' File (4:20)
Programming: Implementing the 'my_sdk_do_work()' Function (1:17)
Programming: Implementing the SDK Policy File (4:40)
Programming: Verification: The Symbol Test with 'nm' Utility (4:21)
Key Techniques for Writing Robust APIs (4:27)
Configuration System and Build Profiles
Understanding the Mechanisms of the Configuration File (3:45)
Overview of Lab5: Implementing and Verify the Three Profiles (1:26)
Objectives: Control and Predictability (1:43)
Linker Integration Contracts
Understanding the Problem: The User's Sacred Linkerscript (2:10)
Creating and Integrating Custom Sections (3:27)
Overview of Lab6: Placing Data Deterministically (1:22)
Objectives: Implementing Painless Integration (1:56)
Size and Performance Control
Isolating and Eliminating Unused Sections (2:27)
Comparing Standard Builds to LTO Builds (1:08)
Overview of Lab7: The Bloat Postmortem Challenge (1:43)
Objectives: Understanding Size and Performance Control (1:45)
Understanding the Mechanisms of the Configuration File
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock