Introduction to The TinyKart ™️

TinyKart is the Intelligent System Club's entry level project to introduce new members to several areas of robotics, while having a strong supporting codebase to ensure it does not become overwhelming.

This book serves both as a reference and course for anyone looking to make their own TinyKart, or just curious on how any part of it works.

Some topics covered by this book:

  • Setting up an Arduino environment in PlatformIO
  • LiDARs, and processing their data
  • UART communication
  • Interacting with motors
  • Ackermann kinematic models
  • A basic autonomy stack built around sense-think-act:
    • Basic reactionary planners
    • Pure Pursuit

By the end of this book, you will have created your own implementation of a reference TinyKart. Armed with your newfound knowledge, you will then expand on what you've made, and race against other students!

Prerequisites

While this book assumes little of the reader outside a desire to learn, there are a few things we have to require:

  • A Windows or Linux computer
    • Mac may work, but is not tested
  • Basic working knowledge of C++
    • This book is about robotics, not C++. The C++ used is not very complex, but may require some googling if syntax is new to you. Additionally, the codebase makes use of modern C++ features like std::optional. When relevant, links to external resources are provided for your reference.
  • Very basic electrical knowledge
    • If you know what 5V and ground are, you're good.

Notable topics not covered

TinyKart is deliberately left basic, to fill the gap between something like E100 and F1/10. Because of this, a few major topics in mobile robotics are not covered, and are best learned through other media:

  • Odometry
    • Localisation
    • SLAM and VSLAM
  • Computer vision
  • Control theory
  • DSP