Skip to content

Necessary Information for Programming Trainee

Hello, world! This is an index page that contains information that every Programming trainee should read and understand before proceeding to the next stage. For topics that are outside of this index page, you can refer to the individual topic shown on the right slide bar.

1. Basic Information

  1. Beginner's Onboarding Guide

2. Software Environment

  1. Software for Communication
  2. Setting up Linux for Platform-specific Software
  3. Development Software (ROS)
  4. Guide to connect to the network in M2

3. What's Inside a Robot?

The following two guides are designed to break down the components inside a robot. After reading these you should have a better idea on the internal workings of our machines.

  1. WsIaR (Hardware)
  2. WsIaR (Software)

4. Programming tools

Training materials for Linux and Git are in this website (see the sidebar), below are some supplementary reading:

  1. Python is the main programming language we use, followed by C++.
  2. Linux is what our robots run on, read this for some common commands you might need to use.
  3. Git is used daily for version control so programmers can cooperate effectively.

Alternatively, the training materials used in 2019-20 can be found under m2robocon/m2prog_training_2020.

5. ROS

ROS is a software framework for robot software development that enabling high-level programming.

Training materials for ROS are in this website (see the sidebar). There are a wide range of ROS Guides on our wiki, here are some useful supplementary reading:

  1. Official ROS Tutorial (external): You should read and try all the example codes in at least all the Beginner Level tutorial (with 20 items). The learning outcomes are nearly identical to our training, but the style is somewhat different.
  2. Internal ROS Tutorial: This page extracts the concepts, commands, and codes you may likely to make use of while developing. Try to understand what each of the section is referring. It serves as a good cheat sheet when programming!
  3. (Optional) More about ROS: This page marks the experience we had while developing, you may briefly go through all the texts and may understand more time after time.

Alternatively, the training materials used in 2019-20 can be found under m2robocon/m2prog_training_2020.

6. End

Congratulations 🎉🎉. You should have finished all the materials provided to trainees. However, you are just at the beginning of your journey here and there are much to learn.

Supplementary ELEC Topics (optional)


Arduino is a hardware and software project that enables beginners to build electrical devices that can sense and control objects in the physical and digital world. This was part of our training and is abandoned because it is complained to be too elementary comparing to actual work in m2. You are still recommended to study it if you have no idea what hardware and sensors are, want to do some rapid prototyping or looking for some IoT project.

  1. Internal Arduino Tutorial 2017-18
  2. Internal Arduino Tutorial 2018-19
  3. Internal Arduino Tutorial 2020-21
  4. (Optional) Official Arduino Turorial


Soldering is an essential skill when you are facing broken wire by yourself(or you are looking for something besides coding to kill the time in m2). It used to be an essential part of our training but the modern idea is, we do not need it if we can always find electronic people around.

  1. Learning basic soldering skills
  2. Learning soldering wires and connectors