Programming

This section focuses on programming techniques, tools, and libraries commonly used. It includes practical guides and examples for libraries like Boost, Eigen, and Python Construct, as well as programming concepts like multithreading, build systems, and preparing for technical interviews.

Key Subsections and Highlights

  • Boost C++ Libraries Highlights the widely-used Boost library in C++ for robotics. Discusses essential components like shared pointers, mutexes, and threading. Provides examples and resources for using Boost in robotics applications to minimize memory leaks and ensure thread safety.

  • Boost: Iterations in Maps and Vectors Explains how Boost simplifies working with maps and vectors in C++. Demonstrates an efficient approach to iterating through std::map using Boost’s FOREACH and adaptors, with a practical example for managing robot IDs and poses.

  • CMake and Other Build Systems Provides an in-depth guide to CMake, a tool that simplifies building projects in compiled languages like C++ and integrates seamlessly with external libraries. Covers folder structure, common functions, and best practices for managing large projects and external dependencies.

  • Eigen Geometry Library for C++ Details the use of Eigen for matrix and vector operations, transformations, and handling quaternions. Includes examples for creating rotation matrices, extracting translation vectors, and performing homogeneous transformations.

  • Git Covers Git as a distributed version control system. Explains GUI options, repository providers like GitHub, GitLab, and BitBucket, and includes learning resources from beginner to advanced levels. Offers tips on using Git effectively in robotics projects.

  • Multithreaded Programming as an Alternative to ROS Discusses the use of pthreads and Boost for multithreading as a lightweight alternative to ROS for single-system applications. Includes a practical example for parallelizing IMU data processing and resources for learning pthreads.

  • Programming Interviews A comprehensive guide for preparing for technical interviews in the robotics industry. Discusses algorithms, data structures, operating systems, and coding skills. Provides curated resources, LeetCode strategies, and system design tips for interview preparation.

  • Python Construct Library Explores the Python Construct library for building and parsing binary data. Highlights its utility for reliable serial communication in robotics systems. Includes examples of creating structured messages with CRC error-checking.

Resources

General Programming Resources

Technical Interview Preparation

Multithreading and Binary Parsing

Tutorials and Forums

Books