Loading…
Venue: Homestead 3/4 clear filter
arrow_back View All Dates
Tuesday, September 15
 

09:00 MDT

Scaling Robotics to 200 Developers: Flexible C++ Architectures for Kinematics, Dynamics, Simulation & Control
Tuesday September 15, 2026 09:00 - 10:00 MDT
Large-scale robotics organizations operate diverse fleets of manipulators — 4-DOF arms on rails, 6-DOF standard manipulators on pedestals and fully mobile manipulators — each with different kinematics, hardware vendors, and software teams and researchers.

And engineers and researchers are opinionated.

As a team eventually you have one goal. Re-use as many abstractions; ideas and algorithms as you can while still allowing you the flexibility to explore new algorithms; ideas and approaches.

This talk presents a layered C++ architecture that solves this at scale. We present our core abstrcactions; a header-only Lie group library provides shared spatial math types (SE(3) poses, twists, wrenches); a trajectory library for motion planners and controllers; and a collision detection library from the same.

We will discuss how we moved from virtual functions to C++ concepts with zero overhead and the learnings along the way that allow us to write planning and control algorithms for various robots morphologies and sensing paradigms.

Critically, this architecture balances the needs of production at scale while enabling experimentation: researchers can prototype new collision algorithms, try a new physics engine, or test a novel trajectory representation — all without disrupting production code. The backend boundaries are where new ideas enter the system. You'll leave with three distinct C++ patterns for backend abstraction — compile-time traits, runtime interfaces, and type erasure — and an understanding of when to use each based on performance requirements and the need for experimentation.

Presenters
CS

Carl Saldanha

Robotics Software Engineer, Amazon
Carl Saldanha, is a Senior Robotics Engineer at Amazon.com focused on Manipulation at Scale
Tuesday September 15, 2026 09:00 - 10:00 MDT
Homestead 3/4

14:00 MDT

Back to Basics: Loops in C++
Tuesday September 15, 2026 14:00 - 15:00 MDT
A fundamental control structure of each programming language are loops. And we all expect them to be simple and self explanatory. However, C++ would not be C++, if there would be no tricky details to learn and respect about loops in C++.

This talk takes its time to discuss the various ways and approaches to program loops in C++. Beside basic while and for loops, we talk about the range-based for loop, and all the extensions recently added to these control structures.

In addition, we will look at other ways to program loops in C++, such as using algorithms and how to deal with parallel computing in a loop.

As a result you get a deeper understanding of the various ways loops can be programmed in Modern C++ so that you know better how to use them in practice.

Presenters
avatar for Nicolai Josuttis

Nicolai Josuttis

Author and Teacher
I teach and teach and teach and teach C++. For centuries. Still learning this language. However in principle, C++ is no longer teachable...
Tuesday September 15, 2026 14:00 - 15:00 MDT
Homestead 3/4

15:15 MDT

Compile-Time Polymorphism for Runtime-Flexible Systems: Lessons from OpenJDK
Tuesday September 15, 2026 15:15 - 16:15 MDT
Your system supports multiple strategies, with the user selecting one at startup, but each strategy must handle different semantics. Traditional runtime polymorphism can require a virtual override for every combination, making code harder to extend and easier to get wrong

This talk shows how OpenJDK solves this problem by using a layered architecture of compile-time patterns with a runtime trampoline. We'll build them up through OpenJDK's GC barrier system, where a single templated API stands in for dozens of differently-shaped memory accesses across the runtime: plain stores, raw/unsafe access, native calls, weak references, and more, each needing different treatment depending on the semantics and which garbage collector was chosen by the user.

We'll also discuss trade-offs against std::variant, function pointers, and plain virtual dispatch. No JVM knowledge required.

Presenters
avatar for Shubhankar Gambhir

Shubhankar Gambhir

Software engineer, Azul systems
Shubhankar Gambhir is a Software Development Engineer at Azul Systems, where he works on JVM runtime efficiency and warmup technologies. He has contributed to the garbage collector, with a focus on performance and scalability. He enjoys building C++ prototypes to explore systems design... Read More →
Tuesday September 15, 2026 15:15 - 16:15 MDT
Homestead 3/4

16:45 MDT

Using Type Erasure to Extend APIs You Don't Own: A Case Study From Audio Plugin Development
Tuesday September 15, 2026 16:45 - 17:45 MDT
Application developers sometimes hit a limitation of a 3rd-party library or framework. The Type Erasure design pattern can help us overcome such limitations without the need to change the 3rd-party API.

Type Erasure is a relatively complex design pattern that allows us to treat a set of unrelated classes as if they shared a common base class, while preserving value semantics. The downside is increased code bloat and code complexity as the pattern requires a significant amount of additional code.

There have been quite a few talks explaining HOW to implement Type Erasure, while the topic of WHEN has been rarely discussed. Should we always use type erasure instead of virtual polymorphism? And if not, then what are the criteria?

This talk will show a concrete example from the audio programming industry of how Type Erasure allowed adding new functionalities to the parameter class system of the JUCE C++ framework without changing its API. As such, the talk will be useful for application and library developers who use 3rd party libraries but need an extra degree of flexibility.

You will come out of the talk understanding

  • what Type Erasure is,
  • when to use it, and
  • how to implement it.
You don't need to understand Type Erasure, audio development, or JUCE to attend the talk; the necessary minimum will be explained during the talk.

Presenters
avatar for Jan Wilczek

Jan Wilczek

C++ Speaker, think-cell
I'm a C++ developer, conference speaker, and online course creator at think-cell.
My background is in audio plugin and app development.
I work from home in Katowice, Poland.
Tuesday September 15, 2026 16:45 - 17:45 MDT
Homestead 3/4
 
Share Modal

Share this link via

Or copy link

Filter sessions
Apply filters to sessions.
Filtered by Date -