Robot Operating System syllabus

PCC-353-RAI · Third Year Robotics and Artificial Intelligence, SPPU 2024 pattern. Every unit, the marks scheme, course outcomes and books, copied from the official syllabus PDF.

PCC-353-RAI4 h/week theoryCCE 30 + End-sem 70
05.units
04.credits

Unit-wise syllabus

UNIT I

Introduction to ROS & Environment Setup

8 hours

ROS Overview: Introduction to robot software development, History and evolution of ROS, Comparison of ROS with other robotics frameworks (Including Webots and CoppeliaSim), Overview of ROS architecture (Master, Nodes, Parameter Server, ROS Core), Applications of ROS in industry and research. Environment Setup: Setting up a ROS development environment on Linux (Ubuntu), installing and configuring ROS distributions, creating and managing ROS workspaces (catkin and colcon), introduction to ROS packages and package management (package.xml, CMakeLists.txt), environment variable setup, basic ROS command-line tools (roscd, rosls, rospack, rosrun, rosnode, rostopic, rosservice, rosparam).

UNIT II

ROS Fundamentals & Communication

8 hours

Core Concepts: Nodes, Topics, Messages and services in ROS, ROS Communication: Publishers and subscribers (asynchronous), ROS services (synchronous request-reply), ROS actions (long-running tasks), ROS parameters and parameter server, ROS master and roscore functionality. Messages and Data Definition: ROS standard message types, Data types and custom message definition with ROS messages (.msg), Service definition files (.srv), Action definition files (. action), introduction to ROS names and naming conventions, Remapping of topics and nodes, ROS bags for data logging and playback (Advanced rosbag analysis workflows – e.g., filtering, time-syncing, extracting data for ML).

UNIT III

Programming with ROS

8 hours

Language and Node Creation: Introduction to ROS with Python (rospy) and C++ (roscpp), Creating simple ROS nodes in both languages, Node initialization and shutdown, Rate control and sleep functions, Logging and debugging output. Communication Implementation: Publishing and subscribing to topics (Publisher, Subscriber, callback functions), Sending and receiving ROS service requests (ServiceClient and ServiceServer), Working with ROS libraries and APIs, Time handling in ROS (ros::Time, rospy. Time), Timers and periodic callbacks, Exception handling in ROS nodes.

UNIT IV

Robot Navigation & Perception

8 hours

Robot Navigation: Robot navigation challenges and solutions (SLAM, path planning, localization, obstacle avoidance), ROS navigation frameworks (ROS Navigation Stack, MoveIt, Cartographer), Overview of costmaps, Odometry and sensor fusion, AMCL for localization, ROS enabled autonomous robot movement. Robot Perception: Importance of robot perception for navigation and interaction, ROS integration with sensors like LiDAR, cameras, IMUs, and radar, Robot perception (object detection, segmentation, classification), How robots "see" and interpret their environment, Introduction to computer vision libraries in ROS (OpenCV, PCL), Camera calibration.

UNIT V

Advanced Tools, Simulation & Hardware Interfacing

8 hours

Tools and Simulation: Introduction to ROS tools (rviz, rqt, rqt_graph, rqt_console, rqt_plot, rosbag, Foxglove Studio) for visualization, Debugging and logging, Working with robot simulations in ROS (Gazebo, comparison with Webots and CoppeliaSim), URDF for robot description, TF transform library (tf2) for coordinate frames, Introduction to robot navigation frameworks (MoveIt) and perception pipelines. Hardware Interfacing: Introduction to robot sensors (proximity, light, contact) and actuators (DC motors, servo motors, stepper motors), Interfacing sensors and actuators with ROS drivers (UART, I2C, SPI, USB), Reading sensor data and controlling actuators through ROS nodes, Introduction to micro- ROS and rosserial for embedded systems, NVIDIA Jetson and TensorRT for edge inference, CI/CD basics using GitHub Actions / GitLab CI for robotics projects, Docker + ROS for reproducible setups, ROS 2 basics.

Marks and credits

HeadMarksCredit
CCE (continuous comprehensive evaluation)304
End-semester exam70

Prerequisite: Robot Modeling and Simulation (PCC-303-RAI), Robot Programming Lab (PCC-306-RAI).

Course outcomes

  1. CO1DESCRIBE ROS architecture (Master, Nodes, Parameter Server), history, pros/cons, and realworld applications.
  2. CO2EXPLAIN ROS communication (topics, services, actions, parameters), naming conventions, and rosbag logging.
  3. CO3APPLY programming to develop ROS nodes in Python/C++ with publishers, subscribers, services, timers, and error handling.
  4. CO4ANALYZE navigation (SLAM, AMCL, path planning) and perception (detection, segmentation) using ROS frameworks.
  5. CO5CREATE ROS solutions using Gazebo, rviz, URDF, TF2, and hardware interfacing.

Books

Text books

Reference books

NPTEL and SWAYAM links

Listed in the official syllabus:

FAQ

How many units are in Robot Operating System?

Robot Operating System (PCC-353-RAI) has 5 units: Unit I Introduction to ROS & Environment Setup (8 h); Unit II ROS Fundamentals & Communication (8 h); Unit III Programming with ROS (8 h); Unit IV Robot Navigation & Perception (8 h); Unit V Advanced Tools, Simulation & Hardware Interfacing (8 h).

What is the marks scheme for Robot Operating System?

The official Robotics and Artificial Intelligence 2024 pattern syllabus lists continuous comprehensive evaluation (CCE) for 30 marks and the end-semester exam for 70 marks, for 4 credits.

What should I know before Robot Operating System?

Prerequisite listed in the syllabus: Robot Modeling and Simulation (PCC-303-RAI), Robot Programming Lab (PCC-306-RAI).