comp.nus.edu.sg/~guoyi / tutorial / cg2111a / ros

Tutorial: Robot Operating System for EPP2


Engineering Principles and Practice II [CG2111A]

Author: Boyd Anderson; Chen Guoyi
Supervisors: Henry Tan; Nguyen Tien Khoa; Ravi S/O Suppiah; Sean Tan Rui Xiang; Tan Keng Yan, Colin.

This tutorial is sponsored by the NUS School of Computing and brought to you by the AY23/24 CG2111A Teaching Team.

About Tutorial

This work is licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International

This tutorial is designed to facilitate self-directed learning of the Robot Operating System (ROS), with an emphasis on practical application and understanding. It is our intention that students aspiring to become computer engineers will not only comprehend the functionalities of ROS but will also apply their knowledge to solve both theoretical and real-world problems.

The structure of this tutorial is straightforward, offering detailed steps and debugging instructions to ensure clarity in learning. It comprises four parts, each tailored to build upon the previous one, introducing the complexities of ROS in a logical progression:

  • Tutorial 1: Setup ROS on RPi 4 demonstrates the process of installing ROS from its source. This approach, as opposed to using a pre-configured operating system, provides a deeper insight into the system's architecture and dependencies, offering a more grounded understanding of ROS and its capabilities.
  • Tutorial 2: Talker & Listener presents a basic example to explore the communication mechanisms within ROS, emphasizing the importance of protocols in facilitating interactions between different packages and topics. This foundational knowledge is crucial for the development of modular and complex robotic systems.
  • Tutorial 3: RPi LiDAR & SLAM Integration for the ALEX Task guides students through the setup of components essential for autonomous navigation, bridging theory with practice in a tangible manner.
  • Tutorial 4: ROS Networking focuses on processing SLAM data remotely, rather than on the Raspberry Pi. This segment teaches students to leverage the computational power of personal computers, optimizing resource allocation for real-time tasks.

This tutorial is designed to equip you with the necessary knowledge and skills to successfully complete your ROS project. Should you encounter any issues that cannot be resolved by consulting this tutorial or other online materials, we encourage you to visit our Q&A Forum. There, you can post your questions and explore solutions to previously addressed issues.

The success of this tutorial series is augmented by integrating lecture notes and laboratory instructions from the CG2111A course, enriched by the feedback from its students. These elements are pivotal for a comprehensive educational experience.

We encourage you to approach this learning opportunity with enthusiasm and an open mind. It is our hope that this tutorial not only aids in your academic endeavors but also inspires a deeper curiosity in robotics and system design. Best wishes in your exploration of ROS and the completion of the CG2111A course.

By Chen Guoyi, Teaching Assistant
AY23/24 Sem II

Tutorial 1: Setup ROS on RPi 4  Next >