METR4202 is a challenging course, not just in theory, but also requires you to be comfortable with a suite of software and technologies that are not necessarily taught in your degree that you may struggle with without the right background. Here lie resources for teaching METR4202 supporting background, first compiled for the Semester 2, 2021 run of the course. You don't need to learn all of these in full depth as is offered by many of the resources below but they are good references to learn stuff you're missing, or to remember stuff you've learnt previously before. If more resources need to be added, make a pull request to this repository.
Python is one of the more forgiving language to learn and extremely common in Robotics (and other fields!)
- How to think like a Computer Scientist: Learning with Python 3
- Introduction to Computer Science and Programming Using Python
- Automate the Boring Stuff with Python
- Installing packages in Python using Pip
Python is a great general purpose language but as engineers, we need tools to not only write logical operations but also do maths. The tools for the job are the Numpy, Scipy and Matplotlib, the holy trinity of numerical python.
If you want to do image and video processing in Python, the default tool is OpenCV
Linux is an open-source Unix-like operating system that's pervasive throughout the engineering world.
ROS is a "communication framework" (not an operating system like how the name implies) for Robotics. Essentially, it helps you connect together components of what makes a robot in a way that's modular and can be swapped out and reasonably managed.
- Official ROS Tutorials
- The Construct Sim
- Hello (Real) World with ROS – Robot Operating System
- A Gentle Introduction to ROS
Git is a version control system, indeed one that these resources are hosted on. While you aren't required to use Git for the course, it's highly recommended for backup and team collaboration reasons.