Online Course
Advanced Modern C++ for Robotics
Master the basics of C++ for robot programming
Course overview
Do you want to become a ROS Developer? If the answer is yes, then learning C++ is mandatory for you.
C++ is one of the most popular programming languages for robots, especially when working with industrial or non-educational robots.
In the C++ for Robotics course, you will master essential C++ knowledge to get started with ROS smoothly.
What You Will Learn
How to build C++ programs
How to create a library
Understand the Standard Template Library (STL) and how it can help you create better code
How to use C++ classes to optimize your code
Inheritance
Function overriding and function overloading
How to use pointers and references for optimal memory management
Templates and Lambda expressions
How to use threads to parallelize tasks in C++
How to deal with unexpected or exceptional errors in your code
100% Online
Intermediate Level
Approx. 40 hours to complete
Prerequisites
Simulated Robot Used
TurtleBot 2 & Hexapod Robot
Throughout the course, you’ll use two simulated robots to learn and practice every topic in C++
Syllabus
Unit 1: Build Tools
In this unit, you will learn about the build tools. Specifically, you will learn about:
- Clang as a compiler and understand the compilation process in detail.
- Create a library from scratch and apply it to a simulated robot.
- Understand linking and its significance in the compilation process.
- The need of a build system.
Unit 2: The STL Library
In this unit, we will understand the role of STL library in writing computer programs. We will discuss, understand and put to use the following concepts:
- C++ Containers
- Sequence Containers
- Associative Containers
- std::array
- std::vector
- std::deque
- std::list & std::forward_list
- std::set & std::multiset
- std::map && std::unordered_map
2. Iterators
Unit 3: Modern C++ Classes
In this unit we will understand and implement the following content:
- Classes and how to access class members.
- Role of public, private and protected keywords
- Constructors and Destructors
- Structures
- Non-static data member initializers
- this pointer
- Constant member functions
- Static Class members
- Copy Constructor
- Delegating Constructor
- Default and deleted functions
- Move semantics
Unit 4: Object Oriented Programming (OOP)
In this unit, you will learn and implement the concepts as we at The Construct believe in learning by practice. Make sure you go through demos and exercise thoroughly, in case of doubts or guidance you can ask for help on our forums. So, let me quickly brief you with what topics we are about to learn:
- Inheritance
- Composition
- Function Overriding and function overloading
- Virtual Keyword
- Abstract Classes
- Interfaces
- Polymorphism
- TypeCasting
Unit 5: Pointers and References
Unit 6: Templates and Lambda expressions
In this unit we will learn the basics of:
- Template Functions
- Template Classes
- Type Deduction
- Template Specialization
- Basics of Lambda Functions
Unit 7: Concurrency ( threads in C++)
Unit 8: Exception Handling
In this unit, we will learn about exception handling. As the name suggests, we will be tackling unexpected or exceptional errors. This means that code that does not have any errors during compile-time can still have run-time errors when we execute the code. So to handle such types of runtime errors, we will study and implement exception handling. We will go through the following concepts to understand the topic:
- Throwing an exception from a function
- Handling Multiple Exceptions
- User-defined exception classes
- Class level exceptions
- std::exception class hierarchy
What our students think
“I have had a great experience with The Construct. I believe much of what I have learned thus far regarding ROS has been from these courses and the concepts behind the implementation of ROS have been helpful even outside of ROS applications.“
“I’m very happy about working with The Constructsim, it is affordable, it is very comfortable for me, and the tools in the GUI are very useful“
“I really liked the learning approach based on projects and practical examples and I found the final project with an actual robot to be very useful and challenging.“
Course creators
Ricardo Téllez
CEO @ The Construct | Teacher of Robotics at La Salle University and Universitat Politècnica de Catalunya
Miguel Angel
Head of Research @ The Construct | Creator of over 10 ROS AI courses | Author of ROS IN 5 DAYS book collection
ROBERTO ZEGERS
Robotic Software Engineer @ The Construct / Creator of ROS courses / Instructor for the ROS2 live training program
Rupali Garewal
A passionate robotics engineer who loves to teach. He builds autonomous mobile robots and devices to aid the physically challenged
Start Learning Now.
RESULTS GUARANTEED