A journey to mastering engineering through The Triangular Approach — Books, Courses, and Projects — to become a full-rounded engineer.
This is my open notebook, my playbook, and my gift to the community. Note: The repo is undergoing fixations of broken links.
- Introduction
- The Triangular Approach
- Roadmap Overview
- Foundations of Computer Engineering
- Programming and Problem Solving
- Mathematics
- Systems and Hardware
- Robotics and Autonomous Systems
- Self-Driving Vehicles
- Artificial Intelligence
- PCB Design and Electronics
- Tools and Ecosystems
- Communities, Competitions, and Growth
- Resources I Gathered from the Open Source Community
This repository is the complete map of my engineering journey — everything I’m learning, building, and exploring, shared openly.
It’s not just a list of links.
It’s a system: a way to study, grow, and create things that matter.
I study Computer Engineering, but I’m not stopping at textbooks.
My interests span:
- Robotics & Autonomous Systems
- Artificial Intelligence
- PCB & Hardware Design
- Systems Engineering
- Mathematics, Programming, and Problem Solving
From the fundamentals to advanced systems, this is where learning transforms into building, and building transforms into breakthroughs.
My mission with Awesome_Eyes is simple:
- Share the best resources I’ve found
- Show how I apply them
- Inspire others to create their own path
Inspired by the Deathly Hallows from Harry Potter — three powerful artifacts that together grant mastery — The Triangular Approach is my framework for deep learning:
The Three Pillars:
- Books – Deep, timeless knowledge
- Courses / Tutorials / Papers – Structured, guided learning
- Projects – Real-world application
Individually, each pillar is powerful. Together, they create mastery.
Below is the master roadmap — each section contains:
- Books (theory)
- Courses / Tutorials / Papers (practice with guidance)
- Projects (independent application)
A comprehensive learning path from zero to hero in programming and problem-solving, following the Trinity Approach: Books + Courses/Tutorials/Papers + Projects.
- Phase 1: Fundamentals
- Phase 2: Core Programming
- Phase 3: Data Structures & Algorithms
- Phase 4: Advanced Problem Solving
- Phase 5: Specialized Domains
- Phase 6: Mastery & Leadership
- Problem-Solving Practice Platforms
Building the foundation: basic programming concepts and computational thinking.
Books
- Think Like a Programmer – V. Anton Spraul
- Code Complete – Steve McConnell
- The Pragmatic Programmer – David Thomas & Andrew Hunt
- Python Crash Course – Eric Matthes
- Automate the Boring Stuff with Python – Al Sweigart
Courses/Tutorials/Papers
- CS50x – Harvard
- Python for Everybody – University of Michigan (Coursera)
- MIT 6.0001 – Introduction to Computer Science and Programming in Python
- FreeCodeCamp Python Course
- Codecademy Python Track
- Khan Academy Intro to Programming
Projects
- Calculator Application
- Number Guessing Game
- To-Do List Manager
- Simple Text Adventure Game
- Basic Web Scraper
- Personal Expense Tracker
Deepening programming knowledge: OOP, design patterns, and software engineering.
Books
- Object-Oriented Programming in Python – Goldwasser, Liang & Letscher
- Clean Code – Robert C. Martin
- Design Patterns – Gamma et al.
- Effective Python – Brett Slatkin
- Structure and Interpretation of Computer Programs – Abelson & Sussman
Courses/Tutorials/Papers
- Object-Oriented Programming in Python – University of Michigan
- MIT 6.006 – Introduction to Algorithms
Projects
- Library Management System
- Banking System Simulator
- Game of Life Implementation
- Chat Application
- File Compression Tool
- Simple Database Engine
Mastering the core of computer science: efficient data handling and algorithmic thinking.
Books
- Introduction to Algorithms – CLRS
- Data Structures and Algorithms in Python – Goodrich, Tamassia & Goldwasser
- Algorithm Design Manual – Steven Skiena
- Algorithms – Robert Sedgewick & Kevin Wayne
- Cracking the Coding Interview – Gayle McDowell
Courses/Tutorials/Papers
- Algorithms Specialization – Stanford (Coursera)
- MIT 6.046J – Design and Analysis of Algorithms
- Princeton Algorithms Course – Coursera
- AlgoExpert
- LeetCode Explore
- GeeksforGeeks DSA Course
Projects
- Sorting Visualizer
- Graph Path Finder
- Binary Search Tree Operations
- Hash Table Implementation
- LRU Cache System
- Expression Evaluator
Competitive programming and complex algorithmic challenges.
Books
- Competitive Programming – Steven & Felix Halim
- Programming Challenges – Skiena & Revilla
- Elements of Programming Interviews
- Dynamic Programming for Coding Interviews – Meenakshi & Kamal Rawat
- Advanced Data Structures – Peter Brass
Courses/Tutorials/Papers
- Competitive Programming Course – ITMO University
- Dynamic Programming Course – Coursera
- Advanced Algorithms – MIT 6.854
- Codeforces Educational Rounds
- TopCoder Algorithm Tutorials
- ACM Digital Library
Projects
- Online Judge System
- Chess Engine
- Compiler/Interpreter
- Network Flow Solver
- Computational Geometry Toolkit
- Distributed Systems Simulator
Applying problem-solving skills to specific domains.
Books
Machine Learning & AI
- Pattern Recognition and Machine Learning – Christopher Bishop
- Hands-On Machine Learning – Aurélien Géron
Systems Programming
- Computer Systems: A Programmer's Perspective – Bryant & O'Hallaron
- The Linux Programming Interface – Michael Kerrisk
Web Development
Courses/Tutorials/Papers
Machine Learning
- CS229 – Stanford Machine Learning
- Deep Learning Specialization – Andrew Ng
- Fast.ai – Practical Deep Learning
Systems
Web Development
Projects
- Machine Learning: Recommendation System, Computer Vision App, NLP Chatbot, Time Series Forecasting
- Systems Programming: Custom Shell, Memory Allocator, File System, Network Protocol
- Web Development: E-commerce Platform, Real-time Collaboration Tool, API Gateway, Progressive Web App
Research, innovation, and teaching others.
Books
- The Mythical Man-Month – Frederick Brooks
- Designing Data-Intensive Applications – Martin Kleppmann
- Site Reliability Engineering – Google
- Building Microservices – Sam Newman
- The Art of Computer Programming – Donald Knuth
Courses/Tutorials/Papers
- Graduate-level CS courses (choose your specialization)
- Research Papers
- Conference Talks: ICML, NeurIPS, SIGCOMM
- Tech Company Engineering Blogs: Netflix, Uber, Google
- Open Source Contributions to major projects
Projects
- Open Source Library/Framework
- Research Implementation
- Startup MVP
- Teaching Platform
- Technical Writing
- Mentorship Program
Beginner to Intermediate
Advanced
- Overview
- Curated Resources
- Projects
- Repository Structure
- How to Use This Repository
- Contributing
- License
This section is designed to:
- Curate high-quality resources for competitive programming and problem-solving, covering guides, platforms, and tools.
- Provide practical projects inspired by my competition experience (e.g., algorithm optimization for autonomous vehicles).
- Integrate with my broader repo, linking to
/Programming_Problem_Solving(for coding skills) and/Robotics_Autonomous_Systems(for algorithmic applications). - Highlight my journey, showcasing problem-solving skills for robotics competitions and engineering challenges.
The resources below cover awesome lists, platforms, and courses for problem solving, organized for easy access.
| Name | Link | Description |
|---|---|---|
| Competitive Programming Guideline | github.com/ShahjalalShohag/Competitive-Programming-A-Complete-Guideline | Complete guide to competitive programming, including algorithms and tips. |
| Arabic Competitive Programming | github.com/mostafa-saad/ArabicCompetitiveProgramming | Arabic resources for competitive programming, great for non-English speakers. |
| Awesome Competitive Programming | github.com/lnishan/awesome-competitive-programming | Curated list of competitive programming resources and tools. |
| Competitive Programming Library | github.com/hazemadelkhalel/Competitive-Programming-Library | Library and roadmap for competitive programming. |
| Name | Link | Description |
|---|---|---|
| Edabit C++ Challenges | edabit.com/challenges/cpp | C++ challenges for problem-solving practice. |
| HackerEarth | hackerearth.com/ | Platform for coding challenges and hackathons. |
| VJudge | vjudge.net/ | Virtual judge for practicing problems from multiple platforms. |
| LeetCode Interview | leetcode.com/interview/ | Interview preparation with coding problems. |
| HackerRank | hackerrank.com/ | Coding platform with challenges and tutorials. |
| CodeChef | codechef.com/ | Competitive programming contests and practice. |
| NeetCode | neetcode.io/ | Curated LeetCode problems for interview prep. |
| Codeforces | codeforces.com/group/MWSDmqGsZm/contests | Contests for competitive programming practice. |
| Codewars | codewars.com/ | Gamified coding challenges. |
| SPOJ | spoj.com/ | Sphere Online Judge for algorithm problems. |
| BeeCrowd | judge.beecrowd.com/en/login?redirect=%2Fen%2Fcategories | Problem-solving platform with categorized challenges. |
| LeetCode New Users | leetcode.com/problem-list/challenges-for-new-users/?difficulty=EASY&page=1 | Easy problems for new users on LeetCode. |
| Name | Link | Description |
|---|---|---|
| ITMO Competitive Programming | courses.edx.org/courses/course-v1:ITMOx+I2CPx+3T2017/bf78f3a948074b16ba7146b1be3b4850/ | edX course on competitive programming. |
| Azhar ICPC | sites.google.com/view/azharicpc/home?authuser=0 | ICPC preparation resources and guides. |
| Arabic Competitive Programming (YouTube) | youtube.com/c/ArabicCompetitiveProgramming | YouTube channel for Arabic competitive programming tutorials. |
| Problem Solving Sheet | docs.google.com/spreadsheets/d/1iJZWP2nS_OB3kCTjq8L6TrJJ4o-5lhxDOyTaocSYc-k/edit?gid=84654839#gid=84654839 | Spreadsheet with problem-solving practice problems. |
| ICPC Global | icpc.global/ | Official ICPC website for competitions and resources. |
These projects leverage the provided problem-solving resources to build practical skills, inspired by my competition experience. See /Problem_Solving/projects/ for code and documentation.
- LeetCode Interview Prep: Solve interview problems using LeetCode Interview and NeetCode for algorithmic optimization in robotics. (Intermediate, competition-ready.)
- Codeforces Contest Simulator: Participate in virtual contests on Codeforces and implement solutions in C++. (Intermediate, Codeforces-focused.)
- HackerRank Challenge Solver: Build a Python script to solve challenges on HackerRank for graph algorithms in autonomous navigation. (Beginner, practical.)
- SPOJ Algorithm Implementation: Implement dynamic programming problems from SPOJ for resource allocation in Shell Eco-marathon. (Advanced, algorithm-focused.)
- Markdown Guide on CP Roadmap: Summarize competitive programming roadmap based on Competitive Programming Library in
/docs/cp_roadmap.md. (Beginner, educational.)
Problem_Solving/
├── docs/ # Notes and summaries (e.g., cp_roadmap.md)
├── projects/ # Project code and notebooks (e.g., leetcode_solver)
├── README.md # This file
Welcome to the Foundations of Computer Engineering section of my GitHub repository, documenting my journey as a computer engineering student aiming to become a full-rounded engineer with a passion for robotics and autonomous vehicles. This section covers CS/CE Fundamentals and Mathematics, forming the bedrock for advanced topics like robotics, AI, and self-driving systems. Using a trinity approach (Books, Courses/Tutorials/Papers, Projects), this roadmap progresses from beginner to advanced levels, with hands-on projects tailored to robotics applications and my experience in autonomous vehicle competitions.
This section is designed to:
- Provide a structured roadmap for mastering the foundational skills of computer engineering, split into CS/CE Fundamentals and Mathematics.
- Curate high-quality resources (books, courses, tutorials, papers) for each topic to support learning.
- Showcase projects that demonstrate practical skills, from basic programming to robotics-relevant applications like pathfinding or sensor interfacing.
- Integrate with my broader repo, connecting to areas like Robotics and AI, and highlighting my autonomous vehicle competition experience.
The roadmap is divided into CS/CE Fundamentals (software, hardware, and systems) and Mathematics (supporting robotics, AI, and control systems), with topics organized into Beginner, Intermediate, and Advanced levels. Each topic includes resources and projects stored in dedicated folders.
This subcategory covers the core skills of computer science and engineering, from programming to hardware, with an emphasis on applications in robotics and autonomous systems. An introductory topic sets the context, connecting software and hardware to your engineering journey.
Objective: Understand the scope of computer engineering, the interplay of hardware and software, and its relevance to robotics and autonomous systems.
- Books:
- "Computer Science Illuminated" by Nell Dale and John Lewis - Broad overview of CS and CE concepts.
- "The Art of Computer Programming, Vol. 1" by Donald Knuth - Foundational CS text.
- "Computer Organization and Design" by David A. Patterson and John L. Hennessy - Hardware-software interplay.
- Courses/Tutorials/Papers:
- Course: CS50’s Introduction to Computer Science (Harvard, free) - Comprehensive CS intro.
- Course: Introduction to Computer Engineering (LearnQuest, free audit) - CE overview.
- Tutorial: Computer Science Basics (Khan Academy, free) - Beginner-friendly guide.
- Tutorial: What is Computer Engineering? (CrashCourse, YouTube) - Short video intro.
- Paper: "The Computer for the 21st Century" by Mark Weiser, 1991 - Vision of ubiquitous computing.
- Projects (see
/CS_CE_Fundamentals/Introduction):- Create a markdown summary of CS/CE fields and their role in robotics (
/docs/csce_overview.md). - Build a binary-to-decimal converter in Python to understand number systems.
- Simulate a basic logic gate circuit using a tool like Logisim (Logisim).
- Develop a Jupyter notebook explaining hardware-software interplay in autonomous vehicles.
- Create a markdown summary of CS/CE fields and their role in robotics (
Objective: Master basic programming, structured programming, OOP, and design patterns for modular, reusable code.
- Books:
- "Python Crash Course" by Eric Matthes - Comprehensive Python guide.
- "C++ Primer" by Stanley B. Lippman - C++ for robotics programming.
- "Head First Design Patterns" by Eric Freeman and Elisabeth Robson - Accessible design patterns.
- "Clean Code" by Robert C. Martin - Writing maintainable code.
- Courses/Tutorials/Papers:
- Course: Python for Everybody (University of Michigan, free audit) - Python fundamentals.
- Course: C++ For C Programmers (UC Santa Cruz, free audit) - C++ for structured programming.
- Course: Object-Oriented Programming in Python (DataCamp, free trial) - OOP concepts.
- Course: Design Patterns (University of Alberta, free audit) - Software design principles.
- Tutorial: Learn Python - Full Course (freeCodeCamp, YouTube) - Hands-on Python.
- Tutorial: C++ Tutorial - Comprehensive C++ guide.
- Tutorial: Design Patterns in Python - Practical patterns.
- Paper: "Design Patterns: Elements of Reusable Object-Oriented Software" by Gamma et al., 1994 - Foundational patterns.
- Projects (see
/CS_CE_Fundamentals/Programming_Paradigms):- Build a task manager in Python using functions and lists for structured programming.
- Create a robot simulator class in C++ using OOP (e.g., Robot class with move/turn methods).
- Implement the Singleton pattern for a sensor data logger in Python.
- Develop a simple ROS node using OOP principles for robot control (ROS Tutorials).
- Create a Jupyter notebook comparing procedural vs. OOP approaches for a robotics task.
Objective: Learn fundamental data structures and algorithms for efficient coding.
- Books:
- "Introduction to Algorithms" by Thomas H. Cormen et al. - Standard algorithms text.
- "Data Structures and Algorithms in Python" by Michael T. Goodrich et al. - Python-based guide.
- "Algorithms Unlocked" by Thomas H. Cormen - Beginner-friendly.
- Courses/Tutorials/Papers:
- Course: Algorithms, Part I (Princeton, free audit) - Covers basic algorithms.
- Course: Data Structures (UC San Diego, free audit) - Foundational data structures.
- Course: Python Data Structures (University of Michigan, free audit).
- Tutorial: Data Structures Easy to Advanced (freeCodeCamp, YouTube).
- Tutorial: Big-O Notation - Complexity basics.
- Tutorial: Sorting Algorithms - Practical guide.
- Paper: "An Empirical Study of Sorting Algorithms" by Sedgewick, 1998 - Sorting analysis.
- Projects (see
/CS_CE_Fundamentals/Data_Structures_Algorithms_Basics):- Implement a stack-based calculator in Python for arithmetic expressions.
- Build a binary search algorithm for a sorted dataset (UCI Iris Dataset).
- Create a linked list for managing robot sensor data in C++.
- Develop a sorting visualizer using Python and Tkinter.
- Simulate a queue for task scheduling in a robotic system.
Objective: Understand basic circuits, components, and sensors for hardware applications.
- Books:
- "Practical Electronics for Inventors" by Paul Scherz and Simon Monk - Hands-on electronics guide.
- "The Art of Electronics" by Paul Horowitz and Winfield Hill - Comprehensive electronics text.
- "Make: Electronics" by Charles Platt - Beginner-friendly.
- Courses/Tutorials/Papers:
- Course: Electronics Fundamentals (University of Colorado, free audit).
- Course: Introduction to Electronics (Georgia Tech, free audit).
- Course: Circuits and Electronics (MIT, free).
- Tutorial: Electronics Tutorials - Practical circuit guides.
- Tutorial: All About Circuits - Free electronics tutorials.
- Tutorial: SparkFun Electronics Basics - Sensor/actuator intro.
- Paper: "A Tutorial on Basic Circuit Theory" by IEEE, 2000 - Circuit basics.
- Projects (see
/CS_CE_Fundamentals/Electronics):- Build a LED blinking circuit with Arduino and analyze voltage drops.
- Create a sensor interface for a temperature sensor (e.g., LM35) with Arduino.
- Simulate a logic gate circuit using Logisim (Logisim).
- Develop a Jupyter notebook modeling Ohm’s law for robot motor circuits.
- Construct a simple robot motor driver using transistors and breadboard.
Objective: Understand CPU architecture, memory systems, and low-level programming.
- Books:
- "Computer Organization and Design" by David A. Patterson and John L. Hennessy - Standard text.
- "Structured Computer Organization" by Andrew S. Tanenbaum - Architecture basics.
- "Digital Design and Computer Architecture" by Sarah Harris and David Harris - RISC-V focus.
- Courses/Tutorials/Papers:
- Course: Computer Architecture (Princeton, free audit).
- Course: Computer Organization (Udemy, paid but often discounted).
- Course: RISC-V Architecture (UC Berkeley, free).
- Tutorial: Computer Architecture Tutorials - Practical guide.
- Tutorial: Assembly Language Programming - Assembly basics.
- Tutorial: Cache Memory Explained (YouTube, Neso Academy).
- Paper: "The Case for RISC-V" by Patterson and Waterman, 2017 - RISC-V intro.
- Projects (see
/CS_CE_Fundamentals/Computer_Architecture):- Write an assembly program for basic arithmetic on a RISC-V simulator (RARS).
- Simulate a CPU pipeline using a tool like Verilog or VHDL.
- Create a memory hierarchy analyzer to study cache performance in C++.
- Build a Jupyter notebook visualizing instruction execution in a CPU.
- Design a simple ALU in Logisim for robotics control signals.
Objective: Master processes, scheduling, memory management, and RTOS for real-time systems.
- Books:
- "Operating System Concepts" by Abraham Silberschatz et al. - Standard OS text.
- "Modern Operating Systems" by Andrew S. Tanenbaum - Comprehensive guide.
- "Real-Time Systems" by Jane W. S. Liu - RTOS focus.
- Courses/Tutorials/Papers:
- Course: Operating Systems and You (Google, free audit).
- Course: Introduction to Operating Systems (Udacity, free).
- Course: Real-Time Embedded Systems (University of Colorado, free audit).
- Tutorial: OS Tutorial - Comprehensive guide.
- Tutorial: RTOS Basics - FreeRTOS intro.
- Tutorial: Linux Kernel Basics - Linux OS guide.
- Paper: "The Design of the UNIX Operating System" by Maurice J. Bach, 1986 - Classic OS design.
- Projects (see
/CS_CE_Fundamentals/Operating_Systems):- Implement a process scheduler in C simulating round-robin scheduling.
- Build a memory allocator in C++ for a simple OS kernel.
- Create a real-time task manager using FreeRTOS on Arduino.
- Develop a file system explorer in Python to simulate OS file operations.
- Simulate a thread synchronization problem (e.g., producer-consumer) for robotics tasks.
Objective: Learn relational/NoSQL databases, design, and querying for data management.
- Books:
- "Database Systems: The Complete Book" by Hector Garcia-Molina et al. - Comprehensive guide.
- "SQL in 10 Minutes, Sams Teach Yourself" by Ben Forta - Quick SQL intro.
- "NoSQL Distilled" by Pramod J. Sadalage and Martin Fowler - NoSQL basics.
- Courses/Tutorials/Papers:
- Course: Introduction to Databases (Stanford, free audit).
- Course: SQL for Data Science (UC Davis, free audit).
- Course: NoSQL Databases (Udemy, paid but often discounted).
- Tutorial: SQL Tutorial - Interactive SQL guide.
- Tutorial: MongoDB Tutorial - Official NoSQL guide.
- Tutorial: Database Normalization - Practical guide.
- Paper: "A Relational Model of Data for Large Shared Data Banks" by E.F. Codd, 1970 - Relational DB foundation.
- Projects (see
/CS_CE_Fundamentals/Databases):- Build a SQL database for storing robot sensor logs (SQLite).
- Create a NoSQL database with MongoDB for autonomous vehicle telemetry.
- Develop a query optimizer to retrieve competition data efficiently.
- Implement a database schema for a robotics competition leaderboard.
- Create a data visualization dashboard for sensor data using Python and SQL.
Objective: Master advanced data structures and algorithms for optimization and robotics applications.
- Books:
- "Algorithms" by Robert Sedgewick and Kevin Wayne - Advanced algorithms guide.
- "Advanced Data Structures" by Peter Brass - In-depth data structures.
- "Competitive Programming" by Steven Halim and Felix Halim - Competition-focused.
- Courses/Tutorials/Papers:
- Course: Algorithms, Part II (Princeton, free audit).
- Course: Advanced Algorithms and Complexity (UC San Diego, free audit).
- Course: Competitive Programming (Udemy, paid but often discounted).
- Tutorial: Graph Algorithms - Practical guide.
- Tutorial: Dynamic Programming - DP basics.
- Tutorial: A* Pathfinding - Robotics-relevant guide.
- Paper: "A* Search Algorithm" by Hart et al., 1968 - Pathfinding foundation.
- Projects (see
/CS_CE_Fundamentals/Data_Structures_Algorithms_Advanced):- Implement A pathfinding* for robot navigation (OpenStreetMap Data).
- Build a minimum spanning tree for network optimization in C++.
- Create a dynamic programming solution for a knapsack problem in robotics resource allocation.
- Develop a graph-based route planner for an autonomous vehicle.
- Simulate a heap-based task scheduler for real-time robotics tasks.
Objective: Understand network models, protocols, and communication for distributed systems.
- Books:
- "Computer Networking: A Top-Down Approach" by James F. Kurose and Keith W. Ross - Standard networking text.
- "Data Communications and Networking" by Behrouz A. Forouzan - Comprehensive guide.
- "TCP/IP Illustrated, Vol. 1" by W. Richard Stevens - Protocol deep dive.
- Courses/Tutorials/Papers:
- Course: Introduction to Computer Networking (Stanford, free audit).
- Course: Networking Fundamentals (Cisco, free audit).
- Course: IoT Networking (University of Illinois, free audit).
- Tutorial: Networking Tutorial - Practical guide.
- Tutorial: Socket Programming in Python - Hands-on networking.
- Tutorial: Zigbee for IoT - Robotics-relevant protocol.
- Paper: "A Protocol for Packet Network Intercommunication" by Cerf and Kahn, 1974 - TCP/IP foundation.
- Projects (see
/CS_CE_Fundamentals/Networks):- Build a client-server chat application using Python sockets.
- Create a ROS network for robot-to-robot communication (ROS Tutorials).
- Simulate V2V communication for autonomous vehicles using UDP.
- Develop a network sniffer to analyze robotics telemetry packets.
- Implement a secure communication protocol using basic encryption for IoT devices.
Objective: Master microcontroller programming and hardware interfacing for robotics.
- Books:
- "The AVR Microcontroller and Embedded Systems" by Muhammad Ali Mazidi - AVR focus.
- "Embedded Systems with ARM Cortex-M Microcontrollers" by Yifeng Zhu - ARM guide.
- "Programming Embedded Systems" by Michael Barr and Anthony Massa - Practical embedded.
- Courses/Tutorials/Papers:
- Course: Embedded Systems (University of Colorado, free audit).
- Course: Microcontroller Embedded C Programming (Udemy, paid but often discounted).
- Course: ARM Cortex-M Programming (UT Austin, free).
- Tutorial: Arduino Tutorials - Official Arduino guide.
- Tutorial: Raspberry Pi Embedded - Practical guide.
- Tutorial: Embedded Systems with STM32 - STM32 guide.
- Paper: "TinyOS: An Operating System for Sensor Networks" by Levis et al., 2005 - Embedded OS.
- Projects (see
/CS_CE_Fundamentals/Microcontrollers):- Build a line-following robot with Arduino and IR sensors.
- Create a real-time sensor logger using Raspberry Pi and C.
- Implement an interrupt-driven motor controller for a robot arm.
- Develop a custom embedded protocol for sensor-actuator communication.
- Simulate a microcontroller-based PID controller for robotics stability.
Objective: Learn software development lifecycle, version control, and CI/CD for scalable projects.
- Books:
- "The Pragmatic Programmer" by Andrew Hunt and David Thomas - Software best practices.
- "Code Complete" by Steve McConnell - Comprehensive guide.
- "Refactoring" by Martin Fowler - Code improvement.
- Courses/Tutorials/Papers:
- Course: Software Engineering Essentials (TUM, free audit).
- Course: Agile Development (University of Virginia, free audit).
- Course: DevOps on AWS (AWS, free audit).
- Tutorial: Git and GitHub Tutorial (freeCodeCamp, YouTube).
- Tutorial: CI/CD with GitHub Actions - Official guide.
- Tutorial: Unit Testing in Python - Practical testing.
- Paper: "A Spiral Model of Software Development" by Barry Boehm, 1988 - SDLC classic.
- Projects (see
/CS_CE_Fundamentals/Software_Engineering):- Create a GitHub CI/CD pipeline for a robotics project using GitHub Actions.
- Develop a unit-tested ROS node in Python/C++.
- Build a software requirements doc for an autonomous vehicle system.
- Refactor a messy codebase for a robot controller to improve readability.
- Implement an Agile project tracker for a competition team using Trello API.
This subcategory provides the mathematical foundation for computer engineering, robotics, AI, and autonomous systems, progressing from basics to robotics-specific applications.
Objective: Learn sets, logic, combinatorics, and graph theory for algorithms and digital systems.
- Books:
- "Discrete Mathematics and Its Applications" by Kenneth H. Rosen - Standard text.
- "Concrete Mathematics" by Ronald L. Graham et al. - CS-focused math.
- "Introduction to Graph Theory" by Richard J. Trudeau - Graph basics.
- Courses/Tutorials/Papers:
- Course: Discrete Mathematics (Shanghai Jiao Tong University, free audit).
- Course: Introduction to Discrete Mathematics for CS (UC San Diego, free audit).
- Course: Graph Theory (Udemy, paid but often discounted).
- Tutorial: Discrete Math Tutorials - Logic and sets.
- Tutorial: Graph Theory Basics - Practical guide.
- Tutorial: Combinatorics for CS - Interactive problems.
- Paper: "Graph Theory in Computer Science" by Bondy and Murty, 2008 - Graph applications.
- Projects (see
/Mathematics/Discrete_Mathematics):- Implement a graph traversal (BFS/DFS) for a maze-solving robot.
- Create a logic circuit validator using propositional logic in Python.
- Build a combinatorial optimizer for scheduling robot tasks.
- Develop a Jupyter notebook visualizing graph properties (e.g., connectivity).
- Simulate a finite state machine for a robot controller.
Objective: Master linear equations, matrices, and trigonometry for engineering foundations.
- Books:
- "Linear Algebra and Its Applications" by Gilbert Strang - Matrix basics.
- "Precalculus: Mathematics for Calculus" by James Stewart et al. - Algebra and trig.
- "Algebra and Trigonometry" by Ron Larson - Comprehensive guide.
- Courses/Tutorials/Papers:
- Course: Precalculus (Khan Academy, free) - Algebra and trig basics.
- Course: Linear Algebra (UT Austin, free).
- Course: Algebra for Engineers (HKUST, free audit).
- Tutorial: Matrix Algebra - Beginner guide.
- Tutorial: Trigonometry for Robotics - Robotics context.
- Tutorial: Complex Numbers - Practical guide.
- Paper: "Linear Algebra in Computer Science" by David Lay, 2015 - CS applications.
- Projects (see
/Mathematics/Algebra_Precalculus):- Solve linear equations for robot arm positioning in Python.
- Create a matrix transformation tool for 2D robot coordinates.
- Build a trigonometry-based path planner for a robot’s circular motion.
- Develop a Jupyter notebook visualizing vector operations for robotics.
- Simulate a complex number calculator for signal processing.
Objective: Understand matrices, eigenvalues, and transformations for robotics and AI.
- Books:
- "Introduction to Linear Algebra" by Gilbert Strang - Comprehensive guide.
- "Linear Algebra Done Right" by Sheldon Axler - Theoretical depth.
- "Matrix Computations" by Gene H. Golub and Charles F. Van Loan - Computational focus.
- Courses/Tutorials/Papers:
- Course: Mathematics for Machine Learning: Linear Algebra (Imperial College London, free audit).
- Course: Linear Algebra for Engineers (HKUST, free audit).
- Course: Advanced Linear Algebra (Udemy, paid but often discounted).
- Tutorial: Essence of Linear Algebra (3Blue1Brown, YouTube) - Visual explanations.
- Tutorial: Linear Algebra for Robotics - Robotics context.
- Tutorial: Eigenvalues and Eigenvectors - Practical guide.
- Paper: "A Tutorial on Principal Component Analysis" by Jonathon Shlens, 2014 - PCA for robotics.
- Projects (see
/Mathematics/Linear_Algebra):- Implement PCA for dimensionality reduction in sensor data (UCI Sensor Dataset).
- Create a transformation matrix for 3D robot arm positioning.
- Build a Jupyter notebook visualizing eigenvalues in robotics dynamics.
- Develop a linear system solver for robot kinematics.
- Simulate a robot’s coordinate transformation using NumPy.
Objective: Master derivatives, integrals, and optimization for dynamic systems.
- Books:
- "Calculus" by James Stewart - Standard calculus text.
- "Calculus Made Easy" by Silvanus P. Thompson - Beginner-friendly.
- "Multivariable Calculus" by Ron Larson and Bruce H. Edwards - Advanced calculus.
- Courses/Tutorials/Papers:
- Course: Calculus 1 (University of Pennsylvania, free audit).
- Course: Multivariable Calculus (MIT, free).
- Course: Calculus for Machine Learning (Imperial College London, free audit).
- Tutorial: Calculus Basics - Interactive lessons.
- Tutorial: Gradient Descent - Optimization guide.
- Tutorial: Calculus in Robotics - Robotics context.
- Paper: "Optimization by Gradient Descent" by Boyd and Vandenberghe, 2004 - Optimization basics.
- Projects (see
/Mathematics/Calculus):- Implement gradient descent for a robot path optimization problem.
- Create a velocity controller using derivatives for a simulated robot.
- Build a Jupyter notebook visualizing multivariable calculus for 3D motion.
- Develop an integral-based trajectory planner for autonomous vehicles.
- Simulate a cost function optimizer for robotics control.
Objective: Learn probability and statistics for handling uncertainty in robotics and AI.
- Books:
- "Introduction to Probability" by Joseph K. Blitzstein and Jessica Hwang - Comprehensive guide.
- "Probability and Statistics" by Morris H. DeGroot and Mark J. Schervish - Detailed text.
- "Practical Statistics for Data Scientists" by Peter Bruce et al. - Applied stats.
- Courses/Tutorials/Papers:
- Course: Introduction to Probability (MIT, free).
- Course: Statistics and Probability (Khan Academy, free).
- Course: Probability for Data Science (UC San Diego, free audit).
- Tutorial: Probability Basics - Free online course.
- Tutorial: Bayesian Inference - Practical guide.
- Tutorial: Statistics for Robotics - Robotics context.
- Paper: "Probabilistic Graphical Models" by Koller and Friedman, 2009 - Robotics applications.
- Projects (see
/Mathematics/Probability_Statistics):- Build a Bayesian localization model for a robot using sensor data.
- Create a statistical analyzer for competition telemetry (Kaggle F1 Dataset).
- Implement a Monte Carlo simulation for robot path uncertainty.
- Develop a hypothesis testing tool for sensor accuracy in Python.
- Visualize probability distributions in a Jupyter notebook for robotics scenarios.
Objective: Model dynamic systems for robotics and autonomous vehicles.
- Books:
- "Differential Equations with Applications" by Paul Blanchard et al. - Practical guide.
- "Ordinary Differential Equations" by Morris Tenenbaum and Harry Pollard - Comprehensive text.
- "Partial Differential Equations for Scientists and Engineers" by Stanley J. Farlow - PDE focus.
- Courses/Tutorials/Papers:
- Course: Differential Equations for Engineers (HKUST, free audit).
- Course: Introduction to Differential Equations (MIT, free).
- Course: PDEs for Engineers (Udemy, paid but often discounted).
- Tutorial: ODEs in Python - SciPy guide.
- Tutorial: PDEs in Robotics - Robotics context.
- Tutorial: Numerical Solutions for ODEs - Practical guide.
- Paper: "Differential Equations in Robotics" by Spong and Vidyasagar, 2005 - Robotics applications.
- Projects (see
/Mathematics/Differential_Equations):- Solve an ODE for a robot’s motion dynamics using SciPy.
- Simulate a PDE-based fluid model for autonomous vehicle aerodynamics.
- Build a Jupyter notebook visualizing robot arm dynamics.
- Develop a numerical ODE solver for a control system.
- Create a pendulum simulator for robotics stability analysis.
Objective: Learn computational methods for solving mathematical problems in engineering.
- Books:
- "Numerical Methods for Engineers" by Steven C. Chapra and Raymond P. Canale - Engineering focus.
- "Numerical Recipes" by William H. Press et al. - Computational guide.
- "Applied Numerical Methods with MATLAB" by Steven C. Chapra - MATLAB-based.
- Courses/Tutorials/Papers:
- Course: Numerical Methods for Engineers (HKUST, free audit).
- Course: Introduction to Numerical Analysis (MIT, free).
- Course: Numerical Methods in Python (Udemy, paid but often discounted).
- Tutorial: Numerical Methods with NumPy - Practical guide.
- Tutorial: Root-Finding Algorithms - Practical guide.
- Tutorial: Numerical Integration - SciPy guide.
- Paper: "Numerical Linear Algebra" by Trefethen and Bau, 1997 - Computational methods.
- Projects (see
/Mathematics/Numerical_Methods):- Implement Newton-Raphson for solving robot kinematics equations.
- Create a numerical integrator for trajectory planning in Python.
- Build a Jupyter notebook comparing numerical methods for ODEs.
- Develop a linear system solver for robotics transformations.
- Simulate a numerical optimizer for robot control parameters.
Objective: Master spatial reasoning and transformations for robotics navigation.
- Books:
- "Computational Geometry" by Mark de Berg et al. - Geometry for CS.
- "Geometry for Programmers" by Oleksandr Kaleniuk - Practical guide.
- "Quaternions and Rotation Sequences" by Jack B. Kuipers - Quaternion focus.
- Courses/Tutorials/Papers:
- Course: Computational Geometry (Tsinghua University, free audit).
- Course: Robotics: Computational Motion Planning (University of Pennsylvania, free audit).
- Course: Geometry for Robotics (Udemy, paid but often discounted).
- Tutorial: 3D Transformations - Pixar’s guide.
- Tutorial: Quaternions for Robotics - Robotics context.
- Tutorial: Homogeneous Transformations - Practical guide.
- Paper: "Geometric Methods in Robotics" by Murray et al., 1994 - Robotics geometry.
- Projects (see
/Mathematics/Geometry_Transformations):- Build a 3D transformation tool for robot arm positioning in Python.
- Create a quaternion-based orientation tracker for a drone.
- Develop a Jupyter notebook visualizing homogeneous transformations.
- Simulate a SLAM algorithm using geometric transformations (KITTI Dataset).
- Implement a collision detection system for robot navigation.
Objective: Learn feedback systems and controllers for robotics stability.
- Books:
- "Modern Control Engineering" by Katsuhiko Ogata - Standard text.
- "Feedback Control of Dynamic Systems" by Gene F. Franklin et al. - Comprehensive guide.
- "Control Systems Engineering" by Norman S. Nise - Practical focus.
- Courses/Tutorials/Papers:
- Course: Control of Mobile Robots (Georgia Tech, free audit).
- Course: Introduction to Control Systems (ETH Zurich, free).
- Course: PID Control (Udemy, paid but often discounted).
- Tutorial: PID Controller Basics - Practical guide.
- Tutorial: Control Systems for Robotics - Robotics context.
- Tutorial: State-Space Models - Practical guide.
- Paper: "PID Control: A Tutorial" by Astrom and Hagglund, 2001 - PID foundation.
- Projects (see
/Mathematics/Control_Theory):- Implement a PID controller for a robot’s speed control using Arduino.
- Simulate a state-space model for a quadcopter in Python.
- Build a Jupyter notebook analyzing stability of a robotic system.
- Develop a feedback controller for an autonomous vehicle’s steering.
- Create a control system simulator for a robotic arm.
Welcome to the Systems and Hardware section of my GitHub repository, documenting my journey as a computer engineering student aiming to become a full-rounded engineer with a focus on robotics and autonomous vehicles. This category bridges Operating Systems and Embedded Systems and Hardware Theory, providing the low-level foundation for robotics applications like real-time control and sensor integration in competitions (e.g., F1TENTH, Shell Eco-marathon). Using the trinity approach (Books, Courses/Tutorials/Papers, Projects), this roadmap progresses from beginner to advanced levels, covering software (e.g., kernel programming, RTOS), hardware (e.g., microcontrollers, FPGA), and their integration for efficient, high-performance systems.
This README serves as the central hub for the Systems and Hardware category, outlining the roadmap, linking to resources, and showcasing projects. Whether you're a beginner, a fellow student, or a recruiter, use this repo to explore low-level systems, embedded hardware, and their applications in robotics and autonomous systems.
This section is designed to:
- Provide a structured roadmap for mastering operating systems and embedded hardware, from basics to advanced applications in robotics.
- Curate high-quality resources (books, courses, tutorials, papers) to support learning across software and hardware.
- Showcase projects that demonstrate practical skills, from simple microcontroller setups to competition-ready real-time systems (e.g., F1TENTH vehicle drivers).
- Integrate with my broader repo, linking to
/Foundations(e.g., programming, electronics) and/Robotics_Autonomous_Systems(e.g., RTOS for control). - Highlight my journey, emphasizing low-level systems for autonomous vehicle competitions and contributions to open-source robotics.
The roadmap is organized into three levels, covering software (OS kernels, RTOS), hardware (microcontrollers, FPGA), and their integration. Each topic includes resources and projects stored in dedicated folders.
Objective: Understand the roles of OS and embedded systems, their interplay, and relevance to robotics.
- Books:
- "Operating System Concepts" by Abraham Silberschatz et al. - Standard OS text.
- "Embedded Systems: Introduction to ARM Cortex-M Microcontrollers" by Jonathan W. Valvano - Embedded basics.
- "Modern Operating Systems" by Andrew S. Tanenbaum - OS overview.
- Courses/Tutorials/Papers:
- Course: Operating Systems and You (Google, free audit) - OS intro.
- Course: Introduction to Embedded Systems Software and Development Environments (University of Colorado, free audit) - Embedded basics.
- Course: Real-Time Embedded Systems Concepts (University of Colorado, free audit) - Embedded systems.
- Tutorial: OS Basics - Comprehensive guide.
- Tutorial: Embedded Systems Tutorial - Practical intro.
- Tutorial: Interrupts Explained - Interrupt basics.
- Paper: "The Design of the UNIX Operating System" by Maurice J. Bach, 1986 - Classic OS design.
- Projects (see
/Systems_Hardware/Introduction):- Create a markdown summary of OS and embedded systems roles in robotics (
/docs/os_embedded_overview.md). - Build a simple OS scheduler simulator in Python to demonstrate multitasking.
- Implement a basic interrupt handler on Arduino for sensor input.
- Simulate a task manager in C to mimic OS process handling.
- Develop a Jupyter notebook explaining hardware-software interplay in autonomous vehicles.
- Create a markdown summary of OS and embedded systems roles in robotics (
Objective: Master process/thread management and scheduling for efficient systems.
- Books:
- "Operating Systems: Three Easy Pieces" by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau - Accessible OS text.
- "Real-Time Systems" by Jane W. S. Liu - Scheduling focus.
- "Linux System Programming" by Robert Love - Process management.
- Courses/Tutorials/Papers:
- Course: Operating Systems: Processes and Threads (Udemy, paid but often discounted) - Process basics.
- Course: Real-Time Embedded Systems (University of Colorado, free audit) - Scheduling focus.
- Course: Linux Process Management (Pluralsight, free trial) - Linux processes.
- Tutorial: Process Scheduling - Practical guide.
- Tutorial: Threads in Linux - Thread basics.
- Tutorial: Real-Time Scheduling - Embedded focus.
- Paper: "Scheduling Algorithms for Real-Time Systems" by Liu and Layland, 1973 - Classic scheduling paper.
- Projects (see
/Systems_Hardware/Processes_Threads_Scheduling):- Implement a round-robin scheduler in C for simulated processes.
- Build a multi-threaded sensor reader in Python for robot data logging.
- Create a real-time task scheduler on FreeRTOS for Arduino.
- Develop a Jupyter notebook visualizing context switching in a simple OS.
- Simulate a priority-based scheduler for a robotics task queue.
Objective: Understand microcontrollers, peripherals, and interfacing for embedded systems.
- Books:
- "The AVR Microcontroller and Embedded Systems" by Muhammad Ali Mazidi - AVR focus.
- "Embedded Systems with ARM Cortex-M Microcontrollers" by Yifeng Zhu - ARM guide.
- "Make: Electronics" by Charles Platt - Hardware basics.
- Courses/Tutorials/Papers:
- Course: Embedded Systems (University of Colorado, free audit) - Microcontroller intro.
- Course: Microcontroller Embedded C Programming (Udemy, paid but often discounted) - C programming.
- Course: ARM Cortex-M Programming (UT Austin, free) - ARM focus.
- Tutorial: Arduino Tutorials - Official guide.
- Tutorial: STM32 Tutorials - STM32 guide.
- Tutorial: GPIO Programming - Practical interfacing.
- Paper: "Microcontroller-Based Embedded Systems" by Gajski et al., 2009 - Embedded design.
- Projects (see
/Systems_Hardware/Embedded_Hardware_Basics):- Build a sensor interface for an IMU (e.g., MPU6050) using Arduino.
- Create a PWM controller for a DC motor with Raspberry Pi.
- Implement a timer-based LED blinker on STM32.
- Develop a Jupyter notebook analyzing ADC readings from a sensor.
- Simulate a GPIO-based robot controller in a simulator like Tinkercad.
Objective: Master memory allocation and file systems for OS and embedded environments.
- Books:
- "Operating Systems: Internals and Design Principles" by William Stallings - Memory management.
- "Embedded Systems: Real-Time Interfacing" by Jonathan W. Valvano - Embedded memory.
- "File Systems: Structures and Algorithms" by Thomas R. Giuli - File system guide.
- Courses/Tutorials/Papers:
- Course: Operating Systems: Memory Management (Udemy, paid but often discounted) - Memory focus.
- Course: Embedded Systems Memory Management (University of Colorado, free audit) - Embedded focus.
- Course: Linux File Systems (Pluralsight, free trial) - File system basics.
- Tutorial: Virtual Memory - Practical guide.
- Tutorial: FAT File System - Embedded file systems.
- Tutorial: Memory Optimization for Embedded - Optimization guide.
- Paper: "The Design of the Linux File System" by McKusick et al., 1984 - File system design.
- Projects (see
/Systems_Hardware/Memory_Management_File_Systems):- Implement a simple memory allocator in C for an embedded system.
- Build a file system parser for FAT32 in Python.
- Create a paging simulator to demonstrate virtual memory.
- Develop a Jupyter notebook analyzing memory usage in a robotics task.
- Simulate a flash memory manager for sensor data storage on Arduino.
Objective: Write drivers and handle interrupts for hardware interfacing.
- Books:
- "Linux Device Drivers" by Jonathan Corbet et al. - Linux driver guide.
- "Writing Device Drivers for Embedded Systems" by Alessandro Rubini - Embedded drivers.
- "Embedded Systems: Hardware, Design, and Implementation" by Krzysztof Iniewski - Driver focus.
- Courses/Tutorials/Papers:
- Course: Linux Kernel and Device Drivers (Udemy, paid but often discounted) - Driver basics.
- Course: Embedded Systems Interfacing (University of Colorado, free audit) - Interrupt focus.
- Course: Writing Device Drivers (Pluralsight, free trial) - Practical drivers.
- Tutorial: Linux Device Driver Tutorial - Practical guide.
- Tutorial: Interrupts in Embedded Systems - Interrupt handling.
- Tutorial: SPI Driver for Embedded - SPI interfacing.
- Paper: "Device Drivers: Simplifying the Interface" by Corbet and Kroah-Hartman, 2005 - Driver design.
- Projects (see
/Systems_Hardware/Device_Drivers_Interrupts):- Write a Linux character driver for a simulated sensor.
- Implement an interrupt-driven UART driver on STM32.
- Build a ROS driver for a custom sensor (e.g., ultrasonic).
- Develop a Jupyter notebook analyzing interrupt latency in embedded systems.
- Simulate a SPI interface for a sensor on Raspberry Pi.
Objective: Master RTOS for time-critical robotics applications.
- Books:
- "Real-Time Concepts for Embedded Systems" by Qing Li and Caroline Yao - RTOS basics.
- "FreeRTOS: A Practical Guide" by Richard Barry - FreeRTOS guide.
- "Real-Time Embedded Systems" by Xiaocong Fan - Comprehensive text.
- Courses/Tutorials/Papers:
- Course: Real-Time Embedded Systems (University of Colorado, free audit) - RTOS intro.
- Course: FreeRTOS for Embedded Systems (Udemy, paid but often discounted) - FreeRTOS focus.
- Course: RTOS with Zephyr (Linux Foundation, free) - Modern RTOS.
- Tutorial: FreeRTOS Tutorials - Official guide.
- Tutorial: Task Scheduling in RTOS - Practical guide.
- Tutorial: Mutexes and Semaphores - Synchronization guide.
- Paper: "Real-Time Scheduling for Embedded Systems" by Buttazzo, 2005 - RTOS scheduling.
- Projects (see
/Systems_Hardware/RTOS):- Implement a FreeRTOS task manager for sensor data processing on Arduino.
- Build a real-time motor controller using Zephyr RTOS on STM32.
- Create a priority-based scheduler for a robotics task queue.
- Develop a Jupyter notebook visualizing RTOS task execution.
- Simulate a mutex-based resource manager for a robot’s shared sensors.
Objective: Build and customize OS kernels for embedded robotics platforms.
- Books:
- "Linux Kernel Development" by Robert Love - Kernel guide.
- "Embedded Linux Development with Yocto Project" by Otavio Salvador - Embedded Linux.
- "Professional Linux Kernel Architecture" by Wolfgang Mauerer - Kernel deep dive.
- Courses/Tutorials/Papers:
- Course: Linux Kernel Programming (Udemy, paid but often discounted) - Kernel basics.
- Course: Embedded Linux with Yocto (University of Colorado, free audit) - Yocto focus.
- Course: Kernel Development (Pluralsight, free trial) - Practical kernel.
- Tutorial: Linux Kernel Module Programming - Module guide.
- Tutorial: Yocto Project Quickstart - Embedded distro guide.
- Tutorial: Kernel Customization - Official guide.
- Paper: "The Linux Kernel: A Case Study" by Torvalds, 1999 - Kernel history.
- Projects (see
/Systems_Hardware/Kernel_Development):- Build a custom Linux kernel module for a robotics sensor.
- Create a Yocto-based embedded distro for Raspberry Pi.
- Implement a custom scheduler in a Linux kernel fork.
- Develop a Jupyter notebook analyzing kernel boot processes.
- Simulate a kernel panic handler for a robotics system.
Objective: Master advanced hardware (FPGA, SoC) and hardware-software co-design for robotics.
- Books:
- Courses/Tutorials/Papers:
- Course: FPGA Development (Udemy, paid but often discounted) - FPGA basics.
- Course: System-on-Chip Design (University of Colorado, free audit) - SoC focus.
- Course: VHDL for Embedded Systems (Purdue, free) - VHDL intro.
- Tutorial: Verilog Tutorial - Practical Verilog guide.
- Tutorial: FPGA for Robotics - Robotics applications.
- Tutorial: Power Management in Embedded - Power optimization.
- Paper: "FPGA-Based Acceleration for Robotics" by Murray et al., 2016 - FPGA applications.
- Projects (see
/Systems_Hardware/Advanced_Embedded_Hardware):- Implement a VHDL-based PID controller on an FPGA (e.g., Altera DE10-Nano).
- Build a SoC design for sensor processing using Zynq SoC.
- Create a power management system for a robotics platform.
- Develop a Jupyter notebook simulating FPGA signal processing.
- Simulate a hardware-software co-design for a robot’s sensor interface.
Objective: Secure and optimize OS and embedded systems for robotics applications.
- Books:
- "Hacking Exposed Linux" by ISECOM - Linux security.
- "Embedded Systems Security" by David Kleidermacher and Mike Kleidermacher - Embedded security.
- "Real-Time Systems Design and Analysis" by Phillip A. Laplante - Optimization focus.
- Courses/Tutorials/Papers:
- Course: Cybersecurity for Embedded Systems (Udemy, paid but often discounted) - Security basics.
- Course: Linux Security (University of Colorado, free audit) - OS security.
- Course: Real-Time System Optimization (UT Austin, free) - Performance tuning.
- Tutorial: Securing Embedded Systems - Practical guide.
- Tutorial: Linux Performance Tuning - Optimization guide.
- Tutorial: Firmware Security - Embedded security.
- Paper: "Security in Embedded Systems" by Ravi et al., 2007 - Security challenges.
- Projects (see
/Systems_Hardware/System_Security_Optimization):- Implement a secure boot mechanism for an embedded Linux system.
- Build a firmware encryption system for a robotics microcontroller.
- Create a low-latency driver for a competition vehicle’s sensor.
- Develop a Jupyter notebook analyzing system performance bottlenecks.
- Simulate a secure communication protocol for robot-to-robot data transfer.
This roadmap outlines a structured path to master Artificial Intelligence (AI) from beginner to expert levels, covering foundational concepts, core machine learning, deep learning, specialized AI, and cutting-edge topics like Embedded AI and Embodied AI. For each topic, resources are provided in three categories: Books, Courses/Tutorials/Papers, and Projects, aligning with the trinity approach to create a robust GitHub repository.
Objective: Understand AI's history, definitions, types, and ethical implications.
- Books:
- "Artificial Intelligence: A Guide to Intelligent Systems" by Michael Negnevitsky - Covers AI basics, history, and applications for beginners.
- "AI Superpowers: China, Silicon Valley, and the New World Order" by Kai-Fu Lee - Explores AI's societal impact and global context.
- Courses/Tutorials/Papers:
- Course: CS50’s Introduction to Artificial Intelligence with Python (Harvard, free) - Beginner-friendly intro to AI concepts.
- Tutorial: AI For Everyone by Andrew Ng (Coursera, free audit) - Non-technical overview of AI.
- Paper: "Artificial Intelligence and Its Applications" (A. M. Turing, 1950) - Historical context (available via academic libraries).
- Projects:
- Create a simple chatbot using Python’s
chatterbotlibrary to understand basic AI interaction. - Write a GitHub README summarizing AI types (narrow, general, superintelligence) with examples.
- Create a simple chatbot using Python’s
Objective: Learn Python programming and essential libraries for AI development.
- Books:
- "Python Crash Course" by Eric Matthes - Comprehensive guide to Python basics, data structures, and libraries.
- "Automate the Boring Stuff with Python" by Al Sweigart - Practical Python for beginners (free online).
- Courses/Tutorials/Papers:
- Course: Python for Everybody (University of Michigan, free audit) - Beginner Python course.
- Tutorial: Learn Python - Full Course for Beginners (freeCodeCamp, YouTube) - Hands-on Python tutorial.
- Paper: None recommended at this stage (focus on practical skills).
- Projects:
- Build a simple calculator in Python to practice functions and control structures.
- Create a GitHub repo with Python scripts using NumPy and Pandas for basic data manipulation (e.g., analyzing a CSV dataset).
Objective: Master linear algebra, calculus, probability, and optimization for AI.
- Books:
- "Linear Algebra and Its Applications" by Gilbert Strang - Foundational for vectors and matrices.
- "Introduction to Probability" by Joseph K. Blitzstein and Jessica Hwang - Covers probability and statistics for AI.
- "Calculus Made Easy" by Silvanus P. Thompson - Simplified calculus for beginners.
- Courses/Tutorials/Papers:
- Course: Mathematics for Machine Learning (Imperial College London, free audit) - Covers linear algebra, calculus, and more.
- Tutorial: Essence of Linear Algebra (3Blue1Brown, YouTube) - Visual explanations of linear algebra.
- Paper: "A Tutorial on Principal Component Analysis" (Jonathon Shlens, 2014) - Introduces math for dimensionality reduction.
- Projects:
- Implement matrix operations (e.g., multiplication) in Python using NumPy.
- Create a GitHub repo with Jupyter notebooks solving basic probability problems (e.g., coin toss simulations).
Objective: Understand supervised/unsupervised learning, evaluation metrics, and model challenges.
- Books:
- "An Introduction to Statistical Learning" by Gareth James et al. - Beginner-friendly ML with R (Python versions available).
- "Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow" by Aurélien Géron - Practical ML guide.
- Courses/Tutorials/Papers:
- Course: Machine Learning by Andrew Ng (Stanford, free audit) - Classic ML course.
- Tutorial: Scikit-Learn Tutorials - Official guides for ML algorithms.
- Paper: "A Few Useful Things to Know About Machine Learning" (Pedro Domingos, 2012) - Practical ML insights.
- Projects:
- Build a simple classifier (e.g., spam email detection) using scikit-learn.
- Create a GitHub repo comparing evaluation metrics (accuracy, precision, etc.) on a toy dataset.
Objective: Implement and understand algorithms like regression, decision trees, and SVMs.
- Books:
- "Pattern Recognition and Machine Learning" by Christopher Bishop - Detailed on supervised learning.
- "Machine Learning Yearning" by Andrew Ng - Strategy for building ML models.
- Courses/Tutorials/Papers:
- Course: Supervised Machine Learning: Regression and Classification (DeepLearning.AI, free audit).
- Tutorial: Kaggle Learn: Machine Learning - Practical ML tutorials.
- Paper: "Random Forests" (Leo Breiman, 2001) - Foundational ensemble method paper.
- Projects:
- Predict house prices using linear regression and random forests (dataset: Kaggle’s Boston Housing).
- Create a GitHub repo with a decision tree classifier for a dataset like Iris.
Objective: Learn clustering, dimensionality reduction, and anomaly detection.
- Books:
- "Data Mining: Concepts and Techniques" by Jiawei Han et al. - Covers clustering and association rules.
- "Hands-On Unsupervised Learning Using Python" by Ankur A. Patel - Practical guide for unsupervised methods.
- Courses/Tutorials/Papers:
- Course: Unsupervised Learning, Recommenders, Reinforcement Learning (DeepLearning.AI, free audit).
- Tutorial: Clustering with Scikit-Learn - Official guide.
- Paper: "t-SNE: A New Technique for Visualization" (Laurens van der Maaten, 2008) - Key dimensionality reduction paper.
- Projects:
- Cluster customer data using k-means (dataset: Kaggle’s Mall Customers).
- Create a GitHub repo visualizing PCA on a high-dimensional dataset.
Objective: Master data cleaning, normalization, and feature selection.
- Books:
- "Feature Engineering for Machine Learning" by Alice Zheng and Amanda Casari - Practical feature engineering guide.
- "Data Science for Beginners" by Andrew Park - Covers EDA and preprocessing.
- Courses/Tutorials/Papers:
- Course: Data Analysis with Python (IBM, free audit).
- Tutorial: Kaggle Learn: Data Cleaning - Hands-on preprocessing.
- Paper: "Data Preprocessing Techniques for Data Mining" (Salvador García et al., 2016).
- Projects:
- Preprocess a messy dataset (e.g., Titanic from Kaggle) with handling missing values and encoding.
- Create a GitHub repo with EDA notebooks visualizing data distributions and correlations.
Objective: Understand neural network basics, backpropagation, and optimization.
- Books:
- "Deep Learning" by Ian Goodfellow, Yoshua Bengio, and Aaron Courville - Comprehensive deep learning text.
- "Neural Networks and Deep Learning" by Michael Nielsen - Free online book for beginners.
- Courses/Tutorials/Papers:
- Course: Deep Learning Specialization (DeepLearning.AI, free audit).
- Tutorial: Neural Networks from Scratch (sentdex, YouTube).
- Paper: "Gradient-Based Learning Applied to Document Recognition" (Yann LeCun et al., 1998) - Foundational neural network paper.
- Projects:
- Build a simple feedforward neural network in Python to classify digits (MNIST dataset).
- Create a GitHub repo with visualizations of backpropagation gradients.
Objective: Use TensorFlow/Keras or PyTorch for CNNs and RNNs.
- Books:
- "Deep Learning with Python" by François Chollet - Keras-focused practical guide.
- "Programming PyTorch for Deep Learning" by Ian Pointer - PyTorch for practitioners.
- Courses/Tutorials/Papers:
- Course: Practical Deep Learning for Coders (fast.ai, free) - Hands-on deep learning.
- Tutorial: TensorFlow Tutorials - Official TensorFlow guides.
- Paper: "Deep Learning with PyTorch: A 60 Minute Blitz" (PyTorch docs) - Tutorial-style paper.
- Projects:
- Build a CNN for image classification (e.g., CIFAR-10 dataset) using Keras or PyTorch.
- Create a GitHub repo with a trained RNN for text generation.
Objective: Learn RL concepts and algorithms like Q-learning and DQN.
- Books:
- "Reinforcement Learning: An Introduction" by Richard S. Sutton and Andrew G. Barto - Standard RL text (free online).
- "Deep Reinforcement Learning Hands-On" by Maxim Lapan - Practical RL with PyTorch.
- Courses/Tutorials/Papers:
- Course: Reinforcement Learning Specialization (University of Alberta, free audit).
- Tutorial: OpenAI Gym Tutorials - Practical RL environments.
- Paper: "Playing Atari with Deep Reinforcement Learning" (Mnih et al., 2013) - DQN foundational paper.
- Projects:
- Implement Q-learning for a simple game (e.g., FrozenLake in OpenAI Gym).
- Create a GitHub repo with a DQN agent for a game like CartPole.
Objective: Master tokenization, embeddings, transformers, and LLMs.
- Books:
- "Natural Language Processing with Python" by Steven Bird et al. - NLTK-based NLP basics.
- "Speech and Language Processing" by Dan Jurafsky and James H. Martin - Comprehensive NLP text.
- Courses/Tutorials/Papers:
- Course: Natural Language Processing Specialization (DeepLearning.AI, free audit).
- Tutorial: Hugging Face NLP Course - Free, transformer-focused.
- Paper: "Attention is All You Need" (Vaswani et al., 2017) - Transformer model introduction.
- Projects:
- Build a sentiment analysis model using Hugging Face transformers.
- Create a GitHub repo with a text summarization model using BERT.
Objective: Learn image processing, object detection, and generative models.
- Books:
- "Computer Vision: Algorithms and Applications" by Richard Szeliski - Comprehensive CV text (free online).
- "Deep Learning for Computer Vision with Python" by Adrian Rosebrock - Practical CV guide.
- Courses/Tutorials/Papers:
- Course: Convolutional Neural Networks (DeepLearning.AI, free audit).
- Tutorial: OpenCV Tutorials - Image processing basics.
- Paper: "Generative Adversarial Nets" (Goodfellow et al., 2014) - GAN introduction.
- Projects:
- Build an object detection model using YOLO (dataset: COCO).
- Create a GitHub repo with a GAN for generating synthetic images.
Objective: Explore diffusion models, VAEs, and multimodal AI.
- Books:
- "Generative Deep Learning" by David Foster - Covers GANs, VAEs, and more.
- "Deep Learning for Coders with fastai and PyTorch" by Jeremy Howard and Sylvain Gugger - Advanced generative models.
- Courses/Tutorials/Papers:
- Course: Generative AI with Large Language Models (DeepLearning.AI, free audit).
- Tutorial: Stable Diffusion Tutorial - Diffusion model guide.
- Paper: "Denoising Diffusion Probabilistic Models" (Ho et al., 2020) - Diffusion model foundation.
- Projects:
- Fine-tune a diffusion model for image generation (e.g., Stable Diffusion).
- Create a GitHub repo with a multimodal AI model combining text and images.
Objective: Deploy models, understand MLOps, and manage data pipelines.
- Books:
- "Building Machine Learning Powered Applications" by Emmanuel Ameisen - Practical deployment guide.
- "MLOps: Continuous Delivery and Automation Pipelines in Machine Learning" by Mark Treveil et al.
- Courses/Tutorials/Papers:
- Course: MLOps Specialization (DeepLearning.AI, free audit).
- Tutorial: Deploying ML Models with Flask - Practical guide.
- Paper: "Hidden Technical Debt in Machine Learning Systems" (Sculley et al., 2015) - MLOps challenges.
- Projects:
- Deploy a classification model using Flask and Docker (e.g., on Heroku).
- Create a GitHub repo with an end-to-end ML pipeline (data ingestion to deployment).
Objective: Understand fairness, explainability, and societal impacts of AI.
- Books:
- "Weapons of Math Destruction" by Cathy O’Neil - Explores AI bias and ethics.
- "The Ethical Algorithm" by Michael Kearns and Aaron Roth - Technical and ethical AI balance.
- Courses/Tutorials/Papers:
- Course: AI Ethics (LearnQuest, free audit).
- Tutorial: FairML Tutorials - Free online fairness tutorials.
- Paper: "Fairness and Machine Learning" (Barocas et al., 2019) - Comprehensive fairness guide.
- Projects:
- Analyze bias in a dataset (e.g., COMPAS dataset) and propose mitigation.
- Create a GitHub repo with an explainable AI model using SHAP or LIME.
Objective: Deploy AI on resource-constrained devices using optimization techniques.
- Books:
- "TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers" by Pete Warden and Daniel Situnayake.
- "Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C" by Yifeng Zhu - Hardware context for AI.
- Courses/Tutorials/Papers:
- Course: TinyML (Harvard, free) - Intro to TinyML.
- Tutorial: TensorFlow Lite for Microcontrollers - Official guide.
- Paper: "EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks" (Tan and Le, 2019) - Optimization techniques.
- Projects:
- Deploy a lightweight CNN on a Raspberry Pi for image classification.
- Create a GitHub repo with a TinyML model for sensor data (e.g., motion detection).
Objective: Integrate AI with physical systems like robots for real-world interaction.
- Books:
- "Probabilistic Robotics" by Sebastian Thrun et al. - Robotics and AI integration.
- "Embodied Artificial Intelligence" by Rolf Pfeifer and Christian Scheier - Theoretical foundations.
- Courses/Tutorials/Papers:
- Course: Robotics Specialization (University of Pennsylvania, free audit).
- Tutorial: ROS Tutorials - Robot Operating System for embodied AI.
- Paper: "Sim-to-Real Transfer for Robotic Control with Dynamics Randomization" (Peng et al., 2018).
- Projects:
- Build a simple robotic arm controller using RL in a simulated environment (e.g., MuJoCo).
- Create a GitHub repo with a sim-to-real transfer learning project for a robot.
Objective: Explore federated learning, quantum AI, multi-agent systems, and AGI pursuits.
- Books:
- "Federated Learning" by Qiang Yang et al. - Covers distributed AI systems.
- "Quantum Machine Learning" by Peter Wittek - Intro to quantum AI.
- Courses/Tutorials/Papers:
- Course: Federated Learning (DeepLearning.AI, free audit).
- Tutorial: Quantum Machine Learning Tutorials - Free quantum AI resource.
- Paper: "A Survey on Multi-Agent Reinforcement Learning" (Zhang et al., 2021).
- Projects:
- Implement a federated learning model for a distributed dataset.
- Create a GitHub repo with a literature review of recent AI papers (e.g., from arXiv).
- Overview
- Curated Resources
- Projects
- Repository Structure
- How to Use This Repository
- Contributing
- License
This repository is a curated collection of AI and ML resources, aimed at:
- Providing structured roadmaps for learning AI/ML from zero to advanced levels, with a focus on robotics applications (e.g., computer vision for autonomous vehicles).
- Curating high-quality resources including repositories, books, courses, papers, and tools, selected for their relevance and accessibility.
- Offering practical projects inspired by my competition experience, such as vision models for F1TENTH or optimization for Shell Eco-marathon.
- Integrating with my broader robotics engineering journey, linking to categories like robotics and embedded systems.
The resources below are organized by type, with brief descriptions and links to their potential use in robotics or autonomous systems.
| Name | Link | Description |
|---|---|---|
| AI Expert Roadmap | github.com/AMAI-GmbH/AI-Expert-Roadmap | Structured roadmap to becoming an AI expert, covering fundamentals to advanced topics. |
| Best of ML Python | github.com/lukasmasuch/best-of-ml-python | Curated list of the best Python libraries for machine learning. |
| Jetson Inference | github.com/dusty-nv/jetson-inference | Deep learning inference for NVIDIA Jetson, ideal for embedded robotics vision. |
| Machine Learning Tutorials | github.com/ujjwalkarn/Machine-Learning-Tutorials | Tutorials and code for ML concepts, great for beginners in robotics data processing. |
| Awesome Deep Learning | github.com/ChristosChristofidis/awesome-deep-learning | Comprehensive list of deep learning resources and frameworks. |
| Updated AI Roadmap | github.com/h9-tec/Updated_AI_roadmap | Updated roadmap for AI learning, including ML and DL paths. |
| Awesome Machine Learning | github.com/josephmisiti/awesome-machine-learning | Curated ML frameworks, libraries, and software. |
| LibFaceDetection | github.com/ShiqiYu/libfacedetection | Face detection library, useful for robotics human-robot interaction. |
| SHAP | github.com/shap/shap | Explainable AI tool for model interpretability in ML. |
| ColossalAI | github.com/hpcaitech/ColossalAI | Scalable deep learning framework for large models. |
| CrewAI | github.com/crewAIInc/crewAI | Framework for building AI agents, applicable to autonomous systems. |
| ToolJet | github.com/ToolJet/ToolJet | Low-code platform for building AI/ML apps. |
| Machine Learning Specialization (Coursera) | github.com/greyhatguy007/Machine-Learning-Specialization-Coursera | Code and notes for Coursera's ML specialization. |
| Mathematics for ML & Data Science (Coursera) | github.com/greyhatguy007/Mathematics-for-Machine-Learning-and-Data-Science-Specialization-Coursera | Math resources for ML, essential for robotics optimization. |
| DeepLearning.AI Stanford ML Specialization | github.com/shantanu1109/Coursera-DeepLearning.AI-Stanford-University-Machine-Learning-Specialization | Code for Stanford's ML specialization on Coursera. |
| Learning Deep Learning | github.com/patrick-llgc/Learning-Deep-Learning | Hands-on deep learning projects and notes. |
| Deep Live Cam | github.com/hacksider/Deep-Live-Cam | Real-time face swapping using DL, fun for robotics HRI. |
| Movement (Neuroinformatics) | github.com/neuroinformatics-unit/movement | Movement analysis tool using ML for robotics behavior. |
| 500+ AI/ML/CV/NLP Projects | github.com/ashishpatel26/500-AI-Machine-learning-Deep-learning-Computer-vision-NLP-Projects-with-code | Massive collection of AI/ML projects with code. |
| ML System Design | github.com/ML-SystemDesign/MLSystemDesign | Guide to ML system design for scalable applications. |
| Vision-Language Models Overview | github.com/zli12321/Vision-Language-Models-Overview | Overview of VLMs for computer vision in robotics. |
| PyTorch Tutorials | github.com/niconielsen32/pytorch-tutorialsg | Tutorials for PyTorch, key for DL in robotics. |
| Annotated DL Paper Implementations | github.com/labmlai/annotated_deep_learning_paper_implementations | Code implementations of DL papers with annotations. |
| AWS AI Stack | github.com/serverless/aws-ai-stack | AWS stack for AI applications. |
| Deep Dynamics | github.com/linklab-uva/deep-dynamics | Deep learning for robot dynamics modeling. |
| Hands-On LLMs | github.com/HandsOnLLM/Hands-On-Large-Language-Models | Hands-on projects with large language models. |
| GPU Puzzles | github.com/srush/GPU-Puzzles | Puzzles for learning GPU programming. |
| Home Assistant Core | github.com/home-assistant/core | Open-source home automation platform with AI integration. |
| OpenVINO | github.com/openvinotoolkit/openvino | Toolkit for optimizing DL models on hardware. |
| Computer Vision Projects | github.com/avs-abhishek123/Computer-Vision-Projects | Projects in computer vision for robotics. |
| Prompt Engineering Guide | github.com/dair-ai/Prompt-Engineering-Guide | Guide to prompt engineering for LLMs. |
| LLM Course | github.com/mlabonne/llm-course | Course on large language models. |
| GenAI Agents | github.com/NirDiamant/GenAI_Agents | Generative AI agents for tasks. |
| RAG Techniques | github.com/NirDiamant/RAG_Techniques | Retrieval-Augmented Generation techniques. |
| Made With ML | github.com/GokuMohandas/Made-With-ML | ML engineering guide with code. |
| PyTorch Deep Learning | github.com/mrdbourke/pytorch-deep-learning | PyTorch projects for DL. |
| DMLS Book | github.com/chiphuyen/dmls-book | Book on designing ML systems. |
| Open3D-ML | github.com/isl-org/Open3D-ML | ML for 3D data processing in robotics. |
| SALT | github.com/anuragxel/salt | SALT framework for ML. |
| Segment Anything | github.com/facebookresearch/segment-anything | Model for image segmentation in vision tasks. |
| 365 Days CV Learning | github.com/ashishpatel26/365-Days-Computer-Vision-Learning-Linkedin-Post | Daily CV learning posts. |
| 500+ AI/ML/CV/NLP Projects | github.com/ashishpatel26/500-AI-Machine-learning-Deep-learning-Computer-vision-NLP-Projects-with-code | Extensive project list (duplicate for emphasis). |
| CUDA Python | github.com/NVIDIA/cuda-python | Python bindings for CUDA in GPU-accelerated ML. |
| CuPy | github.com/cupy/cupy | NumPy-like library for GPU-accelerated computing. |
| Jetson Inference | github.com/dusty-nv/jetson-inference | DL inference for Jetson hardware (duplicate for emphasis). |
| EmLearn | github.com/emlearn/emlearn | ML for embedded systems. |
| Arabic NLP Preprocessing | github.com/h9-tec/Arabic_nlp_preprocessing | NLP preprocessing for Arabic text. |
| LLMs Collection | github.com/IbrahimSobh/llms | Collection of large language models. |
| Deep Learning Tips & Tricks | github.com/h9-tec/Deep_learning_models_tips_tricks | Tips for DL models. |
| ML YouTube Courses | github.com/dair-ai/ML-YouTube-Courses | Curated ML YouTube courses. |
| Awesome Computer Vision | github.com/jbhuang0604/awesome-computer-vision | Curated CV resources (duplicate for emphasis). |
| Real-Time Object Distance Measurement | github.com/lucifertrj/Real-Time-Object-Distance-Measurement | Real-time distance measurement using CV. |
| YOLOs C++ | github.com/Geekgineer/YOLOs-CPP | YOLO implementations in C++. |
| Awesome Computer Vision | github.com/jbhuang0604/awesome-computer-vision | Awesome CV list (duplicate for emphasis). |
| ML For Beginners (Microsoft) | github.com/microsoft/ML-For-Beginners | ML for beginners, with robotics applications. |
| Start Machine Learning | github.com/louisfb01/start-machine-learning | Starter guide for ML (duplicate for emphasis). |
| 365 Data Science | 365datascience.com/ | Data science learning platform. |
| Awesome Computer Vision | github.com/jbhuang0604/awesome-computer-vision | Awesome CV (duplicate for emphasis). |
| Deep Learning Drizzle | deep-learning-drizzle.github.io/ | DL resources and papers. |
| DeepLearning.AI | deeplearning.ai/ | DL courses and resources. |
| Name | Link | Description |
|---|---|---|
| Deep Learning on Embedded Systems | dokumen.pub/deep-learning-on-embedded-systems-a-hands-on-approach-using-jetson-nano-and-raspberry-pi-first-edition-9781394269273-9781394269266-9781394269280-9781394269297.html | Hands-on DL for embedded systems like Jetson Nano. |
| Deep Learning Book | deeplearningbook.org | Free book on deep learning fundamentals. |
| Name | Link | Description |
|---|---|---|
| Machine Learning Specialization (Coursera) | coursera.org/specializations/machine-learning-introduction | Intro to ML with practical projects. |
| NVIDIA CUDA C Programming Guide | docs.nvidia.com/cuda/cuda-c-programming-guide/index.html | Guide to CUDA programming for GPU acceleration. |
| NVIDIA CUDA Contents | docs.nvidia.com/cuda/cuda-c-programming-guide/contents.html | Detailed CUDA contents. |
| Object Tracking Guide | encord.com/blog/object-tracking-guide/ | Guide to object tracking in CV. |
| Edge AI Foundation | edgeaifoundation.org/ | Foundation for edge AI in embedded systems. |
| AI-900 Microsoft Course | learn.microsoft.com/en-us/training/courses/ai-900t00 | AI fundamentals course. |
| Hesham Asem Playlists | youtube.com/@HeshamAsem/playlists | Playlists on AI and ML topics. |
| DL YouTube Courses | github.com/dair-ai/ML-YouTube-Courses | Curated ML YouTube courses. |
| GPU Architecture Series | youtube.com/watch?v=3iHag4k4yEg&list=PLFhc0MFC8MiCDOh3cGFji3qQfXziB9yOw | Series on GPU architecture. |
| Awesome Computer Vision | github.com/jbhuang0604/awesome-computer-vision | Awesome CV resources (duplicate for emphasis). |
| Real-Time Object Distance Measurement | github.com/lucifertrj/Real-Time-Object-Distance-Measurement | Real-time distance measurement using CV. |
| YOLOs C++ | github.com/Geekgineer/YOLOs-CPP | YOLO in C++ for object detection. |
| AI for Beginners (Microsoft) | microsoft.github.io/AI-For-Beginners/ | AI intro for beginners. |
| Start Machine Learning | github.com/louisfb01/start-machine-learning | Starter guide for ML. |
| 365 Data Science | 365datascience.com/ | Data science platform. |
| Awesome Computer Vision | github.com/jbhuang0604/awesome-computer-vision | Awesome CV (duplicate for emphasis). |
| Deep Learning Drizzle | deep-learning-drizzle.github.io/ | DL resources. |
| DataCamp | datacamp.com/ | Data science and ML courses. |
| ML Roadmap and Projects | github.com/h9-tec/Machine-learning-roadmap-and-projects | Roadmap and projects for ML. |
| Stanford Machine Learning Course | youtube.com/playlist?list=PLoROMvodv4rMiGQp3WXShtMGgzqpfVfbU | Stanford's ML course videos. |
| Awesome Computer Vision | github.com/jbhuang0604/awesome-computer-vision | Awesome CV (duplicate for emphasis). |
| Deep Learning Drizzle | deep-learning-drizzle.github.io/ | DL resources (duplicate for emphasis). |
| DeepLearning.AI | deeplearning.ai/ | DL courses (duplicate for emphasis). |
| Name | Link | Description |
|---|---|---|
| New Neural Network with 500 Billion Parameters | mltechniques.com/2022/04/05/new-neural-network-with-500-billion-parameters/ | Paper on large-scale neural networks. |
| Name | Link | Description |
|---|---|---|
| Neural Network Lecture | youtube.com/watch?v=i_LwzRVP7bg&list=PLWKjhJtqVAblStefaz_YOVpDWqcRScc2s | Lecture on neural networks. |
| DL YouTube Courses | github.com/dair-ai/ML-YouTube-Courses | Curated DL YouTube courses. |
| GPU Architecture Series | youtube.com/watch?v=3iHag4k4yEg&list=PLFhc0MFC8MiCDOh3cGFji3qQfXziB9yOw | Series on GPU architecture. |
| DL YouTube Courses | github.com/dair-ai/ML-YouTube-Courses | Curated DL YouTube courses (duplicate for emphasis). |
| Name | Link | Description |
|---|---|---|
| Kaggle | kaggle.com/ | Platform for datasets and ML competitions. |
| OpenCV AI Engineer Roadmap | opencv.org/blog/ai-engineer-roadmap/ | Roadmap for AI engineers using OpenCV. |
| Deep Learning Drizzle | deep-learning-drizzle.github.io/ | DL resources and papers (duplicate for emphasis). |
| DataCamp | datacamp.com/ | Data science courses (duplicate for emphasis). |
| ML Roadmap and Projects | github.com/h9-tec/Machine-learning-roadmap-and-projects | ML roadmap and projects (duplicate for emphasis). |
| Stanford Machine Learning Course | youtube.com/playlist?list=PLoROMvodv4rMiGQp3WXShtMGgzqpfVfbU | Stanford's ML course (duplicate for emphasis). |
| Awesome Computer Vision | github.com/jbhuang0604/awesome-computer-vision | Awesome CV resources (duplicate for emphasis). |
| Deep Learning Drizzle | deep-learning-drizzle.github.io/ | DL resources (duplicate for emphasis). |
| 365 Data Science | 365datascience.com/ | Data science platform (duplicate for emphasis). |
| Awesome Computer Vision | github.com/jbhuang0604/awesome-computer-vision | Awesome CV (duplicate for emphasis). |
| Deep Learning Drizzle | deep-learning-drizzle.github.io/ | DL resources (duplicate for emphasis). |
| DeepLearning.AI | deeplearning.ai/ | DL courses (duplicate for emphasis). |
These projects leverage the provided resources to build practical AI/ML skills, inspired by my competition experience. See /projects/ for code and documentation.
- Jetson Vision Model: Implement a real-time vision model using Jetson Inference for F1TENTH vehicle detection. (Intermediate, robotics-focused.)
- SHAP Model Interpretation: Use SHAP to explain a ML model for sensor data in Shell Eco-marathon optimization. (Advanced, explainable AI.)
- CrewAI Agent for Robotics: Build an AI agent using CrewAI for task automation in autonomous systems. (Intermediate, agent-based.)
- ColossalAI Large Model Training: Train a large model using ColossalAI for robotics data. (Advanced, scalable DL.)
- Segment Anything for Robotics: Apply Segment Anything to segment objects in robot camera feeds. (Intermediate, CV project.)
- Prompt Engineering for LLMs: Create prompts for robotics tasks using Prompt Engineering Guide. (Beginner, LLM-focused.)
- RAG Technique Implementation: Implement Retrieval-Augmented Generation using RAG Techniques for a robotics Q&A system. (Advanced, GenAI.)
- Made-With-ML Pipeline: Build an ML pipeline using Made With ML for autonomous vehicle data. (Intermediate, ML engineering.)
- PyTorch DL Model: Train a model using PyTorch Deep Learning for image classification in robotics. (Beginner, DL hands-on.)
- DMLS Book Project: Implement a chapter project from DMLS Book for designing an ML system in robotics. (Advanced, system design.)
- Open3D-ML Point Cloud Processing: Process 3D data using Open3D-ML for robot perception. (Intermediate, 3D ML.)
- SALT Framework Application: Use SALT for a simple ML task in robotics. (Beginner, framework intro.)
- 365 Days CV Challenge: Complete a CV project from 365 Days CV Learning for object detection. (Intermediate, daily challenge.)
- CUDA Python Acceleration: Accelerate a ML model using CUDA Python for GPU performance in robotics. (Advanced, GPU programming.)
- CuPy Array Processing: Use CuPy for array operations in a robotics simulation. (Intermediate, GPU NumPy.)
- Jetson Inference Robotics Vision: Apply Jetson Inference for real-time vision on embedded hardware. (Intermediate, embedded DL.)
- EmLearn Embedded ML: Deploy a ML model on microcontroller using EmLearn for robot edge computing. (Advanced, embedded ML.)
- Arabic NLP Preprocessing: Preprocess Arabic text for NLP tasks using Arabic NLP Preprocessing in a multilingual robot system. (Intermediate, NLP.)
- LLMs Collection: Experiment with LLMs using LLMs Collection for robot natural language processing. (Advanced, LLMs.)
- DL Tips & Tricks: Apply tips from Deep Learning Tips & Tricks to optimize a model for robotics. (Intermediate, DL optimization.)
- ML YouTube Courses: Follow a course from ML YouTube Courses to build a simple ML project. (Beginner, video-based learning.)
- Awesome Computer Vision: Build a CV project using resources from Awesome Computer Vision for robot vision. (Intermediate, CV-focused.)
- Real-Time Object Distance Measurement: Implement Real-Time Object Distance Measurement for robot navigation. (Intermediate, CV project.)
- YOLOs C++: Use YOLOs C++ for object detection in a robotics application. (Advanced, C++ DL.)
- ML For Beginners: Complete a beginner project from ML For Beginners (Microsoft) for robotics data classification. (Beginner, intro ML.)
- Start Machine Learning: Build a simple ML model using Start Machine Learning for sensor data. (Beginner, starter guide.)
- 365 Data Science: Analyze robotics data using resources from 365 Data Science. (Intermediate, data science.)
- Deep Learning Drizzle: Review papers from Deep Learning Drizzle and implement a DL technique. (Advanced, paper-based.)
- DataCamp: Complete a DataCamp course on ML and apply it to a robotics dataset. (Beginner, interactive learning.)
- ML Roadmap and Projects: Follow the ML Roadmap and Projects to build a full ML pipeline for autonomous navigation. (Intermediate, roadmap-driven.)
- Stanford Machine Learning Course: Implement a project from Stanford Machine Learning Course for robot learning. (Advanced, course-based.)
- Awesome Computer Vision: Develop a vision system using Awesome Computer Vision. (Intermediate, CV project.)
- Deep Learning Drizzle: Explore DL papers from Deep Learning Drizzle for a robotics DL project. (Advanced, research-focused.)
- 365 Data Science: Use 365 Data Science for data analysis in robotics. (Intermediate, data-focused.)
- Awesome Computer Vision: Build another CV project from Awesome Computer Vision. (Intermediate, CV duplicate for emphasis.)
- Deep Learning Drizzle: Implement a DL technique from Deep Learning Drizzle for robot perception. (Advanced, DL duplicate for emphasis.)
- DeepLearning.AI: Complete a course project from DeepLearning.AI for DL in robotics. (Intermediate, course duplicate for emphasis.)
Welcome to the Systems and Hardware section of my GitHub repository, documenting my journey as a computer engineering student aiming to become a full-rounded engineer with a focus on robotics and autonomous vehicles. This category bridges Operating Systems and Embedded Systems and Hardware Theory, providing the low-level foundation for robotics applications like real-time control and sensor integration in competitions (e.g., F1TENTH, Shell Eco-marathon). Using the trinity approach (Books, Courses/Tutorials/Papers, Projects), this roadmap progresses from beginner to advanced levels, covering software (e.g., kernel programming, RTOS), hardware (e.g., microcontrollers, FPGA), and their integration for efficient, high-performance systems.
This README serves as the central hub for the Systems and Hardware category, outlining the roadmap, linking to resources, and showcasing projects. Whether you're a beginner, a fellow student, or a recruiter, use this repo to explore low-level systems, embedded hardware, and their applications in robotics and autonomous systems.
This section is designed to:
- Provide a structured roadmap for mastering operating systems and embedded hardware, from basics to advanced applications in robotics.
- Curate high-quality resources (books, courses, tutorials, papers) to support learning across software and hardware.
- Showcase projects that demonstrate practical skills, from simple microcontroller setups to competition-ready real-time systems (e.g., F1TENTH vehicle drivers).
- Integrate with my broader repo, linking to
/Foundations(e.g., programming, electronics) and/Robotics_Autonomous_Systems(e.g., RTOS for control). - Highlight my journey, emphasizing low-level systems for autonomous vehicle competitions and contributions to open-source robotics.
The roadmap is organized into three levels, covering software (OS kernels, RTOS), hardware (microcontrollers, FPGA), and their integration. Each topic includes resources and projects stored in dedicated folders.
Objective: Understand the roles of OS and embedded systems, their interplay, and relevance to robotics.
- Books:
- "Operating System Concepts" by Abraham Silberschatz et al. - Standard OS text.
- "Embedded Systems: Introduction to ARM Cortex-M Microcontrollers" by Jonathan W. Valvano - Embedded basics.
- "Modern Operating Systems" by Andrew S. Tanenbaum - OS overview.
- Courses/Tutorials/Papers:
- Course: Operating Systems and You (Google, free audit) - OS intro.
- Course: Introduction to Embedded Systems Software and Development Environments (University of Colorado, free audit) - Embedded basics.
- Course: Real-Time Embedded Systems Concepts (University of Colorado, free audit) - Embedded systems.
- Tutorial: OS Basics - Comprehensive guide.
- Tutorial: Embedded Systems Tutorial - Practical intro.
- Tutorial: Interrupts Explained - Interrupt basics.
- Paper: "The Design of the UNIX Operating System" by Maurice J. Bach, 1986 - Classic OS design.
- Projects (see
/Systems_Hardware/Introduction):- Create a markdown summary of OS and embedded systems roles in robotics (
/docs/os_embedded_overview.md). - Build a simple OS scheduler simulator in Python to demonstrate multitasking.
- Implement a basic interrupt handler on Arduino for sensor input.
- Simulate a task manager in C to mimic OS process handling.
- Develop a Jupyter notebook explaining hardware-software interplay in autonomous vehicles.
- Create a markdown summary of OS and embedded systems roles in robotics (
Objective: Master process/thread management and scheduling for efficient systems.
- Books:
- "Operating Systems: Three Easy Pieces" by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau - Accessible OS text.
- "Real-Time Systems" by Jane W. S. Liu - Scheduling focus.
- "Linux System Programming" by Robert Love - Process management.
- Courses/Tutorials/Papers:
- Course: Operating Systems: Processes and Threads (Udemy, paid but often discounted) - Process basics.
- Course: Real-Time Embedded Systems (University of Colorado, free audit) - Scheduling focus.
- Course: Linux Process Management (Pluralsight, free trial) - Linux processes.
- Tutorial: Process Scheduling - Practical guide.
- Tutorial: Threads in Linux - Thread basics.
- Tutorial: Real-Time Scheduling - Embedded focus.
- Paper: "Scheduling Algorithms for Real-Time Systems" by Liu and Layland, 1973 - Classic scheduling paper.
- Projects (see
/Systems_Hardware/Processes_Threads_Scheduling):- Implement a round-robin scheduler in C for simulated processes.
- Build a multi-threaded sensor reader in Python for robot data logging.
- Create a real-time task scheduler on FreeRTOS for Arduino.
- Develop a Jupyter notebook visualizing context switching in a simple OS.
- Simulate a priority-based scheduler for a robotics task queue.
Objective: Understand microcontrollers, peripherals, and interfacing for embedded systems.
- Books:
- "The AVR Microcontroller and Embedded Systems" by Muhammad Ali Mazidi - AVR focus.
- "Embedded Systems with ARM Cortex-M Microcontrollers" by Yifeng Zhu - ARM guide.
- "Make: Electronics" by Charles Platt - Hardware basics.
- Courses/Tutorials/Papers:
- Course: Embedded Systems (University of Colorado, free audit) - Microcontroller intro.
- Course: Microcontroller Embedded C Programming (Udemy, paid but often discounted) - C programming.
- Course: ARM Cortex-M Programming (UT Austin, free) - ARM focus.
- Tutorial: Arduino Tutorials - Official guide.
- Tutorial: STM32 Tutorials - STM32 guide.
- Tutorial: GPIO Programming - Practical interfacing.
- Paper: "Microcontroller-Based Embedded Systems" by Gajski et al., 2009 - Embedded design.
- Projects (see
/Systems_Hardware/Embedded_Hardware_Basics):- Build a sensor interface for an IMU (e.g., MPU6050) using Arduino.
- Create a PWM controller for a DC motor with Raspberry Pi.
- Implement a timer-based LED blinker on STM32.
- Develop a Jupyter notebook analyzing ADC readings from a sensor.
- Simulate a GPIO-based robot controller in a simulator like Tinkercad.
Objective: Master memory allocation and file systems for OS and embedded environments.
- Books:
- "Operating Systems: Internals and Design Principles" by William Stallings - Memory management.
- "Embedded Systems: Real-Time Interfacing" by Jonathan W. Valvano - Embedded memory.
- "File Systems: Structures and Algorithms" by Thomas R. Giuli - File system guide.
- Courses/Tutorials/Papers:
- Course: Operating Systems: Memory Management (Udemy, paid but often discounted) - Memory focus.
- Course: Embedded Systems Memory Management (University of Colorado, free audit) - Embedded focus.
- Course: Linux File Systems (Pluralsight, free trial) - File system basics.
- Tutorial: Virtual Memory - Practical guide.
- Tutorial: FAT File System - Embedded file systems.
- Tutorial: Memory Optimization for Embedded - Optimization guide.
- Paper: "The Design of the Linux File System" by McKusick et al., 1984 - File system design.
- Projects (see
/Systems_Hardware/Memory_Management_File_Systems):- Implement a simple memory allocator in C for an embedded system.
- Build a file system parser for FAT32 in Python.
- Create a paging simulator to demonstrate virtual memory.
- Develop a Jupyter notebook analyzing memory usage in a robotics task.
- Simulate a flash memory manager for sensor data storage on Arduino.
Objective: Write drivers and handle interrupts for hardware interfacing.
- Books:
- "Linux Device Drivers" by Jonathan Corbet et al. - Linux driver guide.
- "Writing Device Drivers for Embedded Systems" by Alessandro Rubini - Embedded drivers.
- "Embedded Systems: Hardware, Design, and Implementation" by Krzysztof Iniewski - Driver focus.
- Courses/Tutorials/Papers:
- Course: Linux Kernel and Device Drivers (Udemy, paid but often discounted) - Driver basics.
- Course: Embedded Systems Interfacing (University of Colorado, free audit) - Interrupt focus.
- Course: Writing Device Drivers (Pluralsight, free trial) - Practical drivers.
- Tutorial: Linux Device Driver Tutorial - Practical guide.
- Tutorial: Interrupts in Embedded Systems - Interrupt handling.
- Tutorial: SPI Driver for Embedded - SPI interfacing.
- Paper: "Device Drivers: Simplifying the Interface" by Corbet and Kroah-Hartman, 2005 - Driver design.
- Projects (see
/Systems_Hardware/Device_Drivers_Interrupts):- Write a Linux character driver for a simulated sensor.
- Implement an interrupt-driven UART driver on STM32.
- Build a ROS driver for a custom sensor (e.g., ultrasonic).
- Develop a Jupyter notebook analyzing interrupt latency in embedded systems.
- Simulate a SPI interface for a sensor on Raspberry Pi.
Objective: Master RTOS for time-critical robotics applications.
- Books:
- "Real-Time Concepts for Embedded Systems" by Qing Li and Caroline Yao - RTOS basics.
- "FreeRTOS: A Practical Guide" by Richard Barry - FreeRTOS guide.
- "Real-Time Embedded Systems" by Xiaocong Fan - Comprehensive text.
- Courses/Tutorials/Papers:
- Course: Real-Time Embedded Systems (University of Colorado, free audit) - RTOS intro.
- Course: FreeRTOS for Embedded Systems (Udemy, paid but often discounted) - FreeRTOS focus.
- Course: RTOS with Zephyr (Linux Foundation, free) - Modern RTOS.
- Tutorial: FreeRTOS Tutorials - Official guide.
- Tutorial: Task Scheduling in RTOS - Practical guide.
- Tutorial: Mutexes and Semaphores - Synchronization guide.
- Paper: "Real-Time Scheduling for Embedded Systems" by Buttazzo, 2005 - RTOS scheduling.
- Projects (see
/Systems_Hardware/RTOS):- Implement a FreeRTOS task manager for sensor data processing on Arduino.
- Build a real-time motor controller using Zephyr RTOS on STM32.
- Create a priority-based scheduler for a robotics task queue.
- Develop a Jupyter notebook visualizing RTOS task execution.
- Simulate a mutex-based resource manager for a robot’s shared sensors.
Objective: Build and customize OS kernels for embedded robotics platforms.
- Books:
- "Linux Kernel Development" by Robert Love - Kernel guide.
- "Embedded Linux Development with Yocto Project" by Otavio Salvador - Embedded Linux.
- "Professional Linux Kernel Architecture" by Wolfgang Mauerer - Kernel deep dive.
- Courses/Tutorials/Papers:
- Course: Linux Kernel Programming (Udemy, paid but often discounted) - Kernel basics.
- Course: Embedded Linux with Yocto (University of Colorado, free audit) - Yocto focus.
- Course: Kernel Development (Pluralsight, free trial) - Practical kernel.
- Tutorial: Linux Kernel Module Programming - Module guide.
- Tutorial: Yocto Project Quickstart - Embedded distro guide.
- Tutorial: Kernel Customization - Official guide.
- Paper: "The Linux Kernel: A Case Study" by Torvalds, 1999 - Kernel history.
- Projects (see
/Systems_Hardware/Kernel_Development):- Build a custom Linux kernel module for a robotics sensor.
- Create a Yocto-based embedded distro for Raspberry Pi.
- Implement a custom scheduler in a Linux kernel fork.
- Develop a Jupyter notebook analyzing kernel boot processes.
- Simulate a kernel panic handler for a robotics system.
Objective: Master advanced hardware (FPGA, SoC) and hardware-software co-design for robotics.
- Books:
- Courses/Tutorials/Papers:
- Course: FPGA Development (Udemy, paid but often discounted) - FPGA basics.
- Course: System-on-Chip Design (University of Colorado, free audit) - SoC focus.
- Course: VHDL for Embedded Systems (Purdue, free) - VHDL intro.
- Tutorial: Verilog Tutorial - Practical Verilog guide.
- Tutorial: FPGA for Robotics - Robotics applications.
- Tutorial: Power Management in Embedded - Power optimization.
- Paper: "FPGA-Based Acceleration for Robotics" by Murray et al., 2016 - FPGA applications.
- Projects (see
/Systems_Hardware/Advanced_Embedded_Hardware):- Implement a VHDL-based PID controller on an FPGA (e.g., Altera DE10-Nano).
- Build a SoC design for sensor processing using Zynq SoC.
- Create a power management system for a robotics platform.
- Develop a Jupyter notebook simulating FPGA signal processing.
- Simulate a hardware-software co-design for a robot’s sensor interface.
Objective: Secure and optimize OS and embedded systems for robotics applications.
- Books:
- "Hacking Exposed Linux" by ISECOM - Linux security.
- "Embedded Systems Security" by David Kleidermacher and Mike Kleidermacher - Embedded security.
- "Real-Time Systems Design and Analysis" by Phillip A. Laplante - Optimization focus.
- Courses/Tutorials/Papers:
- Course: Cybersecurity for Embedded Systems (Udemy, paid but often discounted) - Security basics.
- Course: Linux Security (University of Colorado, free audit) - OS security.
- Course: Real-Time System Optimization (UT Austin, free) - Performance tuning.
- Tutorial: Securing Embedded Systems - Practical guide.
- Tutorial: Linux Performance Tuning - Optimization guide.
- Tutorial: Firmware Security - Embedded security.
- Paper: "Security in Embedded Systems" by Ravi et al., 2007 - Security challenges.
- Projects (see
/Systems_Hardware/System_Security_Optimization):- Implement a secure boot mechanism for an embedded Linux system.
- Build a firmware encryption system for a robotics microcontroller.
- Create a low-latency driver for a competition vehicle’s sensor.
- Develop a Jupyter notebook analyzing system performance bottlenecks.
- Simulate a secure communication protocol for robot-to-robot data transfer.
The section is organized as follows:
Systems_Hardware/ ├── Introduction/ │ ├── docs/ (summaries, notes) │ ├── projects/ (scheduler simulator, interrupt handler) ├── Processes_Threads_Scheduling/ ├── Embedded_Hardware_Basics/ ├── Memory_Management_File_Systems/ ├── Device_Drivers_Interrupts/ ├── RTOS/ ├── Kernel_Development/ ├── Advanced_Embedded_Hardware/ ├── System_Security_Optimization/ ├── docs/ (general documentation, progress tracker) ├── README.md
Welcome to the Robotics and Autonomous Systems section of my GitHub repository, documenting my journey as a computer engineering student passionate about robotics and autonomous vehicles. This roadmap builds on my experience in competitions like F1TENTH and Shell Eco-marathon, where I’ve worked on energy-efficient planners and autonomous navigation. It covers the full spectrum from foundational concepts to cutting-edge applications, with a focus on the core stacks of Perception, SLAM, Planning, and Controlling, alongside critical areas like sensor fusion, modeling, and hardware selection. Using the trinity approach (Books, Courses/Tutorials/Papers, Projects), this roadmap progresses from beginner to expert levels, integrating software (ROS/ROS2, Python/C++), simulators (Gazebo, CARLA, Webots), and hardware (sensors, motors, microcontrollers).
This README serves as the central hub for the Robotics and Autonomous Systems category, outlining the roadmap, linking to resources, and showcasing projects. Whether you’re a beginner, a fellow student, or a recruiter, use this repo to explore robotics fundamentals, advanced autonomous systems, and practical applications in competitions.
This section is designed to:
- Provide a structured roadmap for mastering robotics and autonomous systems, from basics to competition-ready applications.
- Curate high-quality resources (books, courses, tutorials, papers) to support learning across software, simulators, and hardware.
- Showcase projects that demonstrate practical skills, from simple Arduino bots to full autonomous vehicle systems in CARLA, tailored to my competition experience.
- Integrate with my broader repo, linking to
/Foundations(e.g., control theory, programming) and/Artificial_Intelligence(e.g., RL for navigation). - Highlight my journey, emphasizing autonomous vehicle competitions and contributions to open-source robotics (e.g., Autotronics Lab).
The roadmap is organized into four levels, covering software (ROS/ROS2, algorithms), simulators (Gazebo, CARLA, Webots), and hardware (sensors, motors, custom platforms). Each topic includes resources and projects stored in dedicated folders.
Objective: Understand robotics fundamentals, types, components, and their relevance to autonomous vehicles.
- Books:
- "Robotics: Modelling, Planning and Control" by Bruno Siciliano et al. - Comprehensive robotics intro.
- "Introduction to Autonomous Mobile Robots" by Roland Siegwart et al. - Mobile robot basics.
- "Robotics, Vision and Control" by Peter Corke - Practical robotics guide.
- Courses/Tutorials/Papers:
- Course: Robotics: Aerial Robotics (UPenn, free audit) - Intro to robotics.
- Course: Introduction to Robotics (Stanford, free) - Broad overview.
- Course: Autonomous Vehicle Engineering (LearnQuest, free audit) - Vehicle focus.
- Tutorial: ROS Tutorials - Official ROS intro.
- Tutorial: What is Robotics? (CrashCourse, YouTube) - Beginner video.
- Tutorial: Autonomous Systems Basics - Practical guide.
- Paper: "A Survey of Autonomous Driving" by Schwarting et al., 2018 - Autonomous vehicle overview.
- Projects (see
/Robotics_Autonomous_Systems/Introduction):- Create a markdown summary of robotics types and their role in autonomous vehicles (
/docs/robotics_overview.md). - Build a simple ROS node to publish/subscribe to a topic (e.g., robot status).
- Simulate a basic robot in Gazebo with a URDF model.
- Develop a Jupyter notebook explaining autonomous vehicle components (e.g., sensors, actuators).
- Design a competition proposal for a F1TENTH-style race, outlining hardware/software needs.
- Create a markdown summary of robotics types and their role in autonomous vehicles (
Objective: Learn sensors, actuators, and microcontrollers for building physical robots.
- Books:
- "Practical Robotics in C++" by Lloyd Brombach - Hardware programming.
- "Make: Sensors" by Tero Karvinen et al. - Sensor guide.
- "Exploring Arduino" by Jeremy Blum - Microcontroller projects.
- Courses/Tutorials/Papers:
- Course: Building a Future with Robots (University of Sheffield, free) - Hardware intro.
- Course: Arduino for Beginners (UC Irvine, free audit) - Microcontroller basics.
- Course: Robotics Hardware (Udemy, paid but often discounted) - Sensor/actuator focus.
- Tutorial: SparkFun Sensor Tutorials - Practical sensor guide.
- Tutorial: Arduino Motor Control - Official guide.
- Tutorial: Raspberry Pi Robotics - Hardware projects.
- Paper: "Sensors for Mobile Robots" by Everett, 1995 - Classic sensor text.
- Projects (see
/Robotics_Autonomous_Systems/Hardware_Fundamentals):- Build a line-following robot with Arduino and IR sensors.
- Interface a camera module (e.g., OV7670) with Raspberry Pi for basic image capture.
- Create a motor control circuit with a DC motor and H-bridge (e.g., L298N).
- Simulate a sensor-actuator pair in Webots (e.g., ultrasonic sensor and servo).
- Develop a Jupyter notebook analyzing sensor data (e.g., IMU readings).
Objective: Master programming and ROS/ROS2 for robotics development.
- Books:
- "Programming Robots with ROS" by Morgan Quigley et al. - ROS guide.
- "A Gentle Introduction to ROS" by Jason M. O’Kane - Beginner ROS.
- "Learning ROS for Robotics Programming" by Enrique Fernández et al. - Practical ROS.
- Courses/Tutorials/Papers:
- Course: ROS for Beginners (Udemy, paid but often discounted) - ROS basics.
- Course: Hello (Real World) ROS (ETH Zurich, free audit) - Practical ROS.
- Course: ROS2 For Beginners (Udemy, paid but often discounted) - ROS2 intro.
- Tutorial: ROS2 Tutorials - Official ROS2 guide.
- Tutorial: Python for Robotics - Robotics coding.
- Tutorial: C++ for ROS - C++ guide.
- Paper: "ROS: An Open-Source Robot Operating System" by Quigley et al., 2009 - ROS foundation.
- Projects (see
/Robotics_Autonomous_Systems/Software_Fundamentals):- Create a ROS node to control a simulated robot’s movement in Gazebo.
- Build a Python script for sensor data logging via ROS topics.
- Implement a C++ ROS node for basic robot teleoperation.
- Develop a GitHub repo with version-controlled ROS packages.
- Create a Jupyter notebook visualizing ROS topic data (e.g., odometry).
Objective: Learn to use simulators for safe testing of robotics algorithms.
- Books:
- "Robot Operating System (ROS) for Absolute Beginners" by Lentin Joseph - Includes Gazebo.
- "Mastering ROS for Robotics Programming" by Lentin Joseph et al. - Simulator focus.
- "Simulation for Robotics" by Stanley Deutsch - Practical guide.
- Courses/Tutorials/Papers:
- Course: Robot Simulation with Gazebo (The Construct, paid but free previews) - Gazebo basics.
- Course: CARLA Autonomous Driving (Udemy, paid but often discounted) - Vehicle sims.
- Course: Webots for Robotics (Webots, free tutorials) - Simulator intro.
- Tutorial: Gazebo Tutorials - Official guide.
- Tutorial: CARLA Quickstart - Vehicle simulation.
- Tutorial: Webots Getting Started - Practical guide.
- Paper: "Gazebo: A Simulator for Robotics Research" by Koenig and Howard, 2004 - Simulator foundation.
- Projects (see
/Robotics_Autonomous_Systems/Simulators_Introduction):- Simulate a TurtleBot in Gazebo with basic navigation.
- Create a CARLA scenario for a vehicle following a predefined path.
- Build a Webots model of a differential drive robot.
- Develop a Jupyter notebook comparing simulator features (Gazebo vs. CARLA).
- Implement a simple obstacle avoidance in Webots with simulated sensors.
Objective: Process sensor data for environmental understanding (e.g., object detection, lane tracking).
- Books:
- "Computer Vision: Algorithms and Applications" by Richard Szeliski - Vision fundamentals.
- "Learning OpenCV 4" by Adrian Kaehler and Gary Bradski - OpenCV guide.
- "Point Cloud Library (PCL) Guide" by Radu B. Rusu - LiDAR processing.
- Courses/Tutorials/Papers:
- Course: Computer Vision Basics (University at Buffalo, free audit) - Vision intro.
- Course: OpenCV for Python Developers (Udemy, paid but often discounted) - Practical OpenCV.
- Course: Robotics: Perception (UPenn, free audit) - Robotics vision.
- Tutorial: OpenCV Tutorials - Official guide.
- Tutorial: PCL Tutorials - Point cloud processing.
- Tutorial: Camera Calibration - Practical guide.
- Paper: "YOLO: Real-Time Object Detection" by Redmon et al., 2016 - Object detection for robotics.
- Projects (see
/Robotics_Autonomous_Systems/Perception):- Implement lane detection using OpenCV on a video dataset (KITTI Dataset).
- Build a ROS node for object detection with a webcam.
- Process LiDAR point clouds using PCL for obstacle detection.
- Simulate camera-based perception in CARLA for autonomous driving.
- Develop a Jupyter notebook visualizing feature extraction for robot vision.
Objective: Enable robots to localize and map environments simultaneously.
- Books:
- "Probabilistic Robotics" by Sebastian Thrun et al. - SLAM foundation.
- "SLAM for Dummies" by Brian Gerkey - Accessible intro.
- "Simultaneous Localization and Mapping" by Hugh Durrant-Whyte - SLAM guide.
- Courses/Tutorials/Papers:
- Course: Robotics: Localization (UPenn, free audit) - Localization basics.
- Course: SLAM with ROS (The Construct, paid but free previews) - Practical SLAM.
- Course: Visual SLAM (Udemy, paid but often discounted) - Vision-based SLAM.
- Tutorial: ROS Cartographer - SLAM with ROS.
- Tutorial: ORB-SLAM3 Tutorial - Visual SLAM guide.
- Tutorial: EKF-SLAM Explained - Practical guide.
- Paper: "ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM" by Campos et al., 2020 - Modern SLAM.
- Projects (see
/Robotics_Autonomous_Systems/SLAM):- Implement EKF-SLAM for a simulated robot in Gazebo.
- Build a ROS node for 2D mapping using Cartographer and LiDAR data.
- Create a visual SLAM system with ORB-SLAM3 on a camera dataset (TUM RGB-D Dataset).
- Simulate SLAM for a racecourse in CARLA for F1TENTH.
- Develop a Jupyter notebook visualizing SLAM map generation.
Objective: Develop global and local path planners for robot navigation.
- Books:
- "Planning Algorithms" by Steven M. LaValle - Comprehensive planning guide.
- "Autonomous Mobile Robots" by Roland Siegwart et al. - Navigation focus.
- "Principles of Robot Motion" by Howie Choset et al. - Motion planning.
- Courses/Tutorials/Papers:
- Course: Robotics: Computational Motion Planning (UPenn, free audit) - Planning basics.
- Course: Path Planning with ROS (The Construct, paid but free previews) - ROS planning.
- Course: Motion Planning for Self-Driving Cars (University of Toronto, free audit) - Vehicle focus.
- Tutorial: A* Pathfinding - Interactive guide.
- Tutorial: ROS Navigation Stack - Official guide.
- Tutorial: Frenet Planner - Competition-relevant planner.
- Paper: "Optimal Sampling-Based Motion Planning" by Karaman and Frazzoli, 2011 - RRT* foundation.
- Projects (see
/Robotics_Autonomous_Systems/Planning):- Implement A pathfinding* for a robot in Gazebo (OpenStreetMap Data).
- Build a ROS navigation stack for obstacle avoidance on a TurtleBot.
- Create a Frenet planner for an autonomous vehicle in CARLA, optimizing energy efficiency.
- Develop a Jupyter notebook visualizing RRT paths for a racecourse.
- Simulate dynamic window approach for local planning in Webots.
Objective: Design controllers for precise robot/vehicle motion.
- Books:
- "Modern Robotics: Mechanics, Planning, and Control" by Kevin M. Lynch and Frank C. Park - Control focus.
- "Feedback Control for Computer Systems" by Philipp K. Janert - Practical control.
- "Control of Robot Manipulators" by Mark W. Spong et al. - Robotics control.
- Courses/Tutorials/Papers:
- Course: Control of Mobile Robots (Georgia Tech, free audit) - Robotics control.
- Course: PID Control with Arduino (Udemy, paid but often discounted) - PID basics.
- Course: Model Predictive Control (ETH Zurich, free audit) - Advanced control.
- Tutorial: PID Controller Basics - Practical guide.
- Tutorial: ROS Control - Official guide.
- Tutorial: MPC for Robotics - Advanced control.
- Paper: "Model Predictive Control: Theory and Practice" by Camacho and Bordons, 2007 - MPC foundation.
- Projects (see
/Robotics_Autonomous_Systems/Controlling):- Implement a PID controller for a robot’s speed in Arduino.
- Build a ROS control node for a TurtleBot’s navigation.
- Simulate MPC for an autonomous vehicle in CARLA.
- Develop a Jupyter notebook analyzing PID tuning for stability.
- Create a state-space controller for a robotic arm in Gazebo.
Objective: Integrate multi-sensor data for robust state estimation.
- Books:
- "Probabilistic Robotics" by Sebastian Thrun et al. - Sensor fusion focus.
- "State Estimation for Robotics" by Timothy D. Barfoot - Comprehensive guide.
- "Kalman Filtering and Neural Networks" by Simon Haykin - Kalman focus.
- Courses/Tutorials/Papers:
- Course: Robotics: Estimation and Learning (UPenn, free audit) - State estimation.
- Course: Sensor Fusion for Autonomous Systems (Udemy, paid but often discounted) - Practical fusion.
- Course: Kalman Filter for Robotics (The Construct, paid but free previews) - Kalman focus.
- Tutorial: Kalman Filter Tutorial - Interactive guide.
- Tutorial: Particle Filters - Practical guide.
- Tutorial: ROS Sensor Fusion - ROS integration.
- Paper: "A New Approach to Linear Filtering" by Kalman, 1960 - Kalman filter foundation.
- Projects (see
/Robotics_Autonomous_Systems/Sensor_Fusion):- Implement a Kalman filter for IMU/GPS fusion in Python.
- Build a ROS node for multi-sensor fusion (camera + LiDAR).
- Simulate particle filter localization in CARLA with noisy data.
- Develop a Jupyter notebook visualizing sensor fusion accuracy.
- Create a real-time fusion system on NVIDIA Jetson for a competition vehicle.
Objective: Model robot motion and physical interactions for accurate control.
- Books:
- "Introduction to Robotics: Mechanics and Control" by John J. Craig - Kinematics/dynamics.
- "Modern Robotics: Mechanics, Planning, and Control" by Kevin M. Lynch and Frank C. Park - Modeling focus.
- "Robot Dynamics Algorithms" by Roy Featherstone - Dynamics guide.
- Courses/Tutorials/Papers:
- Course: Robotics: Dynamics and Control (MIT, free) - Dynamics focus.
- Course: Modern Robotics Specialization (Northwestern, free audit) - Kinematics/dynamics.
- Course: URDF Modeling (The Construct, paid but free previews) - Robot modeling.
- Tutorial: ROS MoveIt - Kinematics guide.
- Tutorial: Robot Modeling in Gazebo - URDF/SDF guide.
- Tutorial: Dynamics for Robotics - Practical guide.
- Paper: "Rigid Body Dynamics for Robotics" by Featherstone, 2008 - Dynamics foundation.
- Projects (see
/Robotics_Autonomous_Systems/Kinematics_Dynamics_Modeling):- Implement forward kinematics for a robotic arm in Python.
- Build a URDF model for a differential drive robot in Gazebo.
- Simulate robot dynamics in MuJoCo for collision analysis.
- Develop a Jupyter notebook visualizing inverse kinematics for a manipulator.
- Create a dynamics-based controller for a competition vehicle.
Objective: Choose and integrate sensors, motors, drivers, and microcontrollers for optimal robot design.
- Books:
- "Robot Builder’s Bonanza" by Gordon McComb - Hardware selection guide.
- "Practical Electronics for Inventors" by Paul Scherz and Simon Monk - Electronics integration.
- "Building Autonomous Robots" by Ben Eater - Practical hardware builds.
- Courses/Tutorials/Papers:
- Course: Robotics Hardware Design (Udemy, paid but often discounted) - Hardware selection.
- Course: Embedded Systems for Robotics (University of Colorado, free audit) - Integration focus.
- Course: Motor Control for Robotics (The Construct, paid but free previews) - Motor selection.
- Tutorial: Choosing Sensors for Robotics - Practical guide.
- Tutorial: Motor Selection Guide - Pololu motor guide.
- Tutorial: CAN Bus for Robotics - Communication protocols.
- Paper: "Sensor Selection for Autonomous Vehicles" by Yurtsever et al., 2020 - Sensor trade-offs.
- Projects (see
/Robotics_Autonomous_Systems/Hardware_Selection_Integration):- Build a custom robot platform with selected sensors (e.g., RPLIDAR, IMU) and motors (e.g., BLDC).
- Create a hardware trade-off analysis for a F1TENTH vehicle (e.g., LiDAR vs. camera).
- Develop a ROS driver for a custom motor driver (e.g., TB6612FNG).
- Simulate sensor integration in Webots with chosen components.
- Design a power system for a competition robot, optimizing battery and motor efficiency.
Objective: Deploy competition-ready autonomous systems with multi-robot coordination and real-world integration.
- Books:
- "Autonomous Driving: Technical, Legal and Social Aspects" by Markus Maurer et al. - Vehicle deployment.
- "Multi-Robot Systems" by Lynne E. Parker - Coordination guide.
- "Safe Robot Navigation" by Gamini Dissanayake - Safety focus.
- Courses/Tutorials/Papers:
- Course: Self-Driving Cars Specialization (University of Toronto, free audit) - Full vehicle stack.
- Course: ROS2 for Multi-Robot Systems (The Construct, paid but free previews) - Distributed ROS2.
- Course: Autonomous Vehicle Safety (Udemy, paid but often discounted) - Safety standards.
- Tutorial: ROS2 DDS - Distributed communication.
- Tutorial: Sim-to-Real Transfer - RL for deployment.
- Tutorial: F1TENTH Deployment - Competition guide.
- Paper: "End-to-End Learning for Self-Driving Cars" by Bojarski et al., 2016 - Real-world autonomy.
- Projects (see
/Robotics_Autonomous_Systems/Advanced_Autonomous_Systems):- Build a F1TENTH autonomous racer with full perception-SLAM-planning-control stack.
- Simulate a multi-robot coordination scenario in CARLA (e.g., V2V communication).
- Develop a sim-to-real pipeline for transferring a CARLA planner to a real vehicle.
- Create a safety-certified ROS node for fault-tolerant navigation.
- Design a competition strategy for Shell Eco-marathon, integrating energy-efficient planning.
The repository is organized as follows:
Robotics_Autonomous_Systems/
├── Introduction/
│ ├── docs/ (summaries, notes)
│ ├── projects/ (ROS node, Gazebo sim)
├── Hardware_Fundamentals/
├── Software_Fundamentals/
├── Simulators_Introduction/
├── Perception/
├── SLAM/
├── Planning/
├── Controlling/
├── Sensor_Fusion/
├── Kinematics_Dynamics_Modeling/
├── Hardware_Selection_Integration/
├── Advanced_Autonomous_Systems/
├── docs/ (general documentation, progress tracker)
├── README.md
Welcome to the PCB Design and Electronics section of my GitHub repository, documenting my journey as a computer engineering student passionate about robotics and autonomous vehicles. This category focuses on designing, building, and testing printed circuit boards (PCBs) and electronics, critical for creating custom hardware for robotics projects like autonomous vehicle controllers in competitions (e.g., F1TENTH, Shell Eco-marathon). Using the trinity approach (Books, Courses/Tutorials/Papers, Projects), this roadmap progresses from beginner to advanced levels, covering software (e.g., KiCad, Eagle), hardware (e.g., components, soldering), and testing (e.g., oscilloscopes, multimeters). It integrates with my broader repo, linking to /Foundations (electronics basics) and /Robotics_Autonomous_Systems (hardware integration).
This README serves as the central hub for the PCB Design and Electronics category, outlining the roadmap, linking to resources, and showcasing projects. Whether you're a beginner, a fellow student, or a recruiter, use this repo to explore PCB design, electronics, and their applications in robotics.
This section is designed to:
- Provide a structured roadmap for mastering PCB design and electronics, from basic circuits to advanced robotics hardware.
- Curate high-quality resources (books, courses, tutorials, papers) to support learning across design, fabrication, and testing.
- Showcase projects that demonstrate practical skills, from simple LED circuits to custom PCBs for autonomous vehicle controllers.
- Integrate with my broader repo, linking to
/Foundations(e.g., analog/digital electronics) and/Robotics_Autonomous_Systems(e.g., sensor integration). - Highlight my journey, emphasizing custom hardware for robotics competitions and contributions to open-source projects at Autotronics Research Lab.
The roadmap is organized into three levels, covering software (PCB design tools), hardware (components, soldering), and testing (debugging, validation). Each topic includes resources and projects stored in dedicated folders.
Objective: Understand fundamental electronics concepts for PCB design, building on Foundations' electronics.
- Books:
- "Practical Electronics for Inventors" by Paul Scherz and Simon Monk - Comprehensive electronics guide.
- "The Art of Electronics" by Paul Horowitz and Winfield Hill - Classic electronics text.
- "Make: Electronics" by Charles Platt - Hands-on intro.
- Courses/Tutorials/Papers:
- Course: Electronics Fundamentals (Georgia Tech, free audit) - Electronics basics.
- Course: Introduction to Electronics (MIT, free) - Circuit fundamentals.
- Course: Basic Electronics for Arduino (Udemy, paid but often discounted) - Practical electronics.
- Tutorial: SparkFun Electronics Tutorials - Beginner guide.
- Tutorial: All About Circuits - Free electronics textbook.
- Tutorial: Ohm’s Law and Kirchhoff’s Laws - Circuit basics.
- Paper: "A Tutorial on Basic Circuit Theory" by Sedra and Smith, 2019 - Circuit foundation.
- Projects (see
/PCB_Design_Electronics/Introduction):- Build a simple LED circuit on a breadboard with resistors.
- Create a markdown summary of key electronics concepts (Ohm’s Law, capacitors) (
/docs/electronics_basics.md). - Simulate a basic circuit in Tinkercad (e.g., voltage divider).
- Develop a Jupyter notebook analyzing resistor-capacitor (RC) circuit behavior.
- Design a power supply circuit for a 5V microcontroller.
Objective: Learn PCB design principles and tools like KiCad and Eagle.
- Books:
- "Complete PCB Design Using KiCad Flow" by David Jahshan - KiCad guide.
- "Designing Electronics That Work" by Hunter Scott - Practical PCB design.
- "Printed Circuit Board Designer's Reference" by Christopher T. Robertson - PCB basics.
- Courses/Tutorials/Papers:
- Course: PCB Design with KiCad (Udemy, paid but often discounted) - KiCad intro.
- Course: Introduction to PCB Design (University of Colorado, free audit) - PCB fundamentals.
- Course: Eagle PCB Design (Pluralsight, free trial) - Eagle basics.
- Tutorial: KiCad Tutorial - Official KiCad guide.
- Tutorial: Eagle PCB Basics - Autodesk guide.
- Tutorial: PCB Design Guidelines - Practical tips.
- Paper: "PCB Design for Manufacturability" by Bayoumi, 2015 - Design principles.
- Projects (see
/PCB_Design_Electronics/PCB_Fundamentals):- Design a simple PCB for an LED circuit in KiCad.
- Create a schematic for a microcontroller circuit in Eagle.
- Simulate a PCB layout in KiCad with basic components (resistors, LEDs).
- Develop a Jupyter notebook comparing KiCad vs. Eagle workflows.
- Build a markdown guide on PCB design rules (
/docs/pcb_rules.md).
Objective: Choose appropriate components and design basic circuits for PCBs.
- Books:
- "Electronic Components: A Complete Reference" by Charles Platt - Component guide.
- "Practical Electronics: Components and Techniques" by John M. Hughes - Component selection.
- "Circuit Design with VHDL" by Volnei A. Pedroni - Circuit design basics.
- Courses/Tutorials/Papers:
- Course: Electronics: Component Selection (Udemy, paid but often discounted) - Component basics.
- Course: Circuit Design Fundamentals (University of Colorado, free audit) - Circuit design.
- Course: Analog Circuit Design (MIT, free) - Analog circuits.
- Tutorial: Choosing Electronic Components - Practical guide.
- Tutorial: Capacitor Selection - Capacitor guide.
- Tutorial: Resistor Selection - Resistor guide.
- Paper: "Component Selection for High-Reliability PCBs" by Smith, 2017 - Reliability focus.
- Projects (see
/PCB_Design_Electronics/Component_Selection):- Select components for a 5V regulator circuit and design its schematic.
- Build a breadboard prototype for a sensor interface circuit.
- Create a component trade-off analysis for a robotics PCB (
/docs/component_analysis.md). - Simulate a filter circuit (e.g., low-pass) in LTspice.
- Develop a Jupyter notebook analyzing component datasheets.
Objective: Master schematic design and PCB layout for functional boards.
- Books:
- "PCB Design for Real-World EMI Control" by Bruce R. Archambeault - EMI focus.
- "High-Speed Digital Design" by Howard Johnson - Layout guide.
- "KiCad Like a Pro" by Peter Dalmaris - Advanced KiCad.
- Courses/Tutorials/Papers:
- Course: Advanced PCB Design with KiCad (Udemy, paid but often discounted) - Advanced KiCad.
- Course: PCB Layout Techniques (Pluralsight, free trial) - Layout skills.
- Course: High-Speed PCB Design (University of Colorado, free audit) - High-speed focus.
- Tutorial: KiCad Layout Guide - Official layout tutorial.
- Tutorial: Eagle Layout Tips - Eagle guide.
- Tutorial: PCB Routing Techniques - Routing tips.
- Paper: "PCB Layout for Signal Integrity" by Montrose, 2010 - Signal integrity.
- Projects (see
/PCB_Design_Electronics/Schematic_Capture_Layout):- Design a PCB for a motor driver using KiCad.
- Create a multi-layer PCB schematic for a sensor board in Eagle.
- Simulate a PCB layout for signal integrity in KiCad.
- Develop a Jupyter notebook analyzing PCB trace widths.
- Build a markdown guide on PCB layout best practices (
/docs/layout_best_practices.md).
Objective: Fabricate and assemble PCBs, including soldering and component placement.
- Books:
- "The Printed Circuit Board Handbook" by Clyde F. Coombs - Fabrication guide.
- "Soldering is Easy" by Mitch Altman et al. - Soldering basics.
- "Surface-Mount Technology for PC Boards" by James K. Hollomon - SMT guide.
- Courses/Tutorials/Papers:
- Course: PCB Manufacturing and Assembly (Udemy, paid but often discounted) - Fabrication basics.
- Course: Soldering for Electronics (University of Colorado, free audit) - Soldering skills.
- Course: SMT Assembly Techniques (Pluralsight, free trial) - SMT focus.
- Tutorial: PCB Fabrication Process - Fabrication guide.
- Tutorial: Soldering Tutorial - Practical soldering.
- Tutorial: SMT Assembly Guide - SMT tips.
- Paper: "PCB Assembly Techniques" by Lee, 2018 - Assembly methods.
- Projects (see
/PCB_Design_Electronics/Fabrication_Assembly):- Fabricate a simple PCB using a service like JLCPCB or OSH Park.
- Solder a through-hole PCB for a microcontroller circuit.
- Assemble an SMT PCB for a sensor interface.
- Develop a Jupyter notebook documenting soldering techniques.
- Create a markdown report on PCB fabrication challenges (
/docs/fabrication_challenges.md).
Objective: Test and debug PCBs using tools like multimeters and oscilloscopes.
- Books:
- "Troubleshooting Electronic Circuits" by Ronald Quan - Debugging guide.
- "Practical Electronics Troubleshooting" by James Perozzo - Practical tips.
- "Test and Measurement: Know It All" by Jon S. Wilson - Testing guide.
- Courses/Tutorials/Papers:
- Course: Electronics Testing and Debugging (Udemy, paid but often discounted) - Testing basics.
- Course: Using Oscilloscopes (University of Colorado, free audit) - Oscilloscope skills.
- Course: Multimeter for Electronics (Pluralsight, free trial) - Multimeter use.
- Tutorial: Oscilloscope Basics - Oscilloscope guide.
- Tutorial: Multimeter Tutorial - Practical multimeter.
- Tutorial: PCB Debugging - Debugging tips.
- Paper: "PCB Testing Methods" by Wong, 2016 - Testing techniques.
- Projects (see
/PCB_Design_Electronics/Testing_Debugging):- Test a PCB circuit using a multimeter for continuity and voltage.
- Debug a faulty PCB with an oscilloscope to identify signal issues.
- Create a test plan for a robotics PCB (
/docs/test_plan.md). - Develop a Jupyter notebook analyzing oscilloscope waveforms.
- Simulate a PCB test setup in LTspice for fault detection.
Objective: Design optimized PCBs for robotics applications, considering signal integrity and power efficiency.
- Books:
- "High-Speed PCB Design" by Howard Johnson - High-speed focus.
- "Electromagnetic Compatibility Engineering" by Henry W. Ott - EMC guide.
- "Signal and Power Integrity" by Eric Bogatin - Integrity focus.
- Courses/Tutorials/Papers:
- Course: High-Speed PCB Design (Udemy, paid but often discounted) - Advanced design.
- Course: EMC for PCB Design (University of Colorado, free audit) - EMC focus.
- Course: Signal Integrity Fundamentals (Pluralsight, free trial) - Signal integrity.
- Tutorial: Signal Integrity in PCBs - Practical guide.
- Tutorial: Power Integrity - Power design.
- Tutorial: PCB Design for Robotics - Robotics focus.
- Paper: "Signal Integrity for High-Speed PCBs" by Bogatin, 2018 - Advanced techniques.
- Projects (see
/PCB_Design_Electronics/Advanced_PCB_Design):- Design a PCB for a robot sensor board with EMI considerations in KiCad.
- Optimize a power distribution network for a robotics PCB.
- Simulate a high-speed signal PCB in Altium Designer.
- Develop a Jupyter notebook analyzing EMI effects on PCB performance.
- Create a markdown guide on robotics PCB design tips (
/docs/robotics_pcb_tips.md).
Objective: Integrate PCBs with embedded systems for robotics applications (e.g., motor controllers, sensor fusion).
- Books:
- "Embedded Systems: Hardware, Design, and Implementation" by Krzysztof Iniewski - Integration guide.
- "Designing Embedded Hardware" by John Catsoulis - Embedded design.
- "Robot Builder’s Bonanza" by Gordon McComb - Robotics hardware.
- Courses/Tutorials/Papers:
- Course: Embedded Systems with PCBs (Udemy, paid but often discounted) - Integration basics.
- Course: Robotics Hardware Integration (University of Colorado, free audit) - Robotics focus.
- Course: PCB and Microcontroller Integration (Pluralsight, free trial) - Embedded integration.
- Tutorial: PCB to Microcontroller Interfacing - Practical guide.
- Tutorial: ROS with Custom PCBs - ROS integration.
- Tutorial: I2C/SPI for PCBs - Communication protocols.
- Paper: "PCB Integration for Robotics" by Zhang, 2019 - Robotics applications.
- Projects (see
/PCB_Design_Electronics/PCB_Integration):- Design and build a PCB for a motor controller integrated with STM32.
- Create a ROS-integrated PCB for a sensor fusion board (e.g., IMU + LiDAR).
- Develop a PCB for a F1TENTH vehicle with power and signal optimization.
- Simulate a PCB-microcontroller interface in Proteus.
- Develop a Jupyter notebook analyzing PCB integration with ROS for robotics.
The repository is organized as follows:
PCB_Design_Electronics/
├── Introduction/
│ ├── docs/ (summaries, notes)
│ ├── projects/ (LED circuit, RC analysis)
├── PCB_Fundamentals/
├── Component_Selection/
├── Schematic_Capture_Layout/
├── Fabrication_Assembly/
├── Testing_Debugging/
├── Advanced_PCB_Design/
├── PCB_Integration/
├── docs/ (general documentation, progress tracker)
├── README.md
- Overview
- Curated Resources
- Projects
- Repository Structure
- How to Use This Repository
- Contributing
- License
This section is designed to:
- Curate high-quality resources for learning and developing self-driving car technologies, with a focus on perception, planning, and control.
- Provide practical projects inspired by my competition experience (e.g., F1TENTH racing, Shell Eco-marathon).
- Integrate with my broader repo, linking to
/Robotics_Autonomous_Systems(for ROS) and/Artificial_Intelligence(for perception models). - Highlight my journey, showcasing skills in autonomous vehicle navigation and control.
The resources below cover repositories, books, courses, and datasets for self-driving vehicles, organized for easy access and practical application.
| Name | Link | Description |
|---|---|---|
| Awesome Self-Driving Car | github.com/daohu527/awesome-self-driving-car | Curated list of self-driving car resources, covering tools, datasets, and frameworks. |
| Awesome Autonomous Vehicles | github.com/manfreddiaz/awesome-autonomous-vehicles | Comprehensive list of autonomous vehicle resources, including perception and planning tools. |
| Self-Driving-Ish CV System | github.com/iwatake2222/self-driving-ish_computer_vision_system | Computer vision system for self-driving, focusing on lane detection and object recognition. |
| Self-Driving Cars | github.com/qiaoxu123/Self-Driving-Cars | Collection of self-driving car projects and resources, with code examples. |
| Awesome Vehicle Security | github.com/jaredthecoder/awesome-vehicle-security | Resources for securing autonomous vehicles, critical for safe deployment. |
| AutoCarROS2 | github.com/winstxnhdw/AutoCarROS2 | ROS2-based autonomous car framework, ideal for F1TENTH-style navigation. |
| F1TENTH RL | github.com/MichaelBosello/f1tenth-RL | Reinforcement learning for F1TENTH racing, focusing on path optimization. |
| Name | Link | Description |
|---|---|---|
| Self-Driving Car Resources | github.com/ndrplz/self-driving-car | Curated list of books and resources for self-driving cars, covering theory and practice. |
| Name | Link | Description |
|---|---|---|
| Coursera Self-Driving Cars Specialization | coursera.org/specializations/self-driving-cars | Comprehensive course on self-driving cars, covering perception, planning, and control (free audit available). |
| SAE J3016 Standard | sae.org/standards/content/j3016_201806/ | Standard defining autonomy levels, essential for understanding self-driving systems. |
| Autonomous Driving Survey | arxiv.org/abs/2003.04882 | Survey paper on autonomous driving technologies and challenges. |
| Self-Driving Car Playlist | youtube.com/watch?v=wcibIqiRb04&list=PL8EeqqtDev54yyF5-o2jUEOhAm2GSZm6e&index=4 | YouTube playlist covering self-driving car concepts, great for visual learners. |
| Pure Pursuit in ROS Noetic | medium.com/@jefffer705/pure-pursuit-in-ros-noetic-7b2c0a3c36ef | Tutorial on implementing Pure Pursuit algorithm in ROS for vehicle path tracking. |
| Low-Cost Path to Self-Driving Engineer | linkedin.com/pulse/low-cost-path-become-self-driving-cars-engineer-ricardo-tellez/ | Guide to becoming a self-driving car engineer with affordable resources. |
| Autonomous Driving Intro | youtube.com/watch?v=eOevF5jFSoc | Video introduction to autonomous driving concepts and applications. |
| Name | Link | Description |
|---|---|---|
| KITTI Dataset | cvlibs.net/datasets/kitti/ | Industry-standard dataset for autonomous driving, with LiDAR, camera, and GPS data. |
| Apollo Auto | github.com/ApolloAuto/apollo | Open-source autonomous driving platform, supporting end-to-end vehicle control. |
| Gym-Ignition | github.com/robotology-legacy/gym-ignition | Gym environment for Ignition Gazebo, ideal for RL in autonomous driving. |
| Autoware Universe | autowarefoundation.github.io/autoware_universe/main/ | Open-source autonomous driving stack, with ROS2 integration for navigation. |
These projects leverage the provided resources to build practical skills, inspired by my competition experience. See /Self_Driving_Vehicles/projects/ for code and documentation.
- KITTI Dataset Analysis: Use the KITTI Dataset to process LiDAR and camera data for object detection in a Jupyter notebook. (Intermediate, builds perception skills.)
- Pure Pursuit Path Tracking: Implement the Pure Pursuit algorithm using Pure Pursuit in ROS Noetic in a ROS2 node for F1TENTH racing. (Intermediate, competition-ready.)
- F1TENTH RL Navigation: Build an RL-based navigation system using F1TENTH RL in a simulated environment. (Advanced, competition-focused.)
- Apollo Auto Simulation: Deploy a basic autonomous driving pipeline with Apollo Auto in a simulator like CARLA. (Advanced, end-to-end autonomy.)
- Autoware ROS2 Node: Create a ROS2 node for path planning using Autoware Universe for urban driving scenarios. (Intermediate, practical.)
- Markdown Guide on Autonomy Levels: Summarize SAE J3016 autonomy levels based on SAE J3016 Standard in
/docs/autonomy_levels.md. (Beginner, educational.)
Self_Driving_Vehicles/
├── docs/ # Notes and summaries (e.g., autonomy_levels.md)
├── projects/ # Project code and notebooks (e.g., kitti_analysis)
├── README.md # This file
- Overview
- Curated Resources
- Projects
- Repository Structure
- How to Use This Repository
- Contributing
- License
This section is designed to:
- Curate high-quality simulator resources for testing robotics and autonomous vehicle algorithms in virtual environments.
- Provide practical projects inspired by my competition experience (e.g., F1TENTH, Shell Eco-marathon).
- Integrate with my broader repo, linking to
/Robotics_Autonomous_Systems(for ROS integration) and/Self_Driving_Vehicles(for driving scenarios). - Highlight my journey, showcasing simulation skills for competition-ready systems.
| Name | Link | Description |
|---|---|---|
| Formula Student Driverless Simulator | github.com/FS-Driverless/Formula-Student-Driverless-Simulator | Simulator for Formula Student driverless competitions, ideal for F1TENTH. |
| NVIDIA Isaac GR00T | github.com/NVIDIA/Isaac-GR00T | NVIDIA’s simulator for humanoid robots and autonomous systems. |
| MuJoCo | github.com/google-deepmind/mujoco | Physics-based simulator for robotics and RL research. |
| AutoDRIVE | github.com/Tinker-Twins/AutoDRIVE | Simulator for autonomous driving, supporting ROS2 and F1TENTH-style testing. |
| Webots | cyberbotics.com/ | Open-source robot simulator, compatible with ROS for robot modeling. |
| AirSim | github.com/microsoft/AirSim | Simulator for drones and vehicles, with ROS and Unreal Engine support. |
| CARLA | github.com/carla-simulator/carla | Open-source autonomous driving simulator, widely used for perception and planning. |
| Autonomous Mobile Robot | github.com/bandasaikrishna/Autonomous_Mobile_Robot | Mobile robot simulation framework, with ROS integration. |
| Robot Assets | github.com/ankurhanda/robot-assets | Collection of robot models for simulation in Gazebo and other platforms. |
| Gazebo Fuel | gazebosim.org/docs/fortress/fuel_insert/ | Gazebo Fuel for importing robot models and environments. |
| Name | Link | Description |
|---|---|---|
| ROS Robotics Learning | rosroboticslearning.com/ | Tutorials for ROS-based simulation, including Gazebo and TurtleBot3. |
| CoppeliaSim Manual | manual.coppeliarobotics.com/index.html | Official manual for CoppeliaSim (formerly V-REP), a versatile robot simulator. |
| FS Driverless Simulator Docs | fs-driverless.github.io/Formula-Student-Driverless-Simulator/v2.2.0/ | Documentation for setting up the Formula Student Driverless Simulator. |
| ROS2 and CARLA Setup Guide | learnopencv.com/ros2-and-carla-setup-guide/ | Guide to integrating ROS2 with CARLA for autonomous driving simulation. |
| TurtleBot3 in ROS2 Humble | medium.com/@nilutpolkashyap/setting-up-turtlebot3-simulation-in-ros-2-humble-hawksbill-70a6fcdaf5de | Tutorial for setting up TurtleBot3 simulation in ROS2 Humble. |
| CARLA Simulation Intro | youtube.com/watch?v=Uz_i_sjVhIM | Video intro to CARLA simulator for autonomous driving. |
| ROS2 Simulation Playlist | youtube.com/watch?v=inD2KquVzzo&list=PLbRa-L0fnTUzI6T6GBqBDYX9BSJjxySLZ&index=4 | YouTube playlist on ROS2 simulation setups. |
These projects leverage the provided simulator resources to build practical skills, inspired by my competition experience. See /Simulators/projects/ for code and documentation.
- F1TENTH Simulation: Set up a racing environment in Formula Student Driverless Simulator with ROS2 for path planning. (Intermediate, competition-ready.)
- CARLA Autonomous Driving: Implement a lane-following algorithm in CARLA using ROS2 and CARLA Setup Guide. (Intermediate, practical.)
- TurtleBot3 Obstacle Avoidance: Simulate obstacle avoidance with TurtleBot3 in Gazebo using ROS Robotics Learning. (Beginner, ROS2-focused.)
- Webots Robot Modeling: Create a robot model in Webots with Robot Assets for navigation tasks. (Intermediate, modeling skills.)
- MuJoCo RL Environment: Build an RL environment for a robot using MuJoCo for control tasks. (Advanced, RL-focused.)
- Markdown Guide on Simulator Setup: Document the setup process for CARLA and ROS2 based on ROS2 and CARLA Setup Guide in
/docs/simulator_setup.md. (Beginner, educational.)
Simulators/
├── docs/ # Notes and summaries (e.g., simulator_setup.md)
├── projects/ # Project code and notebooks (e.g., carla_lane_following)
├── README.md # This file
- Overview
- Curated Resources
- Projects
- Repository Structure
- How to Use This Repository
- Contributing
- License
This section is designed to:
- Curate high-quality resources for robotics and autonomous vehicle competitions, covering platforms, challenges, and preparation guides.
- Provide practical projects inspired by my competition experience (e.g., F1TENTH, Shell Eco-marathon).
- Integrate with my broader repo, linking to
/Robotics_Autonomous_Systems(for ROS) and/Simulators(for testing). - Highlight my journey, showcasing competition-ready skills in autonomous navigation and control.
The resources below cover major competitions like CARLA Leaderboard, RoboCup, and Teknofest, along with preparation tools and tutorials.
| Name | Link | Description |
|---|---|---|
| MATLAB-Simulink Challenge Project Hub | github.com/mathworks/MATLAB-Simulink-Challenge-Project-Hub | MATLAB/Simulink projects for robotics and autonomous vehicle challenges. |
| SEM-APC Student Docker Environment | github.com/swri-robotics/sem-apc-student-docker-environment | Docker environment for Shell Eco-marathon Autonomous Programming Competition. |
| IMechE | imeche.org/ | Institution hosting competitions like Formula Student, relevant for autonomous vehicles. |
| CARLA Leaderboard | leaderboard.carla.org/ | Leaderboard for CARLA autonomous driving challenges, ideal for testing algorithms. |
| Teknofest Robotaxi | teknofest.org/en/competitions/robotaxi-full-scale-autonomous-vehicle-competition/ | Full-scale autonomous vehicle competition, focusing on real-world driving. |
| RoboCup | robocup.org/ | Global robotics competition, including autonomous navigation and manipulation. |
| Robocon | robocon.io/ | Robotics competition for innovative robot designs and tasks. |
| Roboracer AI | roboracer.ai/ | AI-driven racing competition, similar to F1TENTH. |
| Indy Autonomous Challenge | indyautonomouschallenge.com/ | High-speed autonomous racing challenge for advanced teams. |
| NASA Space Apps Cairo | spaceappschallenge.org/nasa-space-apps-2024/2024-local-events/cairo/ | Space-related robotics and autonomy challenges, hosted in Cairo. |
| Name | Link | Description |
|---|---|---|
| CARLA Leaderboard Intro | youtube.com/watch?v=9KuySHCagYc | Video guide to participating in the CARLA Leaderboard challenge. |
These projects leverage the provided competition resources to build practical skills, inspired by my experience. See /Competitions/projects/ for code and documentation.
- CARLA Leaderboard Submission: Develop a driving algorithm for the CARLA Leaderboard using ROS2 and CARLA simulator. (Advanced, competition-ready.)
- Shell Eco-marathon Autonomy: Create an energy-efficient planner for SEM-APC Student Docker Environment in a simulated urban environment. (Intermediate, Shell Eco-marathon-focused.)
- F1TENTH Race Prep: Build a ROS2-based navigation stack for Roboracer AI using Pure Pursuit or MPC. (Intermediate, F1TENTH-style.)
- RoboCup Simulation: Implement a navigation task for RoboCup Junior in Webots using RoboCup resources. (Intermediate, practical.)
- MATLAB Challenge Project: Develop a control system for an autonomous vehicle using MATLAB-Simulink Challenge Project Hub. (Intermediate, MATLAB-focused.)
- Markdown Guide on Competition Prep: Summarize strategies for CARLA Leaderboard based on CARLA Leaderboard Intro in
/docs/competition_prep.md. (Beginner, educational.)
Competitions/
├── docs/ # Notes and summaries (e.g., competition_prep.md)
├── projects/ # Project code and notebooks (e.g., carla_leaderboard)
├── README.md # This file
- Overview
- Curated Resources
- Projects
- Repository Structure
- How to Use This Repository
- Contributing
- License
This section is designed to:
- Curate high-quality ROS/ROS2 resources to support learning and development in robotics and autonomous systems.
- Provide practical projects that align with real-world applications, drawing from my experience in F1TENTH and Shell Eco-marathon.
- Integrate with my broader repo, linking to
/Systems_Hardware(for ROS drivers) and/Artificial_Intelligence(for perception). - Highlight my journey, showcasing competition-ready skills in autonomous navigation and control.
The resources below focus on ROS/ROS2, covering frameworks, tools, and tutorials for building robots. Projects emphasize hands-on applications, like navigation stacks for autonomous vehicles. This is the starting point for a growing collection—more categories and resources will be added incrementally.
Below is a curated list of ROS/ROS2 resources, organized by type. Each includes a brief description and its relevance to robotics/autonomous systems.
| Name | Link | Description |
|---|---|---|
| ROS2 Migration Tools | github.com/awslabs/ros2-migration-tools | Tools to migrate from ROS1 to ROS2, ideal for updating legacy robot projects. |
| Inmoov ROS2 | github.com/aalonsopuig/Inmoov_ROS2 | ROS2 integration for Inmoov, a 3D-printed humanoid robot, great for learning ROS2 with humanoids. |
| GP-MPPI | github.com/IhabMohamed/GP-MPPI | Gaussian Process-based Model Predictive Path Integral control for autonomous navigation, useful for F1TENTH planners. |
| RealSense ROS | github.com/IntelRealSense/realsense-ros | ROS wrapper for Intel RealSense cameras, key for perception in autonomous robots. |
| RF2O Laser Odometry | github.com/MAPIRlab/rf2o_laser_odometry | Lightweight laser odometry for ROS, perfect for SLAM in resource-constrained robots. |
| TurtleBot3 | github.com/ROBOTIS-GIT/turtlebot3 | Official TurtleBot3 repo, a versatile platform for learning ROS/ROS2 basics and navigation. |
| TurtleBot3 Deliver | github.com/ROBOTIS-GIT/turtlebot3_deliver | TurtleBot3 delivery application, showcasing ROS for service robots. |
| NASA JPL ROSA | github.com/nasa-jpl/rosa | NASA’s ROS-based autonomy software, ideal for studying advanced robotic systems. |
| Autonomy Stack (Mecanum) | github.com/jizhang-cmu/autonomy_stack_mecanum_wheel_platform | ROS-based autonomy stack for mecanum wheel robots, useful for omnidirectional navigation. |
| Autonomous Racing | github.com/Autonomous-Racing-PG/ar-tu-do | ROS-based autonomous racing framework, directly applicable to F1TENTH competitions. |
| ROS Motion Planning | github.com/ai-winter/ros_motion_planning | ROS package for motion planning, including path planning algorithms for robots. |
| MoveIt | github.com/moveit/moveit | ROS motion planning framework for robotic arms, key for manipulation tasks. |
| Costmap Depth Camera | github.com/tsengapola/costmap_depth_camera | ROS package to create costmaps from depth cameras, useful for obstacle avoidance. |
| ROS Navigation | github.com/ros-planning/navigation | Official ROS navigation stack for mobile robots, critical for autonomous vehicle navigation. |
| Name | Link | Description |
|---|---|---|
| A Gentle Introduction to ROS | jokane.net/agitr/agitr-letter.pdf | Free PDF introducing ROS concepts, perfect for beginners starting with TurtleBot or simulation. |
| Programming Robots with ROS | alvarestech.com/temp/capp/GDT_Forma3D/Programming%20Robots%20with%20ROS.pdf | Practical guide to ROS programming, with examples for sensors and navigation. |
| Mastering ROS for Robotics Programming (3rd Ed) | github.com/PacktPublishing/Mastering-ROS-for-Robotics-Programming-Third-edition | Comprehensive ROS guide covering advanced topics like navigation and manipulation. |
| Learning ROS for Robotics Programming | vladestivill-castro.net/teaching/robotics.d/READINGS/Learning%20ROS%20for%20Robotics%20Programming%20[eBook].pdf | Beginner-friendly eBook on ROS, with practical examples for robot control. |
| ROS2 Cookbook | github.com/mikeferguson/ros2_cookbook | Collection of ROS2 recipes and examples, great for transitioning to ROS2 projects. |
| Name | Link | Description |
|---|---|---|
| ROS Python Course | theconstruct.ai/robotigniteacademy_learnros/ros-courses-library/ros-python-course/ | Python-based ROS course, ideal for scripting robot behaviors in simulation. |
| ROS for Beginners (Udemy) | udemy.com/course/ros-for-beginners | Beginner-friendly course covering ROS basics, nodes, and topics (often discounted). |
| ROS Humble Installation | docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html | Official guide to install ROS2 Humble, essential for setting up a development environment. |
| ROS Humble Tutorials | docs.ros.org/en/humble/Tutorials.html | Official ROS2 Humble tutorials, covering nodes, publishers, and subscribers. |
| ROS Tutorial Series (YouTube) | youtube.com/watch?v=9U6GDonGFHw | Video series on ROS basics, great for visual learners starting with ROS. |
These projects leverage the provided ROS/ROS2 resources to build practical skills, inspired by my competition experience. See /Robotics_Autonomous_Systems/projects/ for code and documentation.
- TurtleBot3 Navigation: Use the TurtleBot3 repo and ROS Navigation to implement a navigation stack in Gazebo. (Beginner, simulates F1TENTH navigation.)
- RealSense Camera Integration: Integrate an Intel RealSense camera with RealSense ROS to process depth data for obstacle avoidance. (Intermediate, useful for Shell Eco-marathon sensor fusion.)
- F1TENTH Autonomous Racing: Build a ROS-based racing node using Autonomous Racing and GP-MPPI for path planning. (Advanced, competition-ready.)
- Costmap with Depth Camera: Create a costmap for navigation using Costmap Depth Camera in a simulated environment. (Intermediate, enhances autonomous navigation.)
- MoveIt Robotic Arm: Implement a pick-and-place task with MoveIt for a robotic arm in simulation. (Advanced, explores manipulation.)
- Jupyter Notebook on ROS2 Setup: Document ROS2 Humble installation and basic node creation using ROS Humble Tutorials. (Beginner, educational.)
- Markdown Guide on ROS Basics: Summarize key ROS concepts (nodes, topics, services) based on A Gentle Introduction to ROS (
/docs/ros_basics.md). (Beginner, learning aid.)
Robotics_Autonomous_Systems/
├── docs/ # Notes and summaries (e.g., ros_basics.md)
├── projects/ # Project code and notebooks (e.g., turtlebot3_navigation)
├── README.md # This file
Welcome to the Robotics and Autonomous Systems section of my GitHub repository, documenting my journey as a computer engineering student passionate about robotics and autonomous vehicles. This category focuses on ROS/ROS2, the backbone of modern robotics, with curated resources to help you master robot software development for applications like autonomous navigation and competition vehicles (e.g., F1TENTH, Shell Eco-marathon). Built using the trinity approach (Books, Courses/Tutorials, Projects), this section provides a foundation for building, simulating, and deploying robotic systems.
This README serves as the hub for the provided resources, including ROS/ROS2 repositories, books, and tutorials, carefully organized for quick reference. Whether you're a beginner learning ROS/ROS2 basics, a hobbyist building a TurtleBot, or a recruiter exploring my competition-driven projects, this repo is designed to inspire and guide. Star, fork, or contribute to make it even better! 🌟
- Overview
- Curated Resources
- Projects
- Repository Structure
- General Resources Repository
- Embedded Systems and Low-Level Programming Repository
This section is designed to:
- Curate high-quality resources to support learning and development in robotics and autonomous systems, with a special emphasis on ROS/ROS2 as a foundational framework.
- Provide practical projects that align with real-world applications, drawing from my experience in F1TENTH and Shell Eco-marathon.
- Integrate with my broader repo, linking to
/Systems_Hardware(for ROS drivers) and/Artificial_Intelligence(for perception). - Highlight my journey, showcasing competition-ready skills in autonomous navigation and control.
The resources below are organized by the subheadings from the provided list, covering repositories, books, courses, and industry tools for robotics/autonomous systems. This is the starting point for a growing collection—more categories and resources will be added incrementally.
Below is a curated list of resources, organized by the provided categories. Each includes a brief description and its relevance to robotics/autonomous systems.
| Name | Link | Description |
|---|---|---|
| ROS2 Migration Tools | github.com/awslabs/ros2-migration-tools | Tools to migrate from ROS1 to ROS2, ideal for updating legacy robot projects. |
| Inmoov ROS2 | github.com/aalonsopuig/Inmoov_ROS2 | ROS2 integration for Inmoov, a 3D-printed humanoid robot, great for learning ROS2 with humanoids. |
| GP-MPPI | github.com/IhabMohamed/GP-MPPI | Gaussian Process-based Model Predictive Path Integral control for autonomous navigation, useful for F1TENTH planners. |
| RealSense ROS | github.com/IntelRealSense/realsense-ros | ROS wrapper for Intel RealSense cameras, key for perception in autonomous robots. |
| RF2O Laser Odometry | github.com/MAPIRlab/rf2o_laser_odometry | Lightweight laser odometry for ROS, perfect for SLAM in resource-constrained robots. |
| TurtleBot3 | github.com/ROBOTIS-GIT/turtlebot3 | Official TurtleBot3 repo, a versatile platform for learning ROS/ROS2 basics and navigation. |
| TurtleBot3 Deliver | github.com/ROBOTIS-GIT/turtlebot3_deliver | TurtleBot3 delivery application, showcasing ROS for service robots. |
| NASA JPL ROSA | github.com/nasa-jpl/rosa | NASA’s ROS-based autonomy software, ideal for studying advanced robotic systems. |
| Autonomy Stack (Mecanum) | github.com/jizhang-cmu/autonomy_stack_mecanum_wheel_platform | ROS-based autonomy stack for mecanum wheel robots, useful for omnidirectional navigation. |
| Autonomous Racing | github.com/Autonomous-Racing-PG/ar-tu-do | ROS-based autonomous racing framework, directly applicable to F1TENTH competitions. |
| ROS Motion Planning | github.com/ai-winter/ros_motion_planning | ROS package for motion planning, including path planning algorithms for robots. |
| MoveIt | github.com/moveit/moveit | ROS motion planning framework for robotic arms, key for manipulation tasks. |
| Costmap Depth Camera | github.com/tsengapola/costmap_depth_camera | ROS package to create costmaps from depth cameras, useful for obstacle avoidance. |
| ROS Navigation | github.com/ros-planning/navigation | Official ROS navigation stack for mobile robots, critical for autonomous vehicle navigation. |
| Name | Link | Description |
|---|---|---|
| A Gentle Introduction to ROS | jokane.net/agitr/agitr-letter.pdf | Free PDF introducing ROS concepts, perfect for beginners starting with TurtleBot or simulation. |
| Programming Robots with ROS | [alvarestech.com/temp/capp/GDT_p Form3D/Programming%20Robots%20with%20ROS.pdf](alvarestech.com/temp/capp/GDT_p Form3D/Programming%20Robots%20with%20ROS.pdf) | Practical guide to ROS programming, with examples for sensors and navigation. |
| Mastering ROS for Robotics Programming (3rd Ed) | github.com/PacktPublishing/Mastering-ROS-for-Robotics-Programming-Third-edition | Comprehensive ROS guide covering advanced topics like navigation and manipulation. |
| Learning ROS for Robotics Programming | vladestivill-castro.net/teaching/robotics.d/READINGS/Learning%20ROS%20for%20Robotics%20Programming%20[eBook].pdf | Beginner-friendly eBook on ROS, with practical examples for robot control. |
| ROS2 Cookbook | github.com/mikeferguson/ros2_cookbook | Collection of ROS2 recipes and examples, great for transitioning to ROS2 projects. |
| Name | Link | Description |
|---|---|---|
| ROS Python Course | theconstruct.ai/robotigniteacademy_learnros/ros-courses-library/ros-python-course/ | Python-based ROS course, ideal for scripting robot behaviors in simulation. |
| ROS for Beginners (Udemy) | udemy.com/course/ros-for-beginners | Beginner-friendly course covering ROS basics, nodes, and topics (often discounted). |
| ROS Humble Installation | docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html | Official guide to install ROS2 Humble, essential for setting up a development environment. |
| ROS Humble Tutorials | docs.ros.org/en/humble/Tutorials.html | Official ROS2 Humble tutorials, covering nodes, publishers, and subscribers. |
| ROS Tutorial Series (YouTube) | youtube.com/watch?v=9U6GDonGFHw | Video series on ROS basics, great for visual learners starting with ROS. |
| Name | Link | Description |
|---|---|---|
| Lichtblick (ROS 2 Suite) | github.com/lichtblick-suite/lichtblick | ROS2 visualization tool for debugging and monitoring robot data. |
| Survey Autonomous Driving Unstructured Environments | github.com/chaytonmin/Survey-Autonomous-Driving-in-Unstructured-Environments | Survey on autonomous driving in unstructured environments, useful for off-road robotics. |
| NVIDIA Redtail (UGV) | github.com/NVIDIA-AI-IOT/redtail | AI framework for unmanned ground vehicles (UGV), integrating ROS for perception and navigation. |
| SLAM Resources for Beginner | github.com/Taeyoung96/SLAM-Resources-for-Beginner | Beginner-friendly resources for SLAM, including ROS-based tutorials. |
| Awesome Robotic Tooling | github.com/Ly0n/awesome-robotic-tooling | Curated list of robotics tools, including ROS extensions and simulators. |
| End-to-End Autonomous Driving | github.com/OpenDriveLab/End-to-end-Autonomous-Driving | End-to-end learning for autonomous driving, with ROS integration for vehicle control. |
| Robotics Python Tutorials | github.com/kimsooyoung/robotics_python | Python tutorials for robotics, including ROS and motion planning. |
| Open Robot Actuator Hardware | github.com/open-dynamic-robot-initiative/open_robot_actuator_hardware | Open-source actuator hardware for robots, compatible with ROS for control. |
| OttoNinja (DIY Robot) | github.com/OttoDIY/OttoNinja | DIY humanoid robot with ROS support for learning basic robotics. |
| Awesome Embodied AI | github.com/TinyEmbodiedAI/Awesome-embodied-ai | Curated list of embodied AI resources, including ROS for physical robots. |
| Berkeley Humanoid Lite | github.com/HybridRobotics/Berkeley-Humanoid-Lite | Lightweight humanoid robot framework, with ROS2 integration for embodied AI. |
| Embodied AI Paper List | github.com/HCPLab-SYSU/Embodied_AI_Paper_List | List of papers on embodied AI, relevant for ROS-based robot intelligence. |
| RSE Prob Robotics | github.com/carlos-argueta/rse_prob_robotics | Probabilistic robotics with ROS, for uncertainty handling in autonomous systems. |
| Xtreme1 (3D Data Platform) | github.com/xtreme1-io/xtreme1 | Platform for 3D data in robotics, compatible with ROS for perception. |
| Path Planning | github.com/gabrielegilardi/PathPlanning | Path planning algorithms for robots, integrating with ROS navigation. |
| Robot VLMs | github.com/Robot-VLAs/RoboVLMs | Vision-language models for robots, with ROS2 support for embodied tasks. |
| Openpilot Deepdive | github.com/OpenDriveLab/Openpilot-Deepdive | Deep dive into Openpilot for autonomous driving, with ROS-like structures. |
| Awesome Interaction-Aware Trajectory Prediction | github.com/jiachenli94/Awesome-Interaction-Aware-Trajectory-Prediction | Resources for trajectory prediction in autonomous vehicles, useful for ROS planning. |
| Lyft Motion Prediction | github.com/JerryIshihara/lyft-motion-prediction-for-autonomous-vehicle | Motion prediction for autonomous vehicles, integrating with ROS navigation. |
| Awesome Lane Detection | github.com/amusi/awesome-lane-detection | Lane detection resources for autonomous driving, ROS-compatible for perception. |
| Awesome RGB-D Datasets | github.com/alelopes/awesome-rgbd-datasets | RGB-D datasets for robotics perception, used in ROS SLAM. |
| NPYViewer | github.com/csmailis/NPYViewer | Viewer for NumPy files in robotics data analysis, useful with ROS. |
| Carla Multimodal Sensing | github.com/joedlopes/carla-simulator-multimodal-sensing | Multimodal sensing in CARLA simulator, ROS-integrated for autonomous testing. |
| Collision Avoidance Carla DRL MPC | github.com/gustavomoers/CollisionAvoidance-Carla-DRL-MPC | Collision avoidance using DRL and MPC in CARLA, with ROS support. |
| Gym-Carla | github.com/cjy1992/gym-carla | Gym environment for CARLA, for RL in autonomous driving with ROS. |
| Awesome CARLA | github.com/Amin-Tgz/awesome-CARLA | Curated CARLA resources, including ROS integrations for simulation. |
| Carla Lidar Mapping | github.com/casper-auto/carla_lidar_mapping | LiDAR mapping in CARLA, useful for ROS SLAM testing. |
| Carla Scenario Runner | github.com/carla-simulator/scenario_runner | Scenario runner for CARLA, for autonomous vehicle testing with ROS. |
| CarDreamer | github.com/ucd-dare/CarDreamer | CARLA-based RL environment for driving, ROS-compatible. |
| Shell Urban Simulator | github.com/Shell-Urban-Concept-Autonomous/shell_urban_simulator | Simulator for urban autonomous vehicles, inspired by Shell Eco-marathon. |
| OceanSim (Marine Robotics) | github.com/umfieldrobotics/OceanSim | Marine robotics simulator, extendable with ROS for underwater autonomy. |
| Faster (LiDAR SLAM) | github.com/mit-acl/faster | Fast LiDAR SLAM, ROS-integrated for real-time mapping. |
| Roman (Robotics Manipulation) | github.com/mit-acl/roman | Robotics manipulation framework, with ROS support for arms. |
| ICP Localization | github.com/leggedrobotics/icp_localization | ICP-based localization for robots, ROS-compatible. |
| Tinker (Humanoid Robot) | github.com/Yuexuan9/Tinker | Tinker humanoid robot, with ROS2 for embodied AI. |
| AgiBot-World | github.com/OpenDriveLab/AgiBot-World | AGI for robots in simulation, ROS-integrated. |
| Lerobot (Hugging Face) | github.com/huggingface/lerobot | Learning-based robot control, with ROS support. |
| RSL RL (Legged Robotics) | github.com/leggedrobotics/rsl_rl | RL for legged robots, ROS-compatible for training. |
| Genesis Embodied AI | github.com/Genesis-Embodied-AI/Genesis | Embodied AI framework for robots, with ROS2. |
| OpenVLA | github.com/openvla/openvla | Open vision-language-action model for robots, ROS-integrated. |
| Robot VLMs | github.com/Robot-VLAs/RoboVLMs | Vision-language models for robots, with ROS support. |
| Vision-Language Models Overview | github.com/zli12321/Vision-Language-Models-Overview | Overview of VLMs for robotics perception. |
| HCPLab Embodied AI Paper List | github.com/HCPLab-SYSU/Embodied_AI_Paper_List | Papers on embodied AI, relevant for ROS-based robots. |
| Awesome Embodied AI | github.com/haoranD/Awesome-Embodied-AI | Curated embodied AI resources, including ROS tools. |
| Awesome Quadrupedal Robots | github.com/curieuxjy/Awesome_Quadrupedal_Robots | Resources for quadrupedal robots, with ROS integrations. |
| LeCAR HumanoidVerse | github.com/LeCAR-Lab/HumanoidVerse | Humanoid robot framework, ROS2-based. |
| Humanoid Bench | github.com/carlosferrazza/humanoid-bench | Benchmark for humanoid robots, with ROS support. |
| 3D Afford Splat | github.com/HCPLab-SYSU/3DAffordSplat | 3D affordance mapping for robots, ROS-integrated. |
| Deep Dynamics | github.com/linklab-uva/deep-dynamics | Deep learning for robot dynamics, with ROS. |
| ModernControl UGV | github.com/seyedsaleh/ModernControl-UGV | Modern control for unmanned ground vehicles, ROS-based. |
| Awesome Control Theory | github.com/A-make/awesome-control-theory | Curated control theory resources for robotics. |
| GP-MPC | github.com/helgeanl/GP-MPC | Gaussian Process MPC for autonomous systems. |
| Multi-Purpose MPC | github.com/matssteinweg/Multi-Purpose-MPC | Multi-purpose MPC for robot control. |
| Robust Tube MPC | github.com/HiroIshida/robust-tube-mpc | Robust MPC for tube-based control in robots. |
| TUMFTM Vehicle Dynamics Control | github.com/TUMFTM/mod_vehicle_dynamics_control | Vehicle dynamics control for autonomous driving. |
| TUMFTM Ethical Trajectory Planning | github.com/TUMFTM/EthicalTrajectoryPlanning | Ethical planning for autonomous vehicles. |
| Pyroki | github.com/chungmin99/pyroki | PyTorch-based robotics kinematics library. |
| Awesome Motion Planning | github.com/AGV-IIT-KGP/awesome-motion-planning | Curated motion planning resources. |
| OMPL | github.com/ompl/ompl | Open Motion Planning Library for robots. |
| MotionPlanning | github.com/zhm-real/MotionPlanning | Motion planning algorithms for autonomous systems. |
| PathPlanning | github.com/zhm-real/PathPlanning | Path planning tools for robots. |
| Path Planner | github.com/karlkurzer/path_planner | A* and hybrid path planners for ROS. |
| Robotics-Path-Planning-03-Hybrid-A-Star | github.com/ChenBohan/Robotics-Path-Planning-03-Hybrid-A-Star | Hybrid A* for path planning. |
| Robotics-Path-Planning-04-Quintic-Polynomial-Solver | github.com/ChenBohan/Robotics-Path-Planning-04-Quintic-Polynomial-Solver | Quintic polynomial solver for smooth trajectories. |
| Hybrid Path Planning | github.com/armando-genis/hybrid_path_planning | Hybrid planning for autonomous navigation. |
| Autonomous Dynamic Path Planning | github.com/armando-genis/Autonomous_dynamic_path_planning | Dynamic path planning for robots. |
| Frenet Optimal Trajectory Planner | github.com/erdos-project/frenet_optimal_trajectory_planner | Frenet-based optimal trajectory for vehicles. |
| Robust Tube MPC | github.com/HiroIshida/robust-tube-mpc | Robust MPC for robot control. |
| JJulio AHRobot | github.com/JJulio/AHRobot | Open-source humanoid robot. |
| Andro Robot | github.com/devjewel01/Robot-Blueberry | Blueberry robot project. (Note: Duplicate entry in provided resources.) |
| VoxelMapPlus FASTLIO2 | github.com/liangheming/VoxelMapPlus_FASTLIO2 | Voxel-based SLAM with FAST-LIO2. |
| Open Source Sensor Fusion | github.com/memsindustrygroup/Open-Source-Sensor-Fusion | Open-source sensor fusion for robotics. |
| VINS-Fusion | github.com/HKUST-Aerial-Robotics/VINS-Fusion | VINS-Fusion for visual-inertial SLAM. |
| XRDSLAM | github.com/openxrlab/xrdslam | XR-based SLAM for robots. |
| Vellons Humandroid | github.com/vellons/Humandroid | Humandroid humanoid robot. |
| Poppy Humanoid | github.com/poppy-project/poppy-humanoid | Poppy humanoid robot platform. |
| PCrnjak PAROL6 | github.com/PCrnjak/PAROL6-Desktop-robot-arm | Desktop robotic arm. |
| Roboterax Humanoid Gym | github.com/roboterax/humanoid-gym | Gym environment for humanoids. |
| EngineAI Humanoid | github.com/engineai-robotics/engineai_humanoid | EngineAI humanoid robot. |
| Pinocchio | github.com/stack-of-tasks/pinocchio | Robot dynamics library. |
| CppRobotics | github.com/onlytailei/CppRobotics | C++ robotics library. |
| Dusty NV Jetson Containers | github.com/dusty-nv/jetson-containers | Jetson containers for AI/robotics. |
| NVIDIA JetRacer | github.com/NVIDIA-AI-IOT/jetracer | JetRacer for autonomous racing. |
| NVIDIA JetBot | github.com/NVIDIA-AI-IOT/jetbot | JetBot for AI robotics. |
| RoboSapiens | robosapiens-eu.tech/ | RoboSapiens platform for humanoid robotics. |
| AllenAI Embodied AI | allenai.org/embodied-ai | Embodied AI research from AllenAI. |
| Humanoid Bench | humanoid-bench.github.io/ | Benchmark for humanoid robots. |
| KScale | www.kscale.dev/ | KScale robotics platform. |
| SWRI | swri.org - Industrial robotics automation. | |
| arXiv Paper | arxiv.org/html/2408.06113v1 | Paper on robotics topics. |
| Santa Fe Embodied Intelligence | santafe.edu/research/projects/theory-of-embodied-intelligence | Theory of embodied intelligence. |
| GitLab Autoware Core Planning | gitlab.com/autowarefoundation/autoware.ai/core_planning/-/tree/master/mpc_follower/src | MPC follower for Autoware. |
| Microsoft Embodied AI | microsoft.com/en-us/research/collaboration/embodied-ai | Microsoft’s embodied AI research. |
| Name | Link | Description |
|---|---|---|
| Autonomous Driving | github.com/daohu527/awesome-self-driving-car | Curated self-driving car resources. |
| Awesome Autonomous Vehicles | github.com/manfreddiaz/awesome-autonomous-vehicles | Awesome list for autonomous vehicles. |
| Self-Driving-Ish CV | github.com/iwatake2222/self-driving-ish_computer_vision_system | Computer vision for self-driving simulation. |
| AutoCarROS2 | github.com/winstxnhdw/AutoCarROS2 | ROS2 for autonomous car simulation. |
| MATLAB Driving Scenarios | mathworks.com/videos/creating-driving-scenarios-from-recorded-vehicle-data-for-validating-lane-centering-systems-in-highway-traffic-1592820033589.html | MATLAB for driving scenarios. |
| Coursera Self-Driving Cars | coursera.org/specializations/self-driving-cars | Coursera specialization on self-driving cars. |
| SAE J3016 Standard | sae.org/standards/content/j3016_201806/ | SAE autonomy levels standard. |
| arXiv Survey | arxiv.org/abs/2003.04882 | Survey on autonomous driving. |
| Self-Driving Car Playlist | youtube.com/watch?v=wcibIqiRb04&list=PL8EeqqtDev54yyF5-o2jUEOhAm2GSZm6e&index=4 | YouTube playlist on self-driving cars. |
| KITTI Dataset | cvlibs.net/datasets/kitti/ | KITTI dataset for autonomous driving. |
| Apollo Auto | github.com/ApolloAuto/apollo | Apollo autonomous driving platform. |
| Gym-Ignition | github.com/robotology-legacy/gym-ignition | Gym environment for ignition simulator. |
| Autoware Universe | autowarefoundation.github.io/autoware_universe/main/ | Autoware for autonomous driving. |
| Name | Link | Description |
|---|---|---|
| Genesis Embodied AI | github.com/Genesis-Embodied-AI/Genesis | Embodied AI framework for robots. |
| OpenVLA | github.com/openvla/openvla | Open vision-language-action model for robots. |
| Robot VLMs | github.com/Robot-VLAs/RoboVLMs | Vision-language models for robots. |
| Vision-Language Models Overview | github.com/zli12321/Vision-Language-Models-Overview | Overview of VLMs for robotics perception. |
| HCPLab Embodied AI Paper List | github.com/HCPLab-SYSU/Embodied_AI_Paper_List | Papers on embodied AI. |
| Awesome Embodied AI | github.com/haoranD/Awesome-Embodied-AI | Curated embodied AI resources. |
| Awesome Humanoid Manipulation | github.com/Tsunami-kun/awesome-humanoid-manipulation | Resources for humanoid manipulation. |
| Awesome Quadrupedal Robots | github.com/curieuxjy/Awesome_Quadrupedal_Robots | Curated quadrupedal robot resources. |
| LeCAR HumanoidVerse | github.com/LeCAR-Lab/HumanoidVerse | Humanoid robot framework. |
| Humanoid Bench | github.com/carlosferrazza/humanoid-bench | Benchmark for humanoid robots. |
| 3D Afford Splat | github.com/HCPLab-SYSU/3DAffordSplat | 3D affordance mapping for robots. |
| Name | Link | Description |
|---|---|---|
| Gymnasium Robotics | github.com/Farama-Foundation/Gymnasium-Robotics | Gymnasium environments for robotics RL. |
| F1TENTH RL | github.com/MichaelBosello/f1tenth-RL | RL for F1TENTH autonomous racing. |
| Mathematical Foundation of RL Book | github.com/MathFoundationRL/Book-Mathematical-Foundation-of-Reinforcement-Learning | Book on mathematical foundations of RL for robotics. |
| KSim-Gym | github.com/kscalelabs/ksim-gym | Gym for robot simulation in RL. |
| ASAPRL | github.com/Letian-Wang/asaprl | ASAP RL for robotics. |
| F1TENTH RL (Duplicate) | github.com/MichaelBosello/f1tenth-RL | RL for F1TENTH (duplicate for emphasis). |
| RSL RL | github.com/leggedrobotics/rsl_rl | RL for legged robots. |
| Robust Tube MPC | github.com/HiroIshida/robust-tube-mpc | Robust MPC with RL elements. |
| JJulio AHRobot | github.com/JJulio/AHRobot | Open-source robot for RL experiments. |
| Robust Tube MPC (Duplicate) | github.com/HiroIshida/robust-tube-mpc | Robust MPC (duplicate for emphasis). |
| DRL Air Hockey | github.com/AndrejOrsula/drl_air_hockey | DRL for air hockey robot. |
| Name | Link | Description |
|---|---|---|
| Open Robot Actuator Hardware | github.com/open-dynamic-robot-initiative/open_robot_actuator_hardware | Open-source actuators for robots. |
| NVIDIA JetBot | github.com/NVIDIA-AI-IOT/jetbot | JetBot hardware for AI robotics. |
| Name | Link | Description |
|---|---|---|
| Awesome Control Theory | github.com/A-make/awesome-control-theory | Curated control theory resources. |
| GP-MPC | github.com/helgeanl/GP-MPC | GP-MPC for autonomous control. |
| Filippo MPC RL | github.com/FilippoAiraldi/mpc-reinforcement-learning | MPC with RL for robots. |
| Multi-Purpose MPC | github.com/matssteinweg/Multi-Purpose-MPC | Multi-purpose MPC for control. |
| Robust Tube MPC | github.com/HiroIshida/robust-tube-mpc | Robust tube MPC for robots. |
| TUMFTM Vehicle Dynamics Control | github.com/TUMFTM/mod_vehicle_dynamics_control | Vehicle dynamics control. |
| TUMFTM Ethical Trajectory Planning | github.com/TUMFTM/EthicalTrajectoryPlanning | Ethical trajectory planning. |
| Chungmin Pyroki | github.com/chungmin99/pyroki | PyTorch kinematics for robots. |
| Awesome Motion Planning | github.com/AGV-IIT-KGP/awesome-motion-planning | Curated motion planning resources. |
| OMPL | github.com/ompl/ompl | Open Motion Planning Library. |
| MotionPlanning | github.com/zhm-real/MotionPlanning | Motion planning algorithms. |
| Karlkurzer Path Planner | github.com/karlkurzer/path_planner | Path planner for robots. |
| Robotics-Path-Planning-03-Hybrid-A-Star | github.com/ChenBohan/Robotics-Path-Planning-03-Hybrid-A-Star | Hybrid A* for path planning. |
| Robotics-Path-Planning-04-Quintic-Polynomial-Solver | github.com/ChenBohan/Robotics-Path-Planning-04-Quintic-Polynomial-Solver | Quintic polynomial solver for trajectories. |
| Hybrid Path Planning | github.com/armando-genis/hybrid_path_planning | Hybrid planning for autonomy. |
| Autonomous Dynamic Path Planning | github.com/armando-genis/Autonomous_dynamic_path_planning | Dynamic path planning. |
| Frenet Optimal Trajectory Planner | github.com/erdos-project/frenet_optimal_trajectory_planner | Frenet-based trajectory planner. |
| TUM-AVS Frenetix | github.com/TUM-AVS/Frenetix | Frenetix planner for vehicles. |
| TUM-AVS Frenetix Motion Planner | github.com/TUM-AVS/Frenetix-Motion-Planner | Motion planner using Frenet frame. |
| RL Frenet Trajectory Planning in CARLA | github.com/MajidMoghadam2006/RL-frenet-trajectory-planning-in-CARLA | RL for Frenet planning in CARLA. |
| Behavior Planning by Finite State Machine | github.com/A2Amir/Behavior-Planning-by-Finite-State-Machine | FSM for behavior planning. |
| YulinLi Navigation with Tree of Free Regions | github.com/YulinLi0/navigation_with_tree_of_free_regions | Navigation using tree of free regions. |
| A2Amir Prediction Phase in Trajectory Generation | github.com/A2Amir/Prediction-Phase-in-the-trajectory-generation-of-cars | Prediction phase for trajectory generation. |
| Awesome FSM | github.com/leonardomso/awesome-fsm | Curated finite state machine resources. |
| StateSmith | github.com/StateSmith/StateSmith | State machine tool for robots. |
| Kalman and Bayesian Filters in Python | github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python | Kalman filters for state estimation. |
| Name | Link | Description |
|---|---|---|
| Carla Apollo Maps | github.com/MaisJamal/Carla_apollo_maps | Maps for CARLA and Apollo integration. |
| OpenLane-V2 | github.com/OpenDriveLab/OpenLane-V2 | OpenLane-V2 for lane detection. |
| DriveAGI | github.com/OpenDriveLab/DriveAGI | AGI for driving. |
| DriveLM | github.com/OpenDriveLab/DriveLM | Language models for driving. |
| End-to-End Autonomous Driving | github.com/OpenDriveLab/End-to-end-Autonomous-Driving | End-to-end autonomy. |
| UniAD | github.com/OpenDriveLab/UniAD | Unified autonomous driving framework. |
| BEVFormer | github.com/fundamentalvision/BEVFormer | Bird's-eye view transformer for driving. |
| Awesome 3D Object Detection | github.com/TianhaoFu/Awesome-3D-Object-Detection | 3D object detection resources. |
| SFA3D | github.com/maudzung/SFA3D | Super-fast and accurate 3D detection. |
| OpenPCDet | github.com/open-mmlab/OpenPCDet | Open-source point cloud detection. |
| MMDetection3D | github.com/open-mmlab/mmdetection3d | 3D detection framework. |
| Depth Anything | github.com/LiheYoung/Depth-Anything | Depth estimation for robotics. |
| TUM-AVS Frenetix | github.com/TUM-AVS/Frenetix | Frenetix planner (duplicate for emphasis). |
| Frenetix Motion Planner | github.com/TUM-AVS/Frenetix-Motion-Planner | Motion planner using Frenet (duplicate for emphasis). |
| RL Frenet in CARLA | github.com/MajidMoghadam2006/RL-frenet-trajectory-planning-in-CARLA | RL for Frenet planning in CARLA. |
| Behavior Planning FSM | github.com/A2Amir/Behavior-Planning-by-Finite-State-Machine | FSM for behavior planning (duplicate for emphasis). |
| Navigation with Tree of Free Regions | github.com/YulinLi0/navigation_with_tree_of_free_regions | Navigation using tree of free regions (duplicate for emphasis). |
| Prediction Phase Trajectory Generation | github.com/A2Amir/Prediction-Phase-in-the-trajectory-generation-of-cars | Prediction phase for trajectory generation (duplicate for emphasis). |
| Awesome FSM | github.com/leonardomso/awesome-fsm | Awesome FSM resources (duplicate for emphasis). |
| StateSmith | github.com/StateSmith/StateSmith | State machine tool (duplicate for emphasis). |
| Kalman and Bayesian Filters in Python | github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python | Kalman filters for estimation (duplicate for emphasis). |
| Name | Link | Description |
|---|---|---|
| VoxelMapPlus FASTLIO2 | github.com/liangheming/VoxelMapPlus_FASTLIO2 | Voxel-based SLAM with FAST-LIO2. |
| Open Source Sensor Fusion | github.com/memsindustrygroup/Open-Source-Sensor-Fusion | Open-source sensor fusion. |
| VINS-Fusion | github.com/HKUST-Aerial-Robotics/VINS-Fusion | VINS-Fusion for SLAM. |
| XRDSLAM | github.com/openxrlab/xrdslam | XR SLAM. |
| Vellons Humandroid | github.com/vellons/Humandroid | Humandroid humanoid. |
| Poppy Humanoid | github.com/poppy-project/poppy-humanoid | Poppy humanoid platform. |
| PCrnjak PAROL6 | github.com/PCrnjak/PAROL6-Desktop-robot-arm | Desktop robotic arm (duplicate for emphasis). |
| Roboterax Humanoid Gym | github.com/roboterax/humanoid-gym | Humanoid gym environment. |
| EngineAI Humanoid | github.com/engineai-robotics/engineai_humanoid | EngineAI humanoid. |
| Pinocchio | github.com/stack-of-tasks/pinocchio | Pinocchio dynamics library (duplicate for emphasis). |
| CppRobotics | github.com/onlytailei/CppRobotics | C++ robotics library (duplicate for emphasis). |
| Dusty NV Jetson Containers | github.com/dusty-nv/jetson-containers | Jetson containers (duplicate for emphasis). |
| NVIDIA JetRacer | github.com/NVIDIA-AI-IOT/jetracer | JetRacer (duplicate for emphasis). |
| NVIDIA JetBot | github.com/NVIDIA-AI-IOT/jetbot | JetBot (duplicate for emphasis). |
| RoboSapiens | robosapiens-eu.tech/ | RoboSapiens platform (duplicate for emphasis). |
| AllenAI Embodied AI | allenai.org/embodied-ai | AllenAI embodied AI (duplicate for emphasis). |
| Humanoid Bench | humanoid-bench.github.io/ | Humanoid benchmark (duplicate for emphasis). |
| KScale | www.kscale.dev/ | KScale robotics (duplicate for emphasis). |
| SWRI | swri.org - SWRI robotics (duplicate for emphasis). | |
| arXiv Paper | arxiv.org/html/2408.06113v1 | Robotics paper (duplicate for emphasis). |
| Santa Fe Embodied Intelligence | santafe.edu/research/projects/theory-of-embodied-intelligence | Embodied intelligence theory (duplicate for emphasis). |
| GitLab Autoware Core Planning | gitlab.com/autowarefoundation/autoware.ai/core_planning/-/tree/master/mpc_follower/src | Autoware MPC (duplicate for emphasis). |
| Microsoft Embodied AI | microsoft.com/en-us/research/collaboration/embodied-ai | Microsoft embodied AI (duplicate for emphasis). |
| Name | Link | Description |
|---|---|---|
| FS Driverless Simulator | github.com/FS-Driverless/Formula-Student-Driverless-Simulator | Simulator for formula student driverless. |
| AutoDRIVE | github.com/Tinker-Twins/AutoDRIVE | AutoDRIVE simulator for autonomous driving. |
| Gazebo | gazebosim.org/docs/fortress/fuel_insert/ | Gazebo simulator docs. |
| Carla Simulator | github.com/carla-simulator/carla | CARLA simulator for autonomous driving. |
| AirSim | github.com/microsoft/AirSim | AirSim simulator for drones/vehicles. |
| MuJoCo | github.com/google-deepmind/mujoco | MuJoCo physics simulator for robotics. |
| Isaac GR00T | github.com/NVIDIA/Isaac-GR00T | NVIDIA’s Isaac GR00T for humanoid simulation. |
| Webots | cyberbotics.com/ | Webots robot simulator. |
| Carla Scenario Runner | github.com/carla-simulator/scenario_runner | Scenario runner for CARLA. |
| CarDreamer | github.com/ucd-dare/CarDreamer | CARLA-based RL environment. |
| Shell Urban Simulator | github.com/Shell-Urban-Concept-Autonomous/shell_urban_simulator | Urban simulator for Shell Eco-marathon. |
| OceanSim | github.com/umfieldrobotics/OceanSim | Marine robotics simulator. |
| Carla Lidar Mapping | github.com/casper-auto/carla_lidar_mapping | LiDAR mapping in CARLA. |
| Awesome CARLA | github.com/Amin-Tgz/awesome-CARLA | Curated CARLA resources. |
| Gym-Carla | github.com/cjy1992/gym-carla | Gym environment for CARLA. |
| Carla Multimodal Sensing | github.com/joedlopes/carla-simulator-multimodal-sensing | Multimodal sensing in CARLA. |
| Carla Apollo Maps | github.com/MaisJamal/Carla_apollo_maps | Maps for CARLA and Apollo. |
| OpenLane-V2 | github.com/OpenDriveLab/OpenLane-V2 | OpenLane-V2 for simulation. |
| DriveAGI | github.com/OpenDriveLab/DriveAGI | AGI for driving simulation. |
| DriveLM | github.com/OpenDriveLab/DriveLM | Language models for driving simulation. |
| End-to-End Autonomous Driving | github.com/OpenDriveLab/End-to-end-Autonomous-Driving | End-to-end driving simulation. |
| UniAD | github.com/OpenDriveLab/UniAD | Unified autonomous driving in simulation. |
| BEVFormer | github.com/fundamentalvision/BEVFormer | BEV transformer for simulation. |
| Awesome 3D Object Detection | github.com/TianhaoFu/Awesome-3D-Object-Detection | 3D detection for simulation. |
| SFA3D | github.com/maudzung/SFA3D | SFA3D for 3D detection in simulation. |
| OpenPCDet | github.com/open-mmlab/OpenPCDet | OpenPCDet for point cloud detection. |
| MMDetection3D | github.com/open-mmlab/mmdetection3d | MM Detection for 3D. |
| Depth Anything | github.com/LiheYoung/Depth-Anything | Depth estimation for simulation. |
These projects leverage the provided resources to build practical skills, inspired by my competition experience. See /Robotics_Autonomous_Systems/projects/ for code and documentation.
- TurtleBot3 Navigation: Use the TurtleBot3 repo and ROS Navigation to implement a navigation stack in Gazebo. (Beginner, simulates F1TENTH navigation.)
- RealSense Camera Integration: Integrate an Intel RealSense camera with RealSense ROS to process depth data for obstacle avoidance. (Intermediate, useful for Shell Eco-marathon sensor fusion.)
- F1TENTH Autonomous Racing: Build a ROS-based racing node using Autonomous Racing and GP-MPPI for path planning. (Advanced, competition-ready.)
- Costmap with Depth Camera: Create a costmap for navigation using Costmap Depth Camera in a simulated environment. (Intermediate, enhances autonomous navigation.)
- MoveIt Robotic Arm: Implement a pick-and-place task with MoveIt for a robotic arm in simulation. (Advanced, explores manipulation.)
- Jupyter Notebook on ROS2 Setup: Document ROS2 Humble installation and basic node creation using ROS Humble Tutorials. (Beginner, educational.)
- Markdown Guide on ROS Basics: Summarize key ROS concepts (nodes, topics, services) based on A Gentle Introduction to ROS (
/docs/ros_basics.md). (Beginner, learning aid.)
- Overview
- Curated Resources
- Projects
- Repository Structure
- How to Use This Repository
- Contributing
- License
This section is designed to:
- Curate high-quality general resources for engineering, programming, and career development, with ties to robotics.
- Provide practical projects inspired by my competition experience (e.g., system design for autonomous systems).
- Integrate with my broader repo, linking to
/Programming_Problem_Solving(for coding) and/Communities_Competitions_Growth(for career growth). - Highlight my journey, showcasing resources that helped in competitions and lab work.
The resources below cover awesome lists, platforms, and tools for general learning and development.
| Name | Link | Description |
|---|---|---|
| Awesome Remote Job | github.com/lukasz-madon/awesome-remote-job | Curated list of remote job opportunities, useful for robotics freelancers. |
| Project-Based Learning | github.com/practical-tutorials/project-based-learning | Project-based learning resources for programming and engineering. |
| Developer Roadmap | github.com/kamranahmedse/developer-roadmap | Interactive roadmaps for developers, including backend and robotics paths. |
| System Design Primer | github.com/donnemartin/system-design-primer | Guide to system design for interviews, relevant for autonomous systems. |
| Tech Interview Handbook | github.com/yangshun/tech-interview-handbook | Handbook for tech interviews, with algorithms and system design tips. |
| Free Programming Books | github.com/EbookFoundation/free-programming-books | List of free programming books by language. |
| OSSU Computer Science | github.com/ossu/computer-science | Open-source computer science curriculum. |
| OSSU Data Science | github.com/ossu/data-science | Open-source data science curriculum, useful for robotics data analysis. |
| Name | Link | Description |
|---|---|---|
| freeCodeCamp | freecodecamp.org/ | Free coding bootcamp with projects and certifications. |
| Khan Academy | khanacademy.org/ | Free courses on math, science, and programming. |
| MIT OpenCourseWare | ocw.mit.edu/ | MIT's free online courses, including robotics and CS. |
| Codecademy | codecademy.com/ | Interactive coding courses for beginners. |
| W3Schools | w3schools.com/ | Free tutorials for web development and programming. |
| Udacity | udacity.com/ | Nanodegrees in AI, robotics, and self-driving cars. |
| Coursera | coursera.org/ | Online courses from universities, including Python and data science. |
| Pluralsight | pluralsight.com/ | Skills platform with engineering courses (free trial). |
| 365 Data Science | 365datascience.com/ | Data science learning platform. |
| Engineer4Free | engineer4free.com/ | Free engineering tutorials. |
| CS Video Courses | github.com/Developer-Y/cs-video-courses | Curated CS video courses from MIT and others. |
| MOOC.org | mooc.org/ | Massive open online courses directory. |
| Coursera Meta Backend | coursera.org/professional-certificates/meta-back-end-developer | Meta's backend developer certificate. |
| Coursera Python Flask | coursera.org/projects/python-flask | Project on Python Flask for web development. |
| Meta Digital Skills | facebook.com/business/learn/digital-skills-programs/meta-career-programs | Meta's career programs for digital skills. |
| Cuemath | cuemath.com/ | Math learning platform for engineering foundations. |
| Awesome List | github.com/sindresorhus/awesome | Curated awesome lists for various topics. |
| Name | Link | Description |
|---|---|---|
| Unpaywall | unpaywall.org/ | Tool for accessing open-access research papers. |
| NotebookLM | notebooklm.google.com/ | Google AI tool for note-taking and research. |
| Intern Form Glossary | internformglossary.net/ | Glossary for intern forms, useful for career prep. (Note: Link appears incomplete; based on provided "sites.google.com/site/internformglossary/".) |
| MyGreatLearning | mygreatlearning.com/ | Industry courses for AI and engineering. |
| CodeWithMosh | codewithmosh.com/ | Coding courses for developers. |
| Udemy | udemy.com/ | Online learning platform with engineering courses. |
| AlgoExpert | algoexpert.io/product | Algorithm interview prep tool. |
| Tech Dev Guide | techdevguide.withgoogle.com/paths/interview/ | Google’s tech dev guide for interviews. |
| YouTube Videos | youtube.com/watch?v=Q6G-J54vgKc | Video on engineering topics. |
| YouTube Videos | youtube.com/watch?v=twZ2ggIc0PQ | Video on robotics or engineering. |
| YouTube Videos | youtube.com/watch?v=_bYFu9mBnr4 | Video on programming or engineering. |
These projects leverage the provided general resources to build practical skills, inspired by my competition experience. See /General_Resources/projects/ for code and documentation.
- System Design for Autonomous Vehicle: Design a scalable system using System Design Primer for F1TENTH navigation. (Intermediate, competition-focused.)
- Developer Roadmap Project: Implement a web app based on Developer Roadmap to track engineering progress. (Beginner, educational.)
- Tech Interview Prep: Solve system design problems from Tech Interview Handbook for robotics interviews. (Advanced, career-ready.)
- Markdown Guide on Learning Platforms: Summarize platforms like freeCodeCamp in
/docs/learning_platforms.md. (Beginner, educational.)
General_Resources/
├── docs/ # Notes and summaries (e.g., learning_platforms.md)
├── projects/ # Project code and notebooks (e.g., system_design)
├── README.md # This file
- Overview
- Curated Resources
- Projects
- Repository Structure
- How to Use This Repository
- Contributing
- License
This section is designed to:
- Curate high-quality resources for embedded systems and low-level programming, covering microcontrollers, Linux kernels, and hardware interfacing.
- Provide practical projects inspired by my competition experience (e.g., embedded controllers for autonomous vehicles).
- Integrate with my broader repo, linking to
/Systems_Hardware(for OS integration) and/Robotics_Autonomous_Systems(for robot applications). - Highlight my journey, showcasing low-level programming skills for robotics competitions and lab work.
The resources below cover repositories, videos, books, courses, papers, and tools for embedded systems, organized for easy access.
| Name | Link | Description |
|---|---|---|
| Nexmon (Wi-Fi Firmware) | github.com/seemoo-lab/nexmon | Firmware patching for Wi-Fi chips, useful for embedded networking. |
| Serial Studio | github.com/Serial-Studio/Serial-Studio | Multi-purpose serial data visualization tool for embedded debugging (duplicate for emphasis). |
| Amun (Embedded Framework) | github.com/AmrDeveloper/Amun | Embedded framework for low-level programming. |
| Rust-CUDA | github.com/Rust-GPU/Rust-CUDA | Rust bindings for CUDA, for GPU-accelerated embedded systems. |
| Mastering Embedded Linux (3rd Ed) | github.com/PacktPublishing/Mastering-Embedded-Linux-Programming-Third-Edition | Code and resources for embedded Linux programming. |
| Awesome Embedded Linux | github.com/fkromer/awesome-embedded-linux | Curated list of embedded Linux resources. |
| Embedded Network Programming Guide | github.com/cpq/embedded-network-programming-guide | Guide to network programming in embedded systems. |
| Bare Metal Programming Guide | github.com/cpq/bare-metal-programming-guide | Guide to bare-metal low-level programming. |
| Awesome Embedded | github.com/nhivp/Awesome-Embedded | Curated embedded systems resources (duplicate for emphasis). |
| FPGA-ASIC Roadmap | github.com/m3y54m/FPGA-ASIC-Roadmap | Roadmap for FPGA/ASIC design in embedded systems. |
| Parallel Computing CUDA C | github.com/CisMine/Parallel-Computing-Cuda-C | CUDA C for parallel computing in embedded GPUs. |
| Embedded Linux with Yocto | github.com/Rabie45/Embedded-Linux-System-with-the-Yocto-Project | Project for building embedded Linux with Yocto. |
| EEPROM Programmer | github.com/beneater/eeprom-programmer | EEPROM programmer for low-level memory operations. |
| Name | Link | Description |
|---|---|---|
| Embedded Linux Basics | youtube.com/watch?v=eF9qWbuQLuw | Intro to embedded Linux. |
| ARM Cortex-M Series | youtube.com/watch?v=3l10o0DYJXg | ARM Cortex-M microcontroller basics. |
| RTOS Explained | youtube.com/watch?v=RWlI6O7yxMw | Explanation of real-time operating systems. |
| Bare Metal Programming | youtube.com/watch?v=cIG1nxoLw6U | Bare metal programming intro. |
| Embedded C++ | youtube.com/watch?v=GeSSkvwFDHs | Embedded C++ programming. |
| STM32 HAL Tutorials | youtube.com/watch?v=qJgsuQoy9bc&list=PLqCJpWy5Fohdz6Nu2yG6Loubocqk3sRNR | STM32 HAL library tutorials. |
| AVR Microcontrollers | youtube.com/watch?v=qJgsuQoy9bc&list=PLLwK93hM93Z13TRzPx9JqTIn33feefl37 | AVR microcontroller series. |
| FPGA Design | youtube.com/watch?v=scjT2yVA5tg&list=PLZ42ZUInDWC7NxkE0m1Dla2_HUtD5r1WM | FPGA design playlist. |
| Altium Academy | youtube.com/@AltiumAcademy | Altium PCB design tutorials. |
| Computer Architecture | youtube.com/watch?v=5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq | Computer architecture series. |
| Embedded Linux with Yocto | youtube.com/watch?v=ULY7rbJoROQ&list=PL6XhtJWb6Qa-fLyGoPdcp6sQtxbeChfTOOBd | Yocto for embedded Linux. |
| Circuit Simulation | circuitstoday.com/ | Circuit simulation resources. |
| Embedded C Programming | youtube.com/watch?v=71SRVEcbEwc&list=PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd | Embedded C series. |
| Build a Computer | youtube.com/watch?v=XbPMfoKi8kk | Building a computer from scratch. |
| Programmable Hardware | eng.ox.ac.uk/computing/projects/programmable-hardware/ | Programmable hardware projects. |
| VHDL for Embedded | youtube.com/watch?v=OW1EmG7b4DU | VHDL for embedded systems. |
| Low-Level Programming | youtube.com/watch?v=LnzuMJLZRdU&list=PLowKtXNTBypFbtuVMUVXNR0z1mu7dp7eH&index=2 | Low-level programming series. |
| ARM Assembly | youtube.com/watch?v=U6uMWm7-VJg | ARM assembly programming. |
| MIPS Architecture | youtube.com/watch?v=8zbpe43k4Qg&list=PL5Q2soXY2Zi_FRrloMa2fUYWPGiZUBQo2beChfKaKa9 | MIPS architecture tutorials. |
| Embedded Systems Design | youtube.com/watch?v=6caLyckwo7U | Embedded systems design. |
| Build a Computer (Coursera) | coursera.org/learn/build-a-computer | Coursera course on building a computer. |
| Robotics ECS154B | jlpteaching.github.io/ECS154B/modules/introduction/index/ | Robotics course materials. |
| Computer Architecture Playlist | youtube.com/watch?v=5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq | Computer architecture playlist (duplicate for emphasis). |
| Low-Level C | youtube.com/watch?v=bNkejpBBLAg&list=PLa4kqtM7SuFyf4P0EWHLpVGCxot0cAlPD | Low-level C programming. |
| Circuit Simulation | circuitstoday.com/ | Circuit simulation resources (duplicate for emphasis). |
| Embedded Systems Playlist | youtube.com/watch?v=71SRVEcbEwc&list=PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd | Embedded systems series (duplicate for emphasis). |
| Build a Computer Video | youtube.com/watch?v=XbPMfoKi8kk | Video on building a computer (duplicate for emphasis). |
| Programmable Hardware | eng.ox.ac.uk/computing/projects/programmable-hardware/ | Programmable hardware projects (duplicate for emphasis). |
| Name | Link | Description |
|---|---|---|
| Mastering Embedded Linux (3rd Ed) | github.com/PacktPublishing/Mastering-Embedded-Linux-Programming-Third-Edition | Book on advanced embedded Linux programming. |
| Name | Link | Description |
|---|---|---|
| ARM Embedded Linux | arm.com/resources/education/online-courses/embedded-linux | Online course on embedded Linux with ARM. |
| Embedded Linux Roadmap | linkedin.com/pulse/embedded-linux-road-map-part-1-hazem-khaled-igfdf/ | Roadmap for embedded Linux. |
| Steve Branam Blog | embeddedrelated.com/blogs-1/nf/Steve_Branam.php | Blog on embedded systems. |
| Azhar ICPC | sites.google.com/view/azharicpc/home?authuser=0 | ICPC preparation, relevant for low-level coding. |
| Master Micro Professional Courses | master-micro.com/professional-courses | Professional courses on microcontrollers (duplicate for emphasis). |
| CircuitLab | circuitlab.com/editor/ | Online circuit editor. |
| Mastering Microcontroller | udemy.com/course/mastering-microcontroller-with-peripheral-driver-development/ | Udemy course on microcontrollers (coupon available). |
| Master Micro Professional Courses | master-micro.com/professional-courses | Professional courses (duplicate for emphasis). |
| ST Community | community.st.com/ | ST Microelectronics community. |
| Altium Education | education.altium.com/ | Altium PCB education resources. |
| Embedded Linux with Yocto | youtube.com/watch?v=ULY7rbJoROQ&list=PL6XhtJWb6Qa-fLyGoPdcp6sQtxbeChfTOOBd | Yocto tutorial playlist. |
| Circuit Simulation | circuitstoday.com/ | Circuit tutorials. |
| Embedded Systems | youtube.com/watch?v=71SRVEcbEwc&list=PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd | Embedded systems playlist. |
| Build a Computer | youtube.com/watch?v=XbPMfoKi8kk | Build a computer video. |
| Programmable Hardware | eng.ox.ac.uk/computing/projects/programmable-hardware/ | Programmable hardware. |
| VHDL for Embedded | youtube.com/watch?v=OW1EmG7b4DU | VHDL tutorial. |
| Low-Level Programming | youtube.com/watch?v=LnzuMJLZRdU&list=PLowKtXNTBypFbtuVMUVXNR0z1mu7dp7eH&index=2 | Low-level programming playlist. |
| ARM Assembly | youtube.com/watch?v=U6uMWm7-VJg | ARM assembly. |
| MIPS Architecture | youtube.com/watch?v=8zbpe43k4Qg&list=PL5Q2soXY2Zi_FRrloMa2fUYWPGiZUBQo2beChfKaKa9 | MIPS tutorials. |
| Embedded Systems Design | youtube.com/watch=v6caLyckwo7U | Embedded design. |
| Build a Computer (Coursera) | coursera.org/learn/build-a-computer | Coursera course. |
| Robotics ECS154B | jlpteaching.github.io/ECS154B/modules/introduction/index/ | Robotics course. |
| Computer Architecture Playlist | youtube.com/watch?v=5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq | Computer architecture. |
| Low-Level C | youtube.com/watch?v=bNkejpBBLAg&list=PLa4kqtM7SuFyf4P0EWHLpVGCxot0cAlPD | Low-level C. |
| Circuit Simulation | circuitstoday.com/ | Circuit resources. |
| Embedded Systems Playlist | youtube.com/watch?v=71SRVEcbEwc&list=PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd | Embedded playlist. |
| Build a Computer Video | youtube.com/watch?v=XbPMfoKi8kk | Build a computer. |
| Programmable Hardware | eng.ox.ac.uk/computing/projects/programmable-hardware/ | Programmable hardware. |
| Name | Link | Description |
|---|---|---|
| Step-by-Step CPU Architecture | researchgate.net/publication/262153059_Step-by-step_design_and_simulation_of_a_simple_CPU_architecture | Paper on CPU architecture design. |
| AVR Architecture Guide | exploreembedded.com/wiki/1._AVR_Architecture | Guide to AVR architecture. |
| Name | Link | Description |
|---|---|---|
| LeetGPU | leetgpu.com/ | GPU-focused tool for low-level computing. |
| ST Community | community.st.com/ | ST Microelectronics community. |
| Microchip University | mu.microchip.com/page/all-courses | Microchip courses for embedded. |
| Altium Education | education.altium.com/ | Altium PCB education. |
| Datasheets.com | datasheets.com/ | Component datasheets. |
| CircuitLab | circuitlab.com/editor/ | Online circuit editor. |
| MIPS | mips.com/ | MIPS architecture resources. |
| Circuitstoday | circuitstoday.com/ | Circuit tutorials. |
| Skyfi Labs Embedded Projects | skyfilabs.com/blog/list-of-good-embedded-systems-projects-for-engineering-students | List of embedded projects. |
These projects leverage the provided resources to build practical skills, inspired by my competition experience. See /Embedded_Systems_Low_Level_Programming/projects/ for code and documentation.
- Nexmon Wi-Fi Firmware Patch: Modify Wi-Fi firmware using Nexmon for embedded networking in a robot. (Advanced, competition-ready.)
- Serial Studio Debugger: Build a serial data visualizer using Serial Studio for F1TENTH sensor debugging. (Intermediate, practical.)
- Rust-CUDA Embedded Accelerator: Implement a CUDA kernel in Rust using Rust-CUDA for GPU-accelerated low-level tasks. (Advanced, performance-focused.)
- Bare Metal Bootloader: Create a bare-metal bootloader using Bare Metal Programming Guide for a microcontroller. (Intermediate, low-level.)
- STM32 Peripheral Driver: Develop a peripheral driver using STM32 HAL Tutorials for a robotics sensor. (Intermediate, hardware-focused.)
- Markdown Guide on Embedded Linux: Summarize embedded Linux concepts based on Mastering Embedded Linux (3rd Ed) in
/docs/embedded_linux_guide.md. (Beginner, educational.)
Embedded_Systems_Low_Level_Programming/
├── docs/ # Notes and summaries (e.g., embedded_linux_guide.md)
├── projects/ # Project code and notebooks (e.g., nexmon_firmware)
├── README.md # This file
